Jump to content

unattended Driver paths


Recommended Posts

I am trying to get Windows 7 to search the "drivers" folder that I have placed in the $OEM$ folder that gets copied to "c:\drivers" during the deployment. All the drivers get copied to the HD but I can't figure out have to tell the unattended file to search "c:\drivers\T400\modem & c:\drivers\t400\chip". Anyone else tried doing this before?

  <?xml version="1.0" encoding="utf-8" ?> 
- <unattend xmlns="urn:schemas-microsoft-com:unattend">
- <settings pass="specialize">
- <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-CA</InputLocale>
<SystemLocale>en-CA</SystemLocale>
<UILanguage>en-CA</UILanguage>
<UserLocale>en-CA</UserLocale>
</component>
- <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Identification>
- <Credentials>
<Domain>XXXX</Domain>
<Password>password</Password>
<Username>XXX</Username>
</Credentials>
<JoinDomain>XXXX</JoinDomain>
<UnsecureJoin>false</UnsecureJoin>
</Identification>
</component>
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1024</HorizontalResolution>
<RefreshRate>60</RefreshRate>
<VerticalResolution>768</VerticalResolution>
</Display>
<ComputerName>%MACHINENAME%</ComputerName>
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
<RegisteredOrganization>XXX</RegisteredOrganization>
<RegisteredOwner>XXXXX</RegisteredOwner>
<TimeZone>Atlantic Standard Time</TimeZone>
<ShowWindowsLive>false</ShowWindowsLive>
</component>
- <component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fDenyTSConnections>false</fDenyTSConnections>
</component>
</settings>
- <settings pass="oobeSystem">
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
- <OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>3</ProtectYourPC>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
<RegisteredOrganization>XXXXX</RegisteredOrganization>
<RegisteredOwner>XXXXX</RegisteredOwner>
<ShowWindowsLive>false</ShowWindowsLive>
- <UserAccounts>
- <LocalAccounts>
- <LocalAccount wcm:action="add">
<DisplayName />
<Group>Administrators</Group>
<Name>Administrator</Name>
- <Password>
<Value>QQBwAGUAYwBhADQAbgBvAFcAUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
- <AutoLogon>
<Enabled>true</Enabled>
<Username>Administrator</Username>
- <Password>
<Value>QQBwAGUAYwBhADQAbgBvAFcAUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
</AutoLogon>
</component>
- <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-CA</InputLocale>
<SystemLocale>en-CA</SystemLocale>
<UILanguage>en-CA</UILanguage>
<UserLocale>en-CA</UserLocale>
</component>
</settings>
- <settings pass="auditSystem">
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <AutoLogon>
<Enabled>true</Enabled>
<Username>Administrator</Username>
- <Password>
<Value>QQBwAGUAYwBhADQAbgBvAFcAUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
</AutoLogon>
<TimeZone>GTB Standard Time</TimeZone>
</component>
</settings>
- <settings pass="auditUser">
- <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <RunSynchronous>
- <RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\net\Workstations\dotNetFx35setup.exe</Path>
<WillReboot>Always</WillReboot>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>2</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\Microsoft Office 2007 STD\setup.exe</Path>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>3</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\Microsoft Office 2007 Quick Launch Icons\Microsoft Office 2007 Quick Launch Icons.msi</Path>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>4</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\Microsoft Office 2007 PDF and XPS Add-in\\\XXX-mon-hq1\Tech\Image Creation Files\WDS\Microsoft Office 2007 Quick Launch Icons\Microsoft Office 2007 Quick Launch Icons.msi</Path>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>5</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\PrintScreen32\screenprintwithRegNo.msi</Path>
- <Credentials>
<Domain>XXXX</Domain>
<Password>password</Password>
<Username>XXX</Username>
</Credentials>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>6</Order>
<Path>\\XXX-mon-hq1\Tech\Image Creation Files\WDS\QuickViewPlus6\QuickViewPlus6.MSI</Path>
- <Credentials>
<Domain>XXXX</Domain>
<Password>password</Password>
<Username>ris</Username>
</Credentials>
</RunSynchronousCommand>
- <RunSynchronousCommand wcm:action="add">
<Order>7</Order>
<Path>dfg</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:e:/iso/windows%207%20wim/enterprise/sources/install.wim#Windows 7 ENTERPRISE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Link to comment
Share on other sites


