WinPE: Mount and Customize
WinPE ships as a .wim file. You can mounting and customize a WinPE image following the same process as any other Windows image. In addition to customizations that are common to Windows and winPE images, such as drivers and packages, WinPE also has some customizations specific to it. This topic covers the common ways to customize a WinPE image.
Common customizations:
- Device drivers (.inf files). You can customize device drivers, such as drivers that support network cards or storage devices.
- Packages (.cab files, also known as WinPE optional components) Add languages, hotfixes, or support for features like PowerShell and the HTML Application Language (HTA).
- Languages. To run WinPE in multiple languages, add the packages (optional components) for those languages.
- Add files and folders. These can be added directly to the WinPE image.
- DISM: Use a newer version. When new versions of Windows require features from the latest version of DISM, you can add DISM directly into WinPE.
- Startup scripts. Examples include setting up a network connection, or adding a custom application, such as diagnostic software.
- Apps. Note, WinPE only supports legacy apps.
- Temporary storage (scratch space). If your application requires temporary file storage, you can reserve extra memory space in RAM.
- Background image
- Power scheme
- WinPE settings
- Windows updates
Get the Windows Assessment and Deployment Kit with Windows PE tools
- Download and install the Windows Assessment and Deployment Kit (Windows ADK), and associated WinPE addon. Previous versions of the ADK include Windows Preinstallation Environment as part of the ADK installer and don't require downloading and installing WinPE separately.
Create a set of either Windows PE files
Before you can customize WinPE, you need to have a WinPE image to work with. If you don't have a WinPE image to work with, see WinPE: Create USB bootable drive and follow the steps to create WinPE working files.
Mount the Windows PE boot image
Use DISM to mount the WinPE image into a temporary location on your technician PC:
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
Add customizations
Add device drivers (.inf files)
Use
DISM /add-driver
to add a device driver to your WinPE image.Dism /Add-Driver /Image:"C:\WinPE_amd64\mount" /Driver:"C:\SampleDriver\driver.inf"
You can add multiple drivers to an image by using one command, but it's often easier to troubleshoot problems if you add each driver package individually.
To learn more about drivers, see Add device drivers (.inf files). To see all available DISM driver servicing options, see DISM driver servicing command-line options.
Add packages/languages/optional components/.cab files
WinPE has packages that you can add with DISM to enable additional features and languages. Use
DISM /add-package
to add optional components to your image. When you add a WinPE optional component, make sure that you add both the optional component and its associated language packs.Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab" Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-HTA_en-us.cab"
To learn more about available optional components and languages, see WinPE: Add packages (Optional Components Reference).
Add files and folders
Copy files and folders into the C:\WinPE_amd64\mount folder. These files will show up in the X:\ folder in WinPE.
Don't add too many files, as these will slow down WinPE and can fill up the available memory in the default RAMDisk environment.
Add a startup script
Modify Startnet.cmd to include your customized commands. This file is located in your mounted image at
C:\WinPE_amd64\mount\Windows\System32\Startnet.cmd
.You can also call other batch files or command line scripts from this file.
For Plug and Play or networking support, make sure that you include a call to wpeinit in your customized Startnet.cmd script. For more info, see Wpeinit and Startnet.cmd: Using WinPE Startup Scripts.
Add an app
Create an app directory inside the mounted WinPE image.
md "C:\WinPE_amd64\mount\windows\<MyApp>"
Copy the necessary app files to the local WinPE directory.
Xcopy C:\<MyApp> "C:\WinPE_amd64\mount\windows\<MyApp>"
Test the app later by booting WinPE and running the application from the X: directory.
X:\Windows\System32> X:\Windows\<MyApp>
If your app requires temporary storage, or if WinPE becomes unresponsive when it runs an app, you may need to increase the amount of temporary storage (scratch space) allocated to WinPE.
To automatically launch a shell or application that runs when WinPE starts, add the path location to the Winpeshl.ini file. For more info, see Winpeshl.ini Reference: Launching an app when WinPE starts.
Add temporary storage (scratch space)
WinPE reserves memory on the X: drive to unpack the WinPE files, plus additional temporary file storage, known as scratch space, that can be used by your applications. By default, this is 512MB for PCs with more than 1GB of RAM, otherwise the default is 32MB. Valid values are 32, 64, 128, 256, or 512.
Dism /Set-ScratchSpace:256 /Image:"C:\WinPE_amd64\mount"
Replace the background image
If you've got multiple versions of WinPE, you can set the background image so you can instantly tell which version of WinPE is running.
Change the security permissions of the WinPE background image file (\windows\system32\winpe.jpg
). This allows you to modify or delete the file.
In Windows Explorer, navigate to
C:\WinPE_amd64\mount\windows\system32
.Right-click the
C:\WinPE_amd64\mount\windows\system32\winpe.jpg
file, and select Properties > Security tab > Advanced.Next to Owner, select Change. Change the owner to Administrators.
Apply the changes, and exit the Properties window to save changes.
Right-click the
C:\WinPE_amd64\mount\windows\system32\winpe.jpg
file, and select Properties > Security tab > Advanced.Modify the permissions for Administrators to allow full access.
Apply the changes, and exit the Properties window to save changes.
Replace the
winpe.jpg
file with your own image file.
Set the power scheme to high performance
Note
Using the high performance power scheme can make the device run hotter than usual.
In Notepad, edit the file:
C:\WinPE_amd64\mount\windows\system32\startnet.cmd
, adding a command to set the power scheme to High Performance.wpeinit powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Add answer file settings
Some WinPE settings can be managed by using an answer file, such as firewall, network, and display settings. Create an answer file, name it unattend.xml, and add it to the root of the WinPE media to process these settings. For more information, see Wpeinit and Startnet.cmd: Using WinPE Startup Scripts.
Add updates to WinPE (if needed)
You can apply updates to your WinPE image, but you'll only need to for certain situations.
If you've been instructed to apply an update to your WinPE image, you'll have to first download the latest update for your WinPE version from the Microsoft update catalog. Updates for WinPE are included in updates for the matching Windows version.
Download the latest update.
Apply the update to your mounted WinPE image.
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"E:\windows10.0-kbxxxxx.msu"
Where Windows10.0-kbxxxxx.msu is the name of the update file
Lock in the update:
md C:\temp Dism /Cleanup-Image /Image:C:\WinPE_amd64\mount /Startcomponentcleanup /Resetbase /ScratchDir:C:\temp
Unmount the Windows PE image and create media
Unmount the WinPE image, committing changes.
Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /commit
Create bootable media, such as a USB flash drive.
MakeWinPEMedia /UFD C:\WinPE_amd64 F:
Boot the media. WinPE starts automatically. After the WinPE window appears, the wpeinit command runs automatically. This may take a few minutes. Verify your customizations.
Troubleshooting
- WinPE won't boot? See the troubleshooting tips at the end of the topic: WinPE: Create USB Bootable drive
- For tips on connecting to a network, see WinPE Network Drivers: Initializing and adding drivers.
- If the WinPE image becomes unserviceable, you may need to clean up the images before you can mount the image again. For information, see Repair a Windows Image.
To delete a working directory:
In some cases, you may not be able to recover the mounted image. DISM protects you from accidentally deleting the working directory, so you may have to try the following steps to get access to delete the mounted directory. Try each of the following steps:
Try remounting the image:
dism /Remount-Image /MountDir:C:\mount
Try unmounting the image, discarding the changes:
dism /Unmount-Image /MountDir:C:\mount /discard
Try cleaning up the resources associated with the mounted image:
dism /Cleanup-Mountpoints