The new architecture of synthetic devices with Hyper-V poses some unique challenges for system administrators. Specifically, how can a system administrator perform maintenance on a Hyper-V host from WinPE? Without the integration components, users are required to move their VHD's around to the IDE controller, which limits the amount of VHD's that can be used at any given point in time. Additionally, legacy network adapters might need to be added to the VM to provide network access.

However, by adding the integration components to a WinPE image, those are no longer concerns.

For those of you not familiar with WinPE, here's a brief overview:

Windows Preinstallation Environment (Windows PE) is a minimal operating system designed to prepare a computer for Windows installation. It can be used to start a computer with no operating system (a bare-metal system), to partition and to format hard drives, and to copy disk images or to initiate Windows Setup from a network share. Windows PE is available as a stand-alone product to customers with the proper licensing agreement. It is an integrated component of many Windows Setup and recovery technologies, including Setup for Windows Vista and Windows Deployment Services (WDS).

Windows PE 2.1 is the latest release based on the Microsoft® Windows Vista® operating system.

Before we start - what I'm about to detail is not supported by Microsoft.
These directions are being provided on an AS-IS basis.

Now, on to the steps:

1.     Download and install the Windows Automated Installation Kit (AIK). This allows you to create a custom WinPE image. The AIK can be downloaded here: http://www.microsoft.com/downloads/details.aspx?FamilyID=94bb6e34-d890-4932-81a5-5b50c657de08&DisplayLang=en

2.     We need to extract two files from the c:\windows\system32\vmguest.iso file, which is part of Hyper-V RC1 (available at http://www.microsoft.com/downloads/details.aspx?FamilyId=7EDAA89F-9F64-488D-93C0-858D2D8799DF). There are a couple of tools that allow the mounting of an ISO image:

a. WinImage (http://www.winimage.com/)

b. WinISO (http://www.winiso.com/)

c. UltraISO (http://www.ezbsystems.com/ultraiso/)

You can also mount the ISO image in a VM and extract the files as well.

We’re looking for two files. Copy the file that is appropriate for your architecture:

·         32 Bit: \support\x86\Windows6.0-KB951633-x86.msu

·         64 Bit: \support\amd64\Windows6.0-KB951633-x64.msu

3.     Create a directory on the same system you installed the AIK, and store the file(s) above there.

4.     Open up the Windows PE User’s Guide. This was installed as part of the Windows AIK, and can be found (by default) by browsing to Start -> All Programs -> Windows OPK -> Documentation -> Windows PE User’s Guide.

5.     Follow steps 1-4 under Customizing WinPE -> Windows PE Walkthroughs -> Walkthrough: Create a Custom WinPE Image.

6.     After step 4 (Optional: Add Additional Customizations), run the following script from your Windows PE Tools Command Prompt. Create a new batch file with the script below. Make sure that the MSUSOURCE is set to the directory where the files you copied in step 2 and 3 are, and that PESOURCE is set to the directory you created in Step 5.

%echo off

set MSUSOURCE=D:\synth\rc1\amd64

set PESOURCE=D:\winpe_x64_synthetic

mkdir %temp%\IC

c:\windows\system32\expand.exe -F:* %MSUSOURCE%\Windows6.0-KB951633-x64.msu %temp%\ic

mkdir %temp%\IC\binaries

c:\windows\system32\expand.exe -F:* %temp%\ic\Windows6.0-KB951633-x64.CAB %temp%\ic\binaries

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wnetvsc.inf_31bf3856ad364e35_6.0.6001.18010_none_b331f76187e159c6\wnetvsc.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_ws3cap.inf_31bf3856ad364e35_6.0.6001.18010_none_f2dbb8abfcb9f757\ws3cap.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wstorflt.inf_31bf3856ad364e35_6.0.6001.18010_none_1ca7ba32d0b2bd99\wstorflt.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wstorvsc.inf_31bf3856ad364e35_6.0.6001.18010_none_835d97e82051b059\wstorvsc.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wvmbus.inf_31bf3856ad364e35_6.0.6001.18010_none_95947137626ceb80\wvmbus.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wvmbushid.inf_31bf3856ad364e35_6.0.6001.18010_none_4cc9f65464cd2f85\wvmbushid.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wvmbusvideo.inf_31bf3856ad364e35_6.0.6001.18010_none_af4c3664979a87cd\wvmbusvideo.inf %PESOURCE%\mount\Windows

"C:\Program Files\Windows OPK\Tools\PETools\peimg.exe" /inf=%temp%\IC\binaries\amd64_wvmic.inf_31bf3856ad364e35_6.0.6001.18010_none_5df58a6c04d20690\wvmic.inf %PESOURCE%\mount\Windows

Once the batch file completes, refer back to the Windows PE Users Guide, and finish following the steps from Step 5 onward.

After you create the ISO, attach it to a VM and power it on. You should have full access to all synthetic devices.

-Mike