how can I use the new VHD feature in System Center 2012 R2 Configuration Manager


Microsoft released System Center 2012 R2 Configuration Manager on October 18th, 2013  as planned (General Availability) and now we all have the ability to test the new features in the finished product. I’ve installed it in my lab and wanted to test the New operating system deployment features, one of which is the ability to create a VHD from a task sequence right from the Configuration Manager console.

Before getting started however you’ll need to have at least one host capable of running HyperV (such as Windows 8, Windows 8.1, Windows Server 2008R2, Windows Server 2012, Windows Server 2012R2) with the System Center 2012 Configuration Manager console installed.

Tip: You’ll need System Center 2012 R2 Configuration Manager installed, here’s a step by step guide to get your started.

Step 1. Create a new task sequence

Note: Perform the following on any computer with the System Center 2012 R2 Configuration Manager AdminConsole installed as SMSAdmin.

Open the Admin console, expand Software Library, Operating System Deployment and right click on Task Sequences, choose Create Task Sequence.
Create Task Sequence.png

choose the third option, install an existing image to a virtual hard disk

Install an existing image package to a virtual hard disk.png

choose a suitable name for your task sequence and select a boot image

create task sequence wizard.png


In this task sequence I am deploying Windows 8 X64 Enterprise using the Install.wim file from the DVD, I also select to enable the Administrator account and I specify a password

install the windows operating system.png


select to Join a domain and fill in appropriate domain join credentials


join domain.png


and install the configuration manager client, you can add switches here if needed


install client.png


and select to install some applications if you wish


Install applications.png


click next through to the completion message


task sequence created.png


You can now edit the task sequence if you wish and add/remove steps, note the last step is a shutdown command, this is a special step and is ‘looked for’ by the wizard later on so that it knows the task sequence is complete and to generate the VHD.


shutdown computer.png



Step 2. Create a Virtual Hard Disk

Note: Perform the following on a HyperV host computer with the System Center 2012 R2 Configuration Manager AdminConsole installed as SMSAdmin.


Method #1 – Do it using the AdminConsole


In the Admin console Expand the Task Sequences node in Operating System Deployment and right click on Virtual Hard Disks. If this is greyed out it’s because you are not running the console on a Hyperv Enabled host (I’ve tested it on Server 2012 running Hyperv with the R2 admin console installed). To make it clear, i’m including two screenshots of the same action, one on a hyperV host, the other is an adminconsole with no hyperV hosts locally installed.


Note: the below screenshot is on a host without hyperv installed or enabled. Note how the Create Virtual Hard Disk action is greyed out.


Create Virtual Hard Disk greyed out.png


Note: the below screenshot is on a hyperv host


Create Virtual Hard Disk.png


Now that we’ve started the create virtual hard disk wizard, fill in some details about our virtual hard disk.


specify general information for this virtual hard disk.png


next select our task sequence that we created in Step 1


select the task sequence.png


and depending on how complicated the task sequence was it will take some time to generate a list of task sequence referenced content


this task sequence references the following content.png


select a distribution point that has all the packages on it (XX of XX)


6 of 6.png


and click your way through the wizard, at this point you’ll see be prompted to allow access to your host computer (to create the file) and shortly after the magic begins




The task sequence media creation is logged in the CreateTSMedia.log file located on the hyperv host running the adminconsole (Typically C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\AdminUILog)


createtsmedia log file.png


The user you are logged in as will have it’s AppData\Local\Temp dir used as a temporary scratch space, so make sure you have lots of space if needed or use the link at the bottom of this page to change your TMP environment variables to point to a drive with more free space.


appdata temp.png


and off it goes creating the virtual hard disk (look at this video to see the process in more detail, watch above the hyperv4 vm to see the new virtual machine being created, this video has no audio yet, it’s coming hopefully if i get time…)


youtube video.png


creates the virtual hard disk.png


This involves, automatically creating a temporary virtual machine in hyperV, starting it automatically, starting the task sequence automatically and finally sealing the VHD file which can then be seen in the configuration manager console. Below you can see the temporary virtual machine in hyperv shortly before the VHD is created (task sequence is complete)


our temporary virtual machine.png


The temporary virtual machine continues to run the task sequence, eventually installing our applications


the vm is running the task sequence.png


once complete the Virtual machine shutsdown and the VD copying starts, you can now monitor the DeploytoVHD.log file (in C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\AdminUILog)


deploytovhd log file.png


When the logfile confirms the process is done then you can assume that the wizard is also complete…and it is… 🙂


vhd wizard done.png


and you’ll notice that the temporary virtual machine is gone


temp vm gone.png


and clicking on Virtual Hard Disks in the Admin console will list our newly created VHD file, success !


newly created vhd file.png


at which point you can modify the VHD (by choosing that action in the ribbon or via right click) or just upload it to Virtual Machine Manager.


Upload to virtual machine manager.png



Method #2 – Do it using PowerShell


Start PowerShell ISE (PowerShell Integrated Scripting Environment) as Administrator


start ISE.png


and paste in the following code

import-module 'C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1'
Set-Location P01:\
New-CMVhd -path \\hyperv-5\c$\hyper-v\vhd\PowerShell.vhd -Name "Windows 8 Enterprise X64 - VHD created using Powershell " -VHDsize 50 -TaskSequencePackageId "P0100071" -DistributionPointServerNames SCCM.server2008r2.lab.local -Version "X64" -Description "created by"

The first two lines simply import the configuration manager powershell module and then set your path to your primary server P01.

The New-CMvhd cmdlet is a new cmdlet in R2 and it is used to create the VHD using powershell.


In the above, the -TaskSequencePackageId value is the PackageID of your task sequence, make sure to set the appropriate values in the New-CMvhd command to suit your environment (for example your server share).


package ID.png


Click on the Green arrow to run your powershell script


run the powershell script.png


and off it goes !


script is running.png


and after some VHD creation……………job done !




and our VHD appears in the console




not too bad eh ?




 Related reading

What’s New in System Center 2012 R2 Configuration Manager – http://technet.micro…y/dn236351.aspx

This entry was posted in ConfigMgr 2012. Bookmark the permalink.

Leave a Reply