Something like the OemPNPDriversPath that has been in the unattended.txt since NT4.

I haven't had to research this yet ahay. No Win7/Vista deployments yet on my end. I'm still, to this day, doing only 2003/XP - it's what the clients want, and I cant blame them.

exactly.... I am looking for "OemPNPDriversPath" version for windows 7. I am not happy to be moving towards windows 7 either but I am told I have to be ahead of the game on this one.

Link to comment
Share on other sites

You can use the documentation of WAIK which covers almost everything you need to know.

I use this code to get Windows to look for drivers:

	<settings pass="offlineServicing">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>E:\Drivers</Path>
</PathAndCredentials>
<PathAndCredentials wcm:action="add" wcm:keyValue="2">
<Path>F:\Drivers</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>

You can have meny paths there, but I don't know what the limit is. Notice that every entry has an unique "keyvalue".

I don't like to integrate drivers because I install Windows on many computers and trying to catch up with every driver and injecting it consumes a lot of time for me.

Instead, I just get the driver I'm about to install, copy them to that path and modify the letter accordingly.

Link to comment
Share on other sites

  • 1 month later...

Working solution....

<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>\drivers</Path>
</PathAndCredentials>
</DriverPaths>
</component>

This 'driver' folder is present in sources\$OEM$\$1

installer automatically pics up the folder form dvd/ pen drive etc. :thumbup

Link to comment
Share on other sites

Need a bit of help along these same lines.

In WAIK when you add the driver path in it wants to browse for the folder you're trying to add, I assume this doesn't actually matter to much and you can point it to whatever then just change it? Basically I'm using a different machine to work in the xml file and it doesn't have the drivers on it, so I'm manually setting the driver folder to C:\temp in WAIK. On the machine that I'm actually running sysprep with the unattend.xml file on the C:\temp folder exist with the drivers in it. I run sysprep then let the machine reboot and it does not seem to be pulling these drivers at all. Does the .inf file itself have to be right in c:\temp ? Mine are setup kind of like C:\temp\Video\stuff here c:\temp\UPEK\stuff here etc, I was assuming it would hunt through all the sub folders, but it did not appear to do that. The devices can be manually installed by pointing them to this folder to look for a driver from device manager so I know the drivers are good, just can't get the machine to use them coming out of sysprep.

Tks for any help. Just noticed ajua used the <settings pass="offlineServicing"> rather then "auditsystem" retesting.

    <settings pass="auditSystem">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="Driver Path" wcm:action="add">
<Path>C:\temp</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/temp/install.wim#Windows 7 ENTERPRISE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />

Edited by tomatthe
Link to comment
Share on other sites

Still no luck using the audit pass. Basically what I'm trying to do, is build an image from a particular machine, and use this image on several different ones. However, I don't know the exact other machines so I need to be able to add drivers whenever vs adding them to a .wim file in which it seems like i could just dump whatever into the C:\temp folder that I was specifying in the unattend.xml file and it would load drivers from there, but for some reason it is not using the stuff in that folder when it comes out of sysprep.

After reading about this a bit more the sysprep command i was running is "sysprep.exe /oobe /generalize /shutdown /unattend:Win_7.xml" in which case I don't think it would pay any attention to something in the audit part of the xml file since it is not entering that mode. This would explain why it isn't picking up those drivers I think.

So basically asking for ideas here, want to build an image on one machine, then sysprep this one, capture a ghost image of it and be able to dump it on whatever machine. When it boots I need it to check a folder for drivers and fix anything that was missing, then boot into windows. I have all unattend options filled out in the xml file so it does boot into windows, it just isn't handling the drivers part which I don't really see any options on how to do that.

Edited by tomatthe
Link to comment
Share on other sites

Need a bit of help along these same lines.

