Jump to content

Sysprep and Drivers


Recommended Posts

I am working on a Vista Enterprise image for work and am trying to work the process into our current build process and am having issues with getting drivers loaded.

I would rather not inject drivers as I do not want to make the image any larger. I have tried to add the PnPCustomizations component to a couple places but nothing seems to work.

Here is what I have in my Sysprep.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="generalize">
<component name="Microsoft-Windows-Security-Licensing-SLC" 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">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="specialize">
<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">
<Path>net user administrator /active:yes</Path>
<Order>2</Order>
<Description>make sure admin is enabled</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 00000001 /f</Path>
<WillReboot>OnRequest</WillReboot>
<Description>Set Network Location</Description>
<Order>1</Order>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Security-Licensing-SLC-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</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>
<DPI>96</DPI>
<HorizontalResolution>1024</HorizontalResolution>
<VerticalResolution>768</VerticalResolution>
</Display>
<ProductKey>xxxx-xxxxx-xxxxx-xxxxx-xxxxx</ProductKey>
<ShowWindowsLive>false</ShowWindowsLive>
<TimeZone>Eastern Standard Time</TimeZone>
<ComputerName>REPLACEME</ComputerName>
<CopyProfile>true</CopyProfile>
</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>THEDOMAIN</Domain>
<Password>THEPASSWORD</Password>
<Username>THEUSERNAME</Username>
</Credentials>
<JoinDomain>THEJOINDOMAIN</JoinDomain>
</Identification>
</component>
</settings>
<settings pass="oobeSystem">
<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-us</InputLocale>
<SystemLocale>en-us</SystemLocale>
<UILanguage>en-us</UILanguage>
<UserLocale>en-us</UserLocale>
</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">
<AutoLogon>
<Password>
<Value>bQBpAGMAcgBvAHMAbbwBmAsHQAUABhAHMAcwB3AG8aAcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
<Enabled>true</Enabled>
<LogonCount>2</LogonCount>
<Username>tempadmin</Username>
</AutoLogon>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>3</ProtectYourPC>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<Value>bQBpAGMAcgBvAHxMAbwBmAHQgAQQBkAG0AaQBuAGkAcwB0hAHIAYQB0AG8AcgBQAGEAcwBzAHcAbwaByAGQA</Value>
<PlainText>false</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<PlainText>false</PlainText>
<Value>bQBpAGMAcgBvAHMfAbwBmAHQAUABhAHdMAcwB3AGs8AcgBkAA==</Value>
</Password>
<Name>TempAdmin</Name>
<DisplayName>TempAdmin</DisplayName>
<Group>administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<RegisteredOrganization>ORIG</RegisteredOrganization>
<RegisteredOwner>Something</RegisteredOwner>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /V ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f</CommandLine>
<Order>1</Order>
<Description>Set UAC 1</Description>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>4</Order>
<CommandLine>REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Runonce" /V Installmyexe /D "c:\nt\custom\continuepe.exe" /f</CommandLine>
<Description>Launch Script</Description>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /V ConsentPromptBehaviorUser /t REG_DWORD /d 0 /f</CommandLine>
<Description>Set UAC 2</Description>
<Order>2</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /V EnableLUA /t REG_DWORD /d 1 /f</CommandLine>
<Description>Set UAC 3</Description>
<Order>3</Order>
</SynchronousCommand>
</FirstLogonCommands>
</component>
</settings>
<settings pass="windowsPE">
<component name="Microsoft-Windows-PnpCustomizationsWinPE" 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="Network">
<Path>c:\nt\drivers\network\winVista</Path>
</PathAndCredentials>
<PathAndCredentials wcm:action="add" wcm:keyValue="Audio">
<Path>c:\nt\drivers\audio\wdm</Path>
</PathAndCredentials>
<PathAndCredentials wcm:action="add" wcm:keyValue="Digitizer">
<Path>c:\nt\drivers\Digitizer</Path>
</PathAndCredentials>
<PathAndCredentials wcm:action="add" wcm:keyValue="">
<Path>c:\nt\drivers\wireless\DRIVER</Path>
</PathAndCredentials>
<PathAndCredentials wcm:action="add" wcm:keyValue="FingerPrint">
<Path>c:\nt\drivers\FingerprintReader\x86.vista</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:d:/vistainstall/sp1wim/install.wim#Windows Vista BUSINESS" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

In my current process I am using WinPE to copy down the i386 folder to the PC and based on some input from the tech I copy down the appropriate drivers folder. The folder structure for the drivers is the same i.e. \network\ \audio\ etc with the needed files in the root of the folder. This way I can setup pretty much any system and as long as the source folders for the drivers are setup the same way it works.

I was trying to do something similar with my vista build but will be using an image instead of doing everything from scratch I am using an image. The whole process has been successful in everything but the drivers. I know I am missing something just not sure what it is yet. Am I putting the drivers in the wrong pass? I have tried the Audit pass but after reading a bit more realized that using /oobe would not work with audit.

sysprep command: sysprep.exe /generalize /oobe /shutdown /unattend:sysprep.xml

Thanks in advance for any assistance.

Link to comment
Share on other sites


I'm pretty sure you are supposed to use a relative path to the drivers from the location of sysprep.exe. So ..\..\..\nt\drivers\network\winVista presuming sysprep is located in c:\windows\system32\sysprep.

Also you are already using drivers on teh C drive, I imagine you are copying them there during install? How does this differ than putting them in the image? Have you compared deployment time with this method vs injecting them in the image?

Link to comment
Share on other sites

Drivers are loaded during the auditSystem pass but this pass is skipped during a normal unattended build. You need to add the Microsoft-Windows-Deployment_neutral / Reseal option in your oobeSystem pass and set the value to 'audit' which will cause the computer to reboot into audit mode. Then your drivers (any anything else in the auditSystem or auditUser) will be processed. Remember to add Reseal with a value of 'oobe' in your auditUser pass otherwise the system will bring up the Sysprep dialog and not reboot when the auditUser is completed.

HTH

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...