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.
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:
Import
-Module
'C:Program FilesMicrosoft System Center 2012Virtual Machine ManagerbinpsModulesvirtualmachinemanagervirtualmachinemanager.psd1'
Get
-SCVMMServer
localhost
$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
(
$driver
in
$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
-SCVMMServer
localhost
$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