Share via


Using the Hyper-V Integration Components in WinPE

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: https://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 https://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 (https://www.winimage.com/)

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

c. UltraISO (https://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

Comments

  • Anonymous
    May 30, 2008
    Mike Sterling just made a triumphant return to blogging by posting an article on how to add the RC1 ICs

  • Anonymous
    May 30, 2008
    Mike Sterling has just done a great post on how to integrate the Hyper-V Integration Services into a

  • Anonymous
    June 01, 2008
    The comment has been removed

  • Anonymous
    June 01, 2008
    This is great stuff. I'm trying to workout if this can be automated into the MDT2008 WinPE ISO and WIM process creation process for lab testing FG

  • Anonymous
    June 02, 2008
    @Joseph - I haven't had a chance to look at BartPE - now that WinPE is available to everyone, it's a much better solution (at least in my opinion). What does BartPE provide that WinPE doesn't have?

  • Anonymous
    June 02, 2008
    @Firdous - I'm not familliar with the MDT WinPE ISO automated build process - but it might work.

  • Anonymous
    June 04, 2008
    Doesn't work for me. The PEIMG command always fails with status code 0x80070003. I'm using PEIMG from AIK not OPK if that matters. I don't get the prompt 'Installing INF package' before the error message. Other documentation regarding driver injection always refers to image 2 in BOOT.WIM as the proper target. Any Clues anyone?

  • Anonymous
    June 04, 2008
    Found status 0x80070003 means INF file wasn't found, path slightly different in x86 kits

  • Anonymous
    June 05, 2008
    @Mark: All the modifications are being made to boot.wim, which gets mounted as part of steps 1-4 in the WinPE users guide (Step 5 in my instructions). Can you confirm that the WIM gets mounted, and you can browse the contents?

  • Anonymous
    June 07, 2008
    The comment has been removed

  • Anonymous
    June 12, 2008
    Mike Sterling talks about how to inject Hyper-V into WinPE.  Pretty cool. http://blogs.msdn.com

  • Anonymous
    June 18, 2008
    Great information. Just a comment, we have to launch the expand command on a Windwos 2008 or maybe a vista (not sure) OS. Expanding on a Windows 2003 doesn't produce the same files ! Delfim.

  • Anonymous
    June 18, 2008
    I have the following issue with windows 2008 x64 guest and storflt.sys : Windows cannot verify the digital signature for this file Is there anybody had this problem ? Thanks, Delfim.

  • Anonymous
    July 01, 2008
    Now that we've reached the RTM milestone with Hyper-V (and why I'm actually on vacation), here's the

  • Anonymous
    July 02, 2008
    Mike's Blog: Now that we've reached the RTM milestone with Hyper-V, here's the updated script

  • Anonymous
    July 21, 2008
    In the week or so since Hyper-V RTMed there has been a huge amount of coverage on various websites. Here's

  • Anonymous
    October 21, 2008
    The comment has been removed

  • Anonymous
    February 27, 2010
    hello, in W2K8R2, i create a vm for winpe3. Drivers for hyperV seems OK. But not services hyperV. I The program vmicsvc.exe exist in system32. I use drvload.exe to install them from the vmguest.iso and the file windows6... When i launch "net start vmickvpexchange", service starts but stop with error 87 (incorret parameter). What is wrong for me? Also, can you speak more about the use of the group "vmickvpexchange". Thank you very mutch.