WDS, Windows XP and driver installation during mini setup
- Hi
I have everything up and running with WDS and a captured Windows XP image except for the injection of drivers during the mini setup.
I ran "Sysprep -mini -activated" on the XP computeren before capturing the image.
I have the following structure:
\WindowsXP.wim
..\WindowsXP\$OEM$\$1\Sysprep
..\WindowsXP\$OEM$\$1\Drivers
\Drivers\LAN
\Drivers\System
\Drivers\Media
\Drivers\Display\Graphics
In the \Sysprep folder I have saved a Sysprep.inf where I have added the following strings:
OemPreinstall=Yes
OemPnPDriversPath = "Drivers\LAN";"Drivers\Display\Graphics";Drivers\System
DriverSigningPolicy=Ignore
It installs the LAN driver and the System drivers but it leaves the Graphics alone. If I select \Drivers\Display\Graphics manually after doing the mini setup it installs the drivers without any problems.
Can anyone help me or point me in the right direction?
/Lasse
Lasse- Edited byLasseF Monday, June 23, 2008 1:12 PMForgot path in \Drivers
Answers
- Hi Chang Yin
Thanks for your reply.
I have been testing and testing and I have now found the reason for my problems.
When I ran "Sysprep -mini -activated" I had a Sysprep.inf in the \Sysprep folder with the above OemPnPDriversPath settings, except for the "Drivers\Display\Graphics" path. I assumed that when I made changes to OemPnPDriversPath in Sysprep.inf located in "..\$OEM$\$1\Sysprep" on the WDS server it would use the settings during the deployment process, but I assumed wrong.
I checked the DevicePath setting in the registry and I can see that it doesn't add "Drivers\Display\Graphics" to the path after running the mini setup.
I then made all the neccessary changes to OemPnPDriversPath and ran "Sysprep -mini -activated" again and now it added "Drivers\Display\Graphics" to the DevicePath in the registry.
So I assume that I can only make changes to OemPnPDriversPath/DevicePath before capturing the image, is that correct?
I have been all over the internet (or nearly all over :-)) and I haven't found a proper guide to WDS and Windows XP. I can find bits and pieces but none that covers it properly from A to B. My plan is to make my own when I get everything up and running smoothly.
I am currently pretty close to have the deployment process as I would like it. I have a unattended mini setup that does the following:
- Adds the computer to our AD in a specific OU
- Install all drivers from the \Drivers\ folder
- Install applications during [GuiRunOnce]
I have the Deployment Wizard completely unattended as well except for which image to choose. It does the following:
- Apply user credentials
- Chooses Language and keyboard layout
- Creating one large system partition and doing a NTFS format
This is done by adding a custom WDSUnattended.xml at server level in Windows Deployment Services.
/Lasse
Lasse- Marked As Answer byChang Yin Sunday, July 06, 2008 8:33 AM
Hi Lasse,
I am sorry to say that I am not quite sure about this. Based on my knowledge, all of the following settings should be processed during the mini setup:
[GuiUnattended]
Subsets include:
AdminPassword
AutoLogon
AutoLogonCount
OemSkipRegional
OemSkipWelcome
TimeZone
OEMDuplicatorString
[Unattended]
Subsets include:
ExtendOemPartition
OemPnPDriversPath
OemSkipEula
InstallFilesPath
KeepPageFile
ResetSourcePath
TapiConfigured
UpdateHAL
UpdateInstalledDrivers
UpdateUPHAL
[Display]
[GuiRunOnce]
[Identification]
[LicenseFilePrintData]
[Networking]
[RegionalSettings]
[TapiLocation]
[UserData]
Additionally, based on some research, I found some useful information for the OemPnpDriversPath section, I just quoted it out from the help document for your reference (and I think the unsigned drivers may be the cause):
Syntax OemPnPDriversPath = folder_1_on_system_drive
Value folder_1_on_system_drive[;folder_2_on_system_drive]...
Example OemPnPDriversPath = drivers\audio;drivers\net
Registry subkey HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath
Comments The folders must contain all the files necessary to install the particular devices: catalog files, .inf files, and drivers.
For example, if you have a folder called \Drivers with subfolders called \Audio and \Net, specify OemPnPDriversPath = drivers\audio;drivers\net in Sysprep.inf. Sysprep adds:
1. %SYSTEMDRIVE% to each of the folder names
2. The path for each subfolder to the Plug and Play device search path (this could the location in the Registry)
If there is already a path in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath, Sysprep does not append the path to the registry key a second time.
Important:
1. The length of OemPnPDriversPath in Sysprep.inf must not exceed 4,096 characters.
2. You cannot use environment variables to specify the location of a folder.
3. Always use signed drivers. Signed drivers make the operating system more stable and significantly reduce requests for product support.
In Sysprep.inf, the value of OemPnPDriversPath can be any location on the computer's hard disk.
If the drivers are not in the Drivers.cab file on the computer's hard disk or in the location specified by OemPnPDriversPath, Setup prompts the end user for the location of the drivers the first time the computer starts, before Windows Welcome or Mini-Setup runs.
The two help documents deploy.chm and ref.chm will be helpful for these settings. You can go through these documents and will find a lot of useful information there.
Best regards,
Chang Yin
- Marked As Answer byChang Yin Sunday, July 06, 2008 8:33 AM
All Replies
Hello,
I think the cause could probably be the unsigned driver. Please note that the DriverSigningPolicy=Ignore is of no use when using Sysprep Setup (this information is documented in the following article). Would you please try the following methods so that we can narrow down the problem?
1. Try putting the drivers contained in the folder "Drivers\Display\Graphics" into the folder "Drivers\System".
2. If possible, please boot the reference Windows XP machine (on which you syspreped your system) and then try syspreping again with –pnp switch.
For more detailed information about this, please refer to the following articles:
How to Add OEM Plug and Play Drivers to Windows XP:
http://support.microsoft.com/kb/314479
Unsigned Drivers Not Installed During Sysprep Mini-Wizard Without "-pnp" Switch:
http://support.microsoft.com/kb/256204
If this problem remains, please collect the %WINDIR%\setupapi.log and send it to tfwst@microsoft.com
Note:
a. Please include the following three lines for this issue in the email body:
WDS, Windows XP and driver installation during mini setup
http://forums.technet.microsoft.com/en-US/winserversetup/thread/f9a02353-287f-444d-821f-39219f0ddc2f
Chang Yin - MSFT
b. We will continue to discuss the issue here in the forum and will NOT reply via emails.
c. Please post a quick note in the current thread to inform me after sending the email.
Besides, if all the target machines have the same hardware (including the video card), you can install the specified driver before you sysprep your system. This way the driver will remain after you sysprep the system and doesn't require additional interaction.
Here is another article just for your reference:
How Windows determines the most suitable device driver to install during Setup:
http://support.microsoft.com/default.aspx?scid=kb;en-us;279112
Best regards,
Chang Yin- Hi Chang Yin
Thanks for your reply.
I have been testing and testing and I have now found the reason for my problems.
When I ran "Sysprep -mini -activated" I had a Sysprep.inf in the \Sysprep folder with the above OemPnPDriversPath settings, except for the "Drivers\Display\Graphics" path. I assumed that when I made changes to OemPnPDriversPath in Sysprep.inf located in "..\$OEM$\$1\Sysprep" on the WDS server it would use the settings during the deployment process, but I assumed wrong.
I checked the DevicePath setting in the registry and I can see that it doesn't add "Drivers\Display\Graphics" to the path after running the mini setup.
I then made all the neccessary changes to OemPnPDriversPath and ran "Sysprep -mini -activated" again and now it added "Drivers\Display\Graphics" to the DevicePath in the registry.
So I assume that I can only make changes to OemPnPDriversPath/DevicePath before capturing the image, is that correct?
I have been all over the internet (or nearly all over :-)) and I haven't found a proper guide to WDS and Windows XP. I can find bits and pieces but none that covers it properly from A to B. My plan is to make my own when I get everything up and running smoothly.
I am currently pretty close to have the deployment process as I would like it. I have a unattended mini setup that does the following:
- Adds the computer to our AD in a specific OU
- Install all drivers from the \Drivers\ folder
- Install applications during [GuiRunOnce]
I have the Deployment Wizard completely unattended as well except for which image to choose. It does the following:
- Apply user credentials
- Chooses Language and keyboard layout
- Creating one large system partition and doing a NTFS format
This is done by adding a custom WDSUnattended.xml at server level in Windows Deployment Services.
/Lasse
Lasse- Marked As Answer byChang Yin Sunday, July 06, 2008 8:33 AM
Hi Lasse,
I am glad to hear the problem has been resolved. That could be the root cause. I just thought that the changed sysprep.inf file was not copied to the target machine might be another reason.
It would be wonderful if you can write down the detailed steps about how to deploy Windows XP image by WDS. And it will be great helpful to all members who want to do this. I would like to help whenever you encounter some problems or have some concerns or questions. I am looking forward to that.
Thank you and have a nice day!
Best regards.
Chang Yin- Hi Chang
Do you know which sections of Sysprep.inf that are skipped during the deployment, like OemPnPDriversPath?
I have so far been able to make changes to the following sections with out having to do a new "Sysprep -mini -activated -pnp":
[GuiUnattended]
[UserDate]
[Identification]
[GuiRunOnce]
/Lasse
Lasse Hi Lasse,
I am sorry to say that I am not quite sure about this. Based on my knowledge, all of the following settings should be processed during the mini setup:
[GuiUnattended]
Subsets include:
AdminPassword
AutoLogon
AutoLogonCount
OemSkipRegional
OemSkipWelcome
TimeZone
OEMDuplicatorString
[Unattended]
Subsets include:
ExtendOemPartition
OemPnPDriversPath
OemSkipEula
InstallFilesPath
KeepPageFile
ResetSourcePath
TapiConfigured
UpdateHAL
UpdateInstalledDrivers
UpdateUPHAL
[Display]
[GuiRunOnce]
[Identification]
[LicenseFilePrintData]
[Networking]
[RegionalSettings]
[TapiLocation]
[UserData]
Additionally, based on some research, I found some useful information for the OemPnpDriversPath section, I just quoted it out from the help document for your reference (and I think the unsigned drivers may be the cause):
Syntax OemPnPDriversPath = folder_1_on_system_drive
Value folder_1_on_system_drive[;folder_2_on_system_drive]...
Example OemPnPDriversPath = drivers\audio;drivers\net
Registry subkey HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath
Comments The folders must contain all the files necessary to install the particular devices: catalog files, .inf files, and drivers.
For example, if you have a folder called \Drivers with subfolders called \Audio and \Net, specify OemPnPDriversPath = drivers\audio;drivers\net in Sysprep.inf. Sysprep adds:
1. %SYSTEMDRIVE% to each of the folder names
2. The path for each subfolder to the Plug and Play device search path (this could the location in the Registry)
If there is already a path in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath, Sysprep does not append the path to the registry key a second time.
Important:
1. The length of OemPnPDriversPath in Sysprep.inf must not exceed 4,096 characters.
2. You cannot use environment variables to specify the location of a folder.
3. Always use signed drivers. Signed drivers make the operating system more stable and significantly reduce requests for product support.
In Sysprep.inf, the value of OemPnPDriversPath can be any location on the computer's hard disk.
If the drivers are not in the Drivers.cab file on the computer's hard disk or in the location specified by OemPnPDriversPath, Setup prompts the end user for the location of the drivers the first time the computer starts, before Windows Welcome or Mini-Setup runs.
The two help documents deploy.chm and ref.chm will be helpful for these settings. You can go through these documents and will find a lot of useful information there.
Best regards,
Chang Yin
- Marked As Answer byChang Yin Sunday, July 06, 2008 8:33 AM
- Hi Chang
I have a image with a plain Windows XP SP3 installation and where the only path in the DevicePath is "%SystemRoot%\inf". I then tried deploying it to my test computer with a Sysprep.inf file containing the following OemPnPDriversPath:
OemPnPDriversPath=Drivers\Display;Drivers\hdc;Drivers\LAN;Drivers\Media;Drivers\SATA;Drivers\System;Drivers\WLAN;Drivers\Modem;Drivers\Card;Drivers\SD;Drivers\SmartCard;Drivers\TPM
When the deployment was done the DevicePath still only contained "%SystemRoot%\inf".
I also changed "OEMDuplicatorstring" so that I could see if the mini setup used that line but it didn't.
During the deployment process I checked to see the content of "C:\Sysprep\Sysprep.inf" through a command prompt. Just before the deployment wizard rebooted I could see that the folder "..\$OEM$\$1\Sysprep\" was copied to the local drive, before it was copied it looked like it used the Sysprep.inf that was originally used during the "Sysprep -mini -activated -pnp". So when the mini setup runs it's with the correct Sysprep.inf but it doesn't use all the settings.
I assume that Sysprep.inf isn't used during the deployment process, so the above shouldn't have any impact?
To be continued...... :-)
/Lasse
Lasse - I have just encountered a new bump on the road to a perfect WDS installation :-)
I have created a new image group on the WDS server called "Fujitsu-Siemens" and I have captured an image to that group. When I PXE boot with a Fujitsu-Siemens computer it only shows me the image I added to the "Fujitsu-Siemens" image group and when I do the same with one of our Lenovo computers it only shows the images from the "Lenovo" image group.
This is actually not a problem because the two images are for two different types of hardware, but how does the WDS handle this?
Lasse Hi Lasse,
This is implemented by a filter using HALs to filter the incompatible images. Different hardware has different HAL, and this is information is written in the metadata (.wim file) when you create the image. For more details, please take a look at:
Filtering Images:
Deploying Earlier Versions of Windows:
Best regards,
Chang Yin

