Adding Drivers To Winpe 4.0

WinPE Network Drivers: Initializing and adding drivers.; 3 minutes to read In this article. The Wpeutil command initializes the Windows PE (WinPE) network drivers as soon as WinPE boots. The default WinPE image includes support for many popular network adapters, and supports many of the same networking commands as in Windows. To add drivers to your image they must be extracted to their lowest.inf form, not as an executable. In the Add Drivers area select the folder where your drivers have been extracted. Check 'Force Unsigned' if necessary for the driver. In the image below the driver files to the left are an example of extracted drivers. Adding drivers to winPE 4.0 offline the drivers are not recognized - posted in Win8PE: Hi; I am trying to add some drivers to WIn8 PE4 image when I add the driver.

Winpe 10 drivers

As a part of my daily life I build deployment solutions for customers that supports both Server OS and for Client OS and one of the components need are drivers for WinPE. Normally not a problem on the client side, but for servers there are some things that could let you grow a bit more gray hair then needed.

32bit drivers for 64bit OS

Since I prefer to have only one single boot image I would like to have the 32 bit version since that handles both 32 and 64 bit OS images. There is no obvious way to find the 32 bit versions of the driver in the 64 bit edition of Windows Server webpage. When deploying using System Center 2012 Virtual Machine Manager you need the 64 bit drivers and you might want to use the HP Insight Control for System Center instead

Specialized WinPE drivers might be needed

Even if WinPE is a subset of Windows it should be able to use the normal drivers, but “should” is just a word. In many cases the dual bus architecture or other “inventions” might require monolithic drivers. Those drivers should not be used in the running OS, only in WinPE

The solution (if you have a HP Server)

HP have something called Scripting Toolkit and that just happens to contain all the drivers needed for storage and network for all ML/DL/BL HP ProLiant DL/ML/SL 300, 500, 700, 900 and HP ProLiant BL server series and HP ProLiant 100 G6 series and higher which basically covers “all” server from HP. The current version is 8.70 for x86 and can be downloaded and the x64bit version here

When you extract the archive into a folder it will look like this


Guess where the drivers are…

Getting the drivers in the correct location

For MDT 2012 Update 1

This is pretty straight forward. Open deployment workbench and add the drivers to the WinPEx86 folder (if you do not have one, you should create that)

Modify so that all drivers from that folder is imported into the boot image

For Windows Deployment Services for Windows Server 2012

Not that hard either, remember we only need these drivers for WinPE, not for the running OS so when we import them we need to flag them so that will never be installed, we just need to have them imported so that we can apply them to the WinPE image, it should look like this

For WinPE from ADK

The offline method:

Dism /Mount-WIM /WimFile:c:winpewinpe.wim /index:1 /MountDir:c:winpemount
Dism /image:c:winpemount /Add-Driver /Driver:e:drivers /Recurse
Dism /unmount-wim /Mountdir:c:winpemount /commit

The online method:

Winpe Install Driver

drvload.exe <path>

For System Center 2012 Virtual Machine Manager:

Winpe 10 Drivers

Note: For System Center 2012 Virtual Machine Manager you can also download the HP Insight Control for System Center, that contains HP server drivers for network and storage, however, those are only 64 bit drivers. So for the SCVMM solution you can either download the scripting toolkit driver pack, but for SCVMM they need to be x64 bit drivers or you can download the HP Insight Control for System Center kit that is only x64 bit version. It will basically be the same driver, the HP Insight Control for System Center has one part that is rather nice, it has an installer that will install all the drivers and then tag them during the import so that you can use tags when injecting them into WinPE

If the drivers are imported into the SCVMM library and tagged method:

Use the following PowerShell command:

Adding Drivers To Winpe 4.0

Import-Module'C:Program FilesMicrosoft System Center 2012Virtual Machine ManagerbinpsModulesvirtualmachinemanagervirtualmachinemanager.psd1'
Get-SCVMMServerlocalhost
$mountdir= 'e:mount'
$winpeimage= 'e:tempboot.wim'
$winpeimagetemp= $winpeimage+ '.tmp'
mkdir 'e:mount'
copy$winpeimage$winpeimagetemp
dism /mount-wim/wimfile:$winpeimagetemp/index:1 /mountdir:$mountdir
$drivers= get-scdriverpackage| where{ $_.tags -match'WINPE'}
foreach($driverin $drivers)
{
$path= $driver.sharepath
dism /image:$mountdir/add-driver/driver:$path
}
Dism /Unmount-Wim/MountDir:$mountdir/Commit
publish-scwindowspe-path$winpeimagetemp
del$winpeimagetemp

If the drivers are in folder and NOT imported into the SCVMM library:

Use the following PowerShell command:

Import-Module'C:Program FilesMicrosoft System Center 2012Virtual Machine ManagerbinpsModulesvirtualmachinemanagervirtualmachinemanager.psd1'
Get-SCVMMServerlocalhost
$mountdir= 'e:mount'
$winpeimage= 'e:tempboot.wim'
$winpeimagetemp= $winpeimage+ '.tmp'
mkdir 'e:mount'
copy$winpeimage$winpeimagetemp
dism /mount-wim/wimfile:$winpeimagetemp/index:1 /mountdir:$mountdir
$path= 'e:tempdrivers'
dism /image:$mountdir/add-driver/driver:$path /recourse
Dism /Unmount-Wim/MountDir:$mountdir/Commit
publish-scwindowspe-path$winpeimagetemp
del$winpeimagetemp

/mike

Categories: Deployment, MDT, SCVMM, System Center 2012, Virtual Machine Manager