Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Our developers use VPC's to develop systems. When a developer joins a team he needs a VPC for that project. The developers have also a tendency to "break" the VPC.

Building a VPC and installing the required software is time consuming.

We were wondering if we could use Power Shell to do the following:

  • Install Windows
  • Run windows update
  • Install SQL Server
  • Install SharePoint Services
  • Install Visual Studio



share|improve this question
Perhaps a broader question is "how to automate deployment of developer virtual machines?" or something - as the technology used should be of little concern? ^^ – Oskar Duveborn Nov 15 '09 at 15:00
up vote 3 down vote accepted

As mke points out VMware's vCenter Lab Manager is the benchmark but it isn't cheap (~$2k per CPU on the ESX Hosts in the cluster that runs it) and you need to have vSphere cluster capacity for the VM's too, again not cheap if you don't already have it in your budget. If you have an environment where provisioning any significant number of developer VM's is a regular task though it is worth the cost IMO.

For an entry level solution you can prepare templates\clones with all of the components pre-installed, nicely patched and up to date too. Deploying from such a template will typically be an order of magnitude faster (if not more) and more reliable than scripting a full install followed by app installations, especially of the type you require. In a VMware vCenter environment this is pretty easy as vCenter handles all of the customization\sysprep parts for you but in any virtual environment you should be able to sysprep a baseline VM and save a copy. Provisioning your new VM is then simply a case of making a copy and importing the new VM instance, both are trivial to do for both VMware Infrastructure VM's (Using the PowerCLI) and Hyper-V VM's (using the PowerShell Management Library for Hyper-V) using Powershell but may be harder for other Hypervisors. One possible fly in the ointment is the way SQL Server's identity is handled - you may need to script some additional steps to clean up the cloned SQL instance as outlined in this SQLmag article.

As far as developers breaking test systems is concerned, that should be expected and ideally it should be something that they have no worries about. You want them to be able to break lab systems as much as they need to after all. VM Snapshots are one way to deal with this especially if you have an environment where you can give the Developers the rights to directly manage snapshots of their VM's.

share|improve this answer

VMware vCenter Lab Manager is a product that gives the ability to any (authorized) user to 'order' one or more virtual machines of his choice. In your situation the developer will order a 'default development vpc' and he will get the preconfigured vm with sql server, sharepoint etc.

share|improve this answer
+1 not only mentioning a good solution, but adding in the self-serving part for IT operations striving for more than a basic operational level (where basic in my opinion is automating stuff and mostly being proactive, but not delegating control). – Oskar Duveborn Nov 15 '09 at 15:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.