Since Vista’s release Microsoft has provided a variety of tools for deploying their operating systems. One such tool is Business Deployment Desktop which Microsoft describes as “the best-practice set of comprehensive guidance and tools from Microsoft to optimally deploy Windows Vista and the 2007 Office system.” Though BDD certainly makes OS and application deployment to a variety of hardware platforms simpler than ghosting, eventually you’ll run into a problem: some critical hardware may not be natively supported by WinPE, the preinstallation environment used to load the OS onto a new system. This article will explain how to inject LAN drivers into WinPE, allowing you to deploy installations to a larger variety of hardware.

I’m deploying Windows XP and Vista using BDD and Windows Deployment Services. This platform worked well until yesterday when I network booted a Dell Inspiron 8200 and WinPE failed to recognize the LAN adapter, leaving the machine with no path to the network to continue the installation. The solution is simple: inject your LAN drivers into WinPE. The process of injecting drivers into the WinPE image is simple. Follow the instructions below. You will need to have the Microsoft WAIK (Windows Automated Installation Kit) installed to modify the image. This is available through the Components option in BDD (Business Deployment Desktop). WAIK provides the command line tools for working with WIM images, the image format used by Windows and WinPE.

  1. Open the WinPE Command Prompt by Clicking Start -> All Programs -> Microsoft Windows AIK -> Windows PE Tools Command Prompt.
  2. Create an empty folder which you will use to mount the WinPE image:
    mkdir C:\mount
  3. Locate your WinPE image. Mine is located ate C:\RemoteInstall\Boot\LiteTouchPE_x86.wim. Mount the image using the following command, substituting your own mount path and WinPE image. Note that each WIM file can contain multiple images; use the imagex /info command to locate the correct number for your boot image.
    imagex /mountrw C:\RemoteInstall\Boot\LiteTouchPE_x86.wim 1 C:\mount
  4. Locate the INF file for your network driver. Mine is located at C:\Dell\Drivers\R49651\INF\W9X90XBC.INF. Use the following command to inject the driver, subsituting your own driver INF and mount path.
    peimg /inf=C:\Dell\Drivers\R49651\INF\W9X90XBC.INF /image=C:\mount
  5. Commit the changes to the image. Again substitute your own mount location formy own.
    imagex /unmount /commit C:\mount

Personally I would like to see BDD automatically add your network drivers to the WinPE boot image when you add them to the Out of Box Driver set, but for your you’ll have to perform this step manually. Interestingly enough I was a die-hard fan of Symantec Ghost before I reached this point in my use of Microsoft’s deployment tools. Ghosting is simple and fast, but Ghost images don’t travel well across a plethora of hardware. This is where Microsoft’s tools, based on an automated install work flow rather than images, truly shines. Consider it good practice to add the network drivers for all computing platforms within your organization. If you perform this simple step you’ll find it simple to deploy identical Windows and software installations over a variety of hardware platforms.