What happens when you Sysprep a system running Hyper-V on Windows Server 2008 R2?

I got asked this question a couple of weeks ago – and I did not know the answer.  After a bit of investigation – I now know the answer – and thought I would take the time to share it with the world (if you do not know what Sysprep is – go and read this first).  The short answer is:

Everything just works.

The long answer is as follows:

Prior to Window Server 2008 R2 (namely in Windows Server 2008) you could run into a couple of problems.  In Windows Server 2008 R2 we have implemented a Sysprep provider to ensure that everything goes smoothly.  This provider does work during two of the phases of Sysprep:


The generalize phase of Sysprep is where an installed version of Windows is prepared to be duplicated – and all installation specific information is removed.  During this phase Hyper-V makes a couple of key changes:

  • The installation date information for Hyper-V cleared.  It will be automatically regenerated when the system image is deployed to a new system (or rebooted locally).
  • The dynamic MAC address range is cleared.  This will also be automatically regenerated when the system image is deployed to a new system.  This step is necessary to ensure that you do not get duplicate MAC addresses on multiple Hyper-V servers if they are all deployed from the same base image.


The specialize phase is run after the system image has been deployed to a new computer.  Hyper-V makes the following change as part of this phase:

  • Enable automatic launching of the hypervisor in the boot configuration data (BCD) store.  Because a new boot configuration data store is created as part of the image deployment process, and because Hyper-V stores information in the boot configuration data store – we need to make sure this information comes across to the new system.