In WAIK when you add the driver path in it wants to browse for the folder you're trying to add, I assume this doesn't actually matter to much and you can point it to whatever then just change it? Basically I'm using a different machine to work in the xml file and it doesn't have the drivers on it, so I'm manually setting the driver folder to C:\temp in WAIK. On the machine that I'm actually running sysprep with the unattend.xml file on the C:\temp folder exist with the drivers in it. I run sysprep then let the machine reboot and it does not seem to be pulling these drivers at all. Does the .inf file itself have to be right in c:\temp ? Mine are setup kind of like C:\temp\Video\stuff here c:\temp\UPEK\stuff here etc, I was assuming it would hunt through all the sub folders, but it did not appear to do that. The devices can be manually installed by pointing them to this folder to look for a driver from device manager so I know the drivers are good, just can't get the machine to use them coming out of sysprep.

Tks for any help. Just noticed ajua used the <settings pass="offlineServicing"> rather then "auditsystem" retesting.

    <settings pass="auditSystem">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="Driver Path" wcm:action="add">
<Path>C:\temp</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/temp/install.wim#Windows 7 ENTERPRISE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />

i am not sure whether this code will work or not...i hve not tried myself...

but the code u have specified is


<PathAndCredentials wcm:keyValue="Driver Path" wcm:action="add">

instead try this

<PathAndCredentials wcm:action="add" wcm:keyValue="1">

Link to comment
Share on other sites

I've been working on this a bit more, it seems like adding drivers to the wim files is really what most are doing. I'm not terribly pleased with that option and would much prefer to be able to dump drivers into a network share and when machines boot up out of sysprep they check the folder and install anything it needs, rather then having to mount, install, unmount a wim file everytime i want to change a driver.

Bit more looking and that audit path is working properly now. From what I can tell you need to run sysprep /audit /generlize /shutdown /unattend:unattend.xml then capture the image at that point.

When you apply the image to a new machine it will boot into audit mode using the folder path you specified in the xml file, then you need to have a synrun command that will tell it to sysprep /oobe /reboot and it will reboot after installing all the drivers you had in the path.

Closing in on a done project with this, right now I'm hunting for a way to tell win to just accept drivers that are not signed, as a lot of the ones I'm having to use are Vista drivers which it is prompting to install everyone. I think I read a post on here about that somewhere, just gotta hunt it down.

Edited by tomatthe
Link to comment
Share on other sites

I've been working on this a bit more, it seems like adding drivers to the wim files is really what most are doing. I'm not terribly pleased with that option and would much prefer to be able to dump drivers into a network share and when machines boot up out of sysprep they check the folder and install anything it needs, rather then having to mount, install, unmount a wim file everytime i want to change a driver.

Bit more looking and that audit path is working properly now. From what I can tell you need to run sysprep /audit /generlize /shutdown /unattend:unattend.xml then capture the image at that point.

When you apply the image to a new machine it will boot into audit mode using the folder path you specified in the xml file, then you need to have a synrun command that will tell it to sysprep /oobe /reboot and it will reboot after installing all the drivers you had in the path.

Closing in on a done project with this, right now I'm hunting for a way to tell win to just accept drivers that are not signed, as a lot of the ones I'm having to use are Vista drivers which it is prompting to install everyone. I think I read a post on here about that somewhere, just gotta hunt it down.

Hi,

any success with adding drvers to \$OEM$\$1, I tried this way but no success for me windows won't see them.

best regards

Link to comment
Share on other sites

From what I can tell there are basically two ways to add drivers. Directly to a .wim file, or have machines boot into audit mode. Using audit mode you can just specify a path and it will look for them in this folder. I was never able to determine a way to have it auto install unsigned drivers when using the audit path method so I ended up adding all of mine to the .wim file.

Still having issues with some drivers though, I started another post this morning about how to extract drivers from an .exe file that I just can't seem to figure out.

Link to comment
Share on other sites

If its unattended media, use the "OfflineServicing" pass to install drivers. I was unable to make auditSystem install drivers.

Mine is:

	<settings pass="offlineServicing">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="1" wcm:action="add">
<Path>\DRVS</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>

I also have the DRVS folder in <cdRom path>\sources\$oem$\$1\DRVS

Works for me when doing an unattended. I have never mounted a WIM to add drivers.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...