Windows Server TechCenter > Windows Server Forums > Setup Deployment > WDS, Windows XP and driver installation during mini setup
Ask a questionAsk a question
 

AnswerWDS, Windows XP and driver installation during mini setup

  • Monday, June 23, 2008 1:11 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    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

  • Wednesday, June 25, 2008 2:55 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    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
    •  
  • Friday, June 27, 2008 10:44 AMChang Yin Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
     

    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

  • Wednesday, June 25, 2008 11:42 AMChang Yin Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     

    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
  • Wednesday, June 25, 2008 2:55 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    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
    •  
  • Thursday, June 26, 2008 12:04 PMChang Yin Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     

    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
  • Thursday, June 26, 2008 12:32 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    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
  • Friday, June 27, 2008 10:44 AMChang Yin Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
     

    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
    •  
  • Friday, June 27, 2008 1:35 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     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
  • Tuesday, July 01, 2008 12:33 PMLasseF Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    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
  • Friday, July 04, 2008 11:53 AMChang Yin Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     

    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:

    http://technet2.microsoft.com/windowsserver2008/en/library/107e1db0-4260-43d3-9b40-8f320f64768c1033.mspx?mfr=true

     

    Deploying Earlier Versions of Windows:

    http://technet2.microsoft.com/windowsserver2008/en/library/93207d8b-cd19-44eb-b38a-ded50456d9751033.mspx?mfr=true

     

    Best regards,

    Chang Yin