Help - Search - Members - Calendar
Full Version: Injecting drivers into "gold" image
MSFN Forums > Unattended Windows Discussion & Support > Unattended Vista

   
Google Internet Forums Unattended CD/DVD Guide
Ryanj
I am trying a simple task of injecting drivers into a Vista image smile.gif

The sort of thing you would do by simply using OEMPnPDriverPath in sysprep.inf with XP et al.

I've googled, searched here, followed the instructions to no avail.

==================================
THE QUESTION
==================================

Why don’t (some of) my injected drivers work in my vista image!!!!???

==================================
DRIVERS
==================================

OK - the machines I have to test with have 3 drivers missing:-
1 - ALPS touchpad
2 - Stac AC97
3 - Texas Instruments Smartcard reader

Each of these are from the Dell website. Each works fine if the driver file is expanded and vista is simply pointed to the files. All the drivers are signed.

==================================
IMAGE
==================================

The image is a simple sysprepped image that we are applying to other machines. The original image has no extra drivers in, so I am "injecting" them using the published method of using pkgmgr and injecting into an offline image. (as per http://technet2.microsoft.com/WindowsVista...3.mspx?mfr=true )

==================================
Driver Injection
==================================

I mount the image and inject the drivers using the technique above. The logfile says 6 drivers applied. The oem1..6.inf files are modified in image_c\windows\inf; and the drivers can be seen in image_c\windows\system32\driverstore\filerepository as per the logfile from pkgmgr

==================================
Unattend.XML
==================================

The unattend.XML has the correct bits in (I think) following the instrucitons above.

<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>c:\drv</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>


(I have tried using different passes to no avail)

==================================
WHAT HAPPENS!!!
==================================

Well - till today I'd have said "nothing" - and blamed my technique. (I was trying with simply the Stac97 drivers). I've added teh ALPS and the TI drivers in the same way (so all the drivers are there) - and the Vista machines quite happily detect the ALPS driver and installs it beautifully - but completely ignores the other two drivers!!! WHY!!!! I've even downloaded the drivers from teh MS Windows Update site and tried those - but again - these are not detected on startup. Yet - if, agian, Vista is pointed to teh folder after install - it finds and uses the driver perfectly, All signed and no issues.




==================================
PKGMGR Logfile
==================================

Shows drivers being injected. And, manually checking shows the drivers are there.

2007-01-22 16:48:26, Info CBS Pkgmgr: called with: "pkgmgr /o:"L:\;L:\WINDOWS" /n:"L:\windows\panther\unattend\unattend.xml" /l:"c:\temp\real4""
<snip>
2007-01-22 16:48:29, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Parameter Offline Windows Directory Path: 'L:\WINDOWS' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:29, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Parameter Offline system drive on reboot: 'C:' (Error code (HRESULT) 0x0.)
...
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found directory ALPSTouchPad under search path (Error code (HRESULT) 0x0.)
...
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found directory TexasInstrumentsSmartCard under search path (Error code (HRESULT) 0x0.)
...
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found 6 driver package(s) at 'c:\drv'. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\ALPSTouchPad\Apfiltr.inf' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\gtipci21.inf' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\tifm21.inf' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\TIFMICON.INF' (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\WU_Sigmatel\Stac97.inf' (Error code (HRESULT) 0x0.)

2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installing driver package 'c:\drv\ALPSTouchPad\Apfiltr.inf' to the currently offline OS ... (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID for INF 'c:\drv\ALPSTouchPad\Apfiltr.inf' is '4d36e96f-e325-11ce-bfc1-08002be10318'! (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID '4d36e96f-e325-11ce-bfc1-08002be10318' is boot-critical. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: 'c:\drv\ALPSTouchPad\Apfiltr.inf' is a boot critical driver. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added 'c:\drv\ALPSTouchPad\Apfiltr.inf' to offline driver store at 'L:\WINDOWS\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf'. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added driver 'c:\drv\ALPSTouchPad\Apfiltr.inf' to the offline Windows image at 'L:\WINDOWS\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf'. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Driver package 'c:\drv\ALPSTouchPad\Apfiltr.inf' installed! (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Successfully marked devices for reinstall! (Error code (HRESULT) 0x0.)

2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installing driver package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to the currently offline OS ... (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID for INF 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' is '4d36e96c-e325-11ce-bfc1-08002be10318'! (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID '4d36e96c-e325-11ce-bfc1-08002be10318' is not boot-critical. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' is not a boot critical driver. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to offline driver store at 'L:\WINDOWS\System32\DriverStore\FileRepository\stac97.inf_609fc149\stac97.inf'. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added driver 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to the offline Windows image at 'L:\WINDOWS\System32\DriverStore\FileRepository\stac97.inf_609fc149\stac97.inf'. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Driver package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' installed! (Error code (HRESULT) 0x0.)
2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Successfully marked devices for reinstall! (Error code (HRESULT) 0x0.)

etc
2007-01-22 16:48:35, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installed '6' drivers. (Error code (HRESULT) 0x0.)
2007-01-22 16:48:35, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: RETURN InstallDriversOffline (0) (Error code (HRESULT) 0x0.)
2007-01-22 16:48:35, Info CBS Pkgmgr: return code: 0x0


==================================
SetupAPI.dev.txt logfile (on vista machine after running though unattend install)
==================================


Note pci\ven_8086&dev_266e&subsys_01871028 is the Stac97
This PnP ID is contained within teh INF files etc

So - how come the ALPS driver is detected, and not the stac97? It suggests the technique I am using is correct else the Alps would not be detected - but why aren't the other two drivers?



[Device Install Log]
OS Version = 6.0.6000
Service Pack = 0.0
Suite = 0x0100
ProductType = 1
Architecture = x86

[BeginLog]

>>> [Setup Plug and Play Device Install]
>>> Section start 2007/01/22 17:04:05.203
...
set: PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2B8E0B4B&0&F2 -> setting CONFIGFLAG_REINSTALL on non-started device.
...
>>> [Setup online Device Install (Hardware initiated) - PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2b8e0b4b&0&F2]
>>> Section start 2007/01/22 17:04:45.414
ump: Creating Install Process: DrvInst.exe 17:04:45.414
ndv: Retrieving device info...
ndv: Setting device parameters...
ndv: Building driver list...
dvi: {Build Driver List} 17:04:45.445
dvi: Searching for hardware ID(s):
dvi: pci\ven_8086&dev_266e&subsys_01871028&rev_03
dvi: pci\ven_8086&dev_266e&subsys_01871028
dvi: pci\ven_8086&dev_266e&cc_040100
dvi: pci\ven_8086&dev_266e&cc_0401
dvi: Searching for compatible ID(s):
dvi: pci\ven_8086&dev_266e&rev_03
dvi: pci\ven_8086&dev_266e
dvi: pci\ven_8086&cc_040100
dvi: pci\ven_8086&cc_0401
dvi: pci\ven_8086
dvi: pci\cc_040100
dvi: pci\cc_0401
dvi: Enumerating INFs from path list 'C:\Windows\INF'
inf: Searched 0 potential matches in published INF directory
inf: Searched 27 INFs in directory: 'C:\Windows\INF'
dvi: {Build Driver List - exit(0x00000000)} 17:04:45.585
ndv: Selecting best match...
dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:45.585
dvi: No class installer for 'Multimedia Audio Controller'
dvi: No CoInstallers found
dvi: Default installer: Enter 17:04:45.585
dvi: {Select Best Driver}
! dvi: Selecting driver failed(0xe0000228)
dvi: {Select Best Driver - exit(0xe0000228)}
! dvi: Default installer: failed!
! dvi: Error 0xe0000228: There are no compatible drivers for this device.
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:04:45.617
ndv: {Core Device Install}
! ndv: Installing NULL driver!
dvi: Set selected driver complete.
dvi: {DIF_ALLOW_INSTALL} 17:04:45.882
dvi: No class installer for 'Multimedia Audio Controller'
dvi: Default installer: Enter 17:04:45.898
dvi: Default installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 17:04:45.898
dvi: {DIF_INSTALLDEVICE} 17:04:45.898
dvi: No class installer for 'Multimedia Audio Controller'
dvi: Default installer: Enter 17:04:45.898
! dvi: Installing NULL driver!
dvi: Writing common driver property settings.
dvi: {Restarting Devices} 17:04:45.929
dvi: Restart: PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2B8E0B4B&0&F2
dvi: Restart complete.
dvi: {Restarting Devices exit} 17:04:45.976
dvi: Default installer: Exit
dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 17:04:45.976
dvi: {Build Driver List} 17:04:45.976
! dvi: Driver list already built
dvi: {Build Driver List - exit(0x00000000)} 17:04:45.976
dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:45.976
dvi: No class installer for 'Multimedia Audio Controller'
dvi: Default installer: Enter 17:04:45.992
dvi: {Select Best Driver}
! dvi: Selecting driver failed(0xe0000228)
dvi: {Select Best Driver - exit(0xe0000228)}
! dvi: Default installer: failed!
! dvi: Error 0xe0000228: There are no compatible drivers for this device.
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:04:45.992
ndv: Device install status=0x00000000
ndv: Performing device install final cleanup...
ndv: {Core Device Install - exit(0x00000000)}
ump: Server install process exited with code 0x00000000 17:04:45.992
<<< Section end 2007/01/22 17:04:45.992
<<< [Exit status: SUCCESS]



............ALPS TOUCHPAD DRIVER................


>>> [Setup online Device Install (Hardware initiated) - ACPI\PNP0F13\4&11be56c0&0]
>>> Section start 2007/01/22 17:04:50.492
ump: Creating Install Process: DrvInst.exe 17:04:50.492
ndv: Retrieving device info...
ndv: Setting device parameters...
ndv: Building driver list...
dvi: {Build Driver List} 17:04:50.507
dvi: Searching for hardware ID(s):
dvi: acpi\pnp0f13
dvi: *pnp0f13
dvi: Enumerating INFs from path list 'C:\Windows\INF'
inf: Opened PNF: 'C:\Windows\System32\DriverStore\FileRepository\msmouse.inf_3dfa3917\msmouse.inf' ([strings.0409] <src=drvstore>)
dvi: Created Driver Node:
dvi: HardwareID - *PNP0F13
dvi: InfName - C:\Windows\System32\DriverStore\FileRepository\msmouse.inf_3dfa3917\msmouse.inf
dvi: DevDesc - PS/2 Compatible Mouse
dvi: DrvDesc - PS/2 Compatible Mouse
dvi: Provider - Microsoft
dvi: Mfg - Microsoft
dvi: ModelsSec - MSMfg.NTx86
dvi: InstallSec - PS2_Inst
dvi: ActualSec - PS2_Inst
dvi: Rank - 0x0dff0001
dvi: Signer - microsoft windows
dvi: Signer Score - INBOX
dvi: DrvDate - 06/21/2006
dvi: Version - 6.0.6000.16386
inf: Opened INF: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf' ([strings] <src=drvstore>)
inf: Saved PNF: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.PNF' (Language = 0409)
sig: {_VERIFY_FILE_SIGNATURE} 17:04:50.554
sig: Key = apfiltr.inf
sig: FilePath = C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf
sig: Catalog = C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\Apfiltr.cat
sig: Success: File is signed in catalog.
sig: {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 17:04:50.679
dvi: Created Driver Node:
dvi: HardwareID - *PNP0F13
dvi: InfName - C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf
dvi: DevDesc - Alps Touch Pad
dvi: DrvDesc - Alps Touch Pad
dvi: Provider - Alps
dvi: Mfg - Alps Electric
dvi: ModelsSec - CompanyMfg.NT.6
dvi: InstallSec - MouFilter_Inst
dvi: ActualSec - MouFilter_Inst.NT
dvi: Rank - 0x0dff0001
dvi: Signer - Microsoft Windows Hardware Compatibility Publisher
dvi: Signer Score - WHQL
dvi: DrvDate - 10/26/2006
dvi: Version - 7.0.101.7
inf: Searched 2 potential matches in published INF directory
inf: Searched 27 INFs in directory: 'C:\Windows\INF'
dvi: {Build Driver List - exit(0x00000000)} 17:04:50.789
ndv: Selecting best match...
dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:50.789
dvi: Using exported function 'MouseClassInstaller' in module 'C:\Windows\system32\SysClass.Dll'.
dvi: Class installer == SysClass.Dll,MouseClassInstaller
dvi: Using exported function 'CriticalDeviceCoInstaller' in module 'C:\Windows\system32\SysClass.Dll'.
dvi: CoInstaller 1 == SysClass.Dll,CriticalDeviceCoInstaller
dvi: CoInstaller 1: Enter 17:04:50.789
dvi: CoInstaller 1: Exit
dvi: Class installer: Enter 17:04:50.804
dvi: Class installer: Exit
dvi: Default installer: Enter 17:04:50.804
dvi: {Select Best Driver}
dvi: Selected driver installs from section [MouFilter_Inst] in 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf'.
dvi: Class GUID of device remains: {4d36e96f-e325-11ce-bfc1-08002be10318}.
dvi: Set selected driver complete.
dvi: Selected:
dvi: Description - [Alps Touch Pad]
dvi: InfFile - [c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf]
dvi: Section - [MouFilter_Inst]
dvi: Signer - [Microsoft Windows Hardware Compatibility Publisher]
dvi: Rank - [0x0dff0001]
dvi: {Select Best Driver - exit(0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 17:04:50.804
ndv: Driver selected, now performing install...
ndv: {Core Device Install}
inf: Opened INF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>)
inf: Saved PNF: 'C:\Windows\INF\oem1.PNF' (Language = 0409)
inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>)
dvi: {DIF_ALLOW_INSTALL} 17:04:50.882
dvi: CoInstaller 1: Enter 17:04:50.882
dvi: CoInstaller 1: Exit
dvi: Class installer: Enter 17:04:50.882
inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>)
inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>)
dvi: Class installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0x00000000)} 17:04:50.882
ndv: Installing files...
dvi: {DIF_INSTALLDEVICEFILES} 17:04:50.882
dvi: CoInstaller 1: Enter 17:04:50.882
dvi: CoInstaller 1: Exit
dvi: Class installer: Enter 17:04:50.882
dvi: Class installer: Exit
dvi: Default installer: Enter 17:04:50.882
dvi: {Install FILES}
inf: Opened PNF: 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf' ([strings] <src=drvstore>)
inf: Opened PNF: 'C:\Windows\INF\msmouse.inf' ([strings.0409] <src=drvstore>)
inf: {Install Inf Section [MouFilter_Inst.NT]}
inf: CopyFiles=MouFilter_CopyFiles,MouFilter_CopyFilesDll,MouFilter_CopyFilesWav,MouFilter_CopyFilesHome (apfiltr.inf line 48)
cpy: Open PnpLockdownPolicy: Err=2. This is OK. Use LockDownPolicyDefault
flq: QueueSingleCopy...
flq: Inf : 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf'
flq: SourceInf: 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf'
flq: SourceSection: [sourcedisksfiles]
flq: Source root path based on SourceInf
flq: SourceRootPath: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00000000
flq: SourceRootPath - 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db'
flq: SourceFilename - 'Apfiltr.sys'
flq: TargetDirectory- 'C:\Windows\system32\DRIVERS'
flq: TargetFilename - 'Apfiltr.sys'
flq: SourceDesc - 'Alps Touch Pad Filter Driver for Windows Vista Setup Disk'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
...snip.....

<<< Section end 2007/01/22 17:04:54.554
<<< [Exit status: SUCCESS]






Thanks all for any info/tips smile.gif
mdolan
Hi RyanJ,

I had issues trying to load/inject drivers using the Specialize pass. I found the best method (that worked for me!) was:

Building/Capturing
1) Build machine
2) Sysprep the machine with /AUDIT /GENERALIZE (as opposed to OOBE)
3) Capture the WIM
4) Save the WIM someplace safe :-)

Restoring
1) Clean hard disk
2) Copy PNP drivers to hard disk e.g C:\DRIVERS
3) Restore WIM to hard disk
4) Boot

I ensured that I included the drivers path in the Audit section, and then set the final audituser mode to reboot to OOBE.

Hope that makes sense.

Cheers,
Mike
Ryanj
Hi Mike
I'm still struggling. Have a PSS call open and no avail yet. Sent the guy my image and he is testing on identical hadware as we speak

My drivers are 100% for sure being uploaded into the image - just not being detected sad.gif

Anyway - your idea:-
Building/Capturing
1) Build machine
2) Sysprep the machine with /AUDIT /GENERALIZE (as opposed to OOBE)
3) Capture the WIM
4) Save the WIM someplace safe :-)

RJ> OK - I understood /audit to "test" the image and not actually do anything with it?

Restoring
1) Clean hard disk
2) Copy PNP drivers to hard disk e.g C:\DRIVERS
3) Restore WIM to hard disk
4) Boot

RJ> OK

I ensured that I included the drivers path in the Audit section,

RJ> OK

and then set the final audituser mode to reboot to OOBE.

RJ> Sounds "interesting"! How do you do that? Do you have an unattend example? I will gooooogle and see if I can replicate your way.

Thanks for the suggestion!
mdolan
Hi RyanJ,

I've added the XML that I use below. You'll obviously want to strip parts out. This XML works with redetection via AUDIT modes, but also with injecting via OFFLINESERVICING. The main sections you will probably want to look at are
<settings pass="offlineServicing">
<settings pass="auditSystem">
<settings pass="auditUser">

If you use sysprep with /AUDIT, the auditsystem/user sections will be invoked - they will do the PNP work and then jump to OOBE. If you invoke with /OOBE then auditsystem/user sections will be skipped.

Obviously you can try the standard injection with pkgmgr. This XML is set to scan c:\$oem$ and sub-directories.

Hope it helps!

CODE

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-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">
<DiskConfiguration>
<Disk>
<WillWipeDisk>false</WillWipeDisk>
<DiskID>0</DiskID>
</Disk>
<WillShowUI>OnError</WillShowUI>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
</OSImage>
</ImageInstall>
<UserData>
<ProductKey>
<Key>[INSERT YOUR OWN]</Key>
<WillShowUI>OnError</WillShowUI>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" 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">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-US</UserLocale>
</component>
<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:keyValue="7c3d4301" wcm:action="add">
<Path>c:\$oem$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<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>C:\$OEM$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<settings pass="auditSystem">
<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>c:\$oem$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
<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">
<Reseal>
<Mode>Audit</Mode>
<ForceShutdownNow>false</ForceShutdownNow>
</Reseal>
</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">
<UserAccounts>
<AdministratorPassword>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Builder</Name>
<Group>administrators</Group>
<Password>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon>
<Username>Builder</Username>
<Enabled>true</Enabled>
<Password>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</Password>
</AutoLogon>
</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">
<Reseal>
<Mode>OOBE</Mode>
<ForceShutdownNow>false</ForceShutdownNow>
</Reseal>
</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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RegisteredOwner>[INSERT YOUR OWN]</RegisteredOwner>
<RegisteredOrganization>[INSERT YOUR OWN]</RegisteredOrganization>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<ProtectYourPC>3</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>c:\installer.cmd</CommandLine>
<Order>1</Order>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<AdministratorPassword>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Builder</Name>
<Group>administrators</Group>
<Password>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon>
<Username>Builder</Username>
<Enabled>true</Enabled>
<Password>
<Value>[INSERT YOUR OWN]</Value>
<PlainText>true</PlainText>
</Password>
</AutoLogon>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/vistawim/installb2.wim#Windows Vista Ultimate" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>



Cheers,
Mike
Ryanj
Thanks - much appreciated.
I'll copy & paste this into a clean image and follow your instructions.

Im 50/50 whether the issue is with how I create an image, or rather the drivers.

As, from lots of reading, all we are doing is sticking drivers INTO the driverstore for PnP to access. Now I know these are there - just not being used....

So if your trick works = its my unattend
If it doesn't - something wrong with driver detection and the drivers I have....

Watch this space....

Thanks again
mdolan
I'm not sure if pkgmgr does more then just add the drivers to the driverstore.

Part of my reason for thinking this is reviewing pkgmgr logs but also some personal observations from building a machine.

Baseline:
Built VMWare image
Sysprepped (either with OOBE or AUDIT - see below)
Captured WIM

IBM X60 tablet results:
Test 1
Install WIM (OOBEd)
Copy drivers to c:\$oem$
Result: Standard vista - tablet components/drivers not installed
Theory: No PNP happened from a straight OOBE.

Test 2
Install WIM (OOBEd)
Copy drivers to c:\$oem$
Pkmgr injection
Result: Tablet vista, all drivers functioning
Theory: Pkgmgr forced the drivers to actually work/pnp re-detect

Test 3
Install WIM (Audit)
Copy drivers to c:\$oem$
Result: Tablet vista, all drivers functioning
Theory: Audit mode re-activated PNP

For sure, pkgmgr is a *lot* faster for injecting drivers because it doesn't come with all the baggage of the Audit phases...

I'll stop writing now, because I can't remember the point I was going to make woot.gif

Cheers,
Mike
mdolan
One other quick thought...!

When you sysprepped, did you use /GENERALIZE?

If you did - try without. If you didn't - try it!

biggrin.gif

Cheers,
Mike
Ryanj
lol!

Trying your method as we speak.

My main issue is though - I am injecting 3 drivers - Sound, Trackpad, Smartcard.

All the same way.

Only the Trackpad is detected and installed.

Therefore theory says - method used for injection is correct

But why not the other two? Logs show drivers injected. And logs show detection phase and "no drivers found" - despite (a) oemXX.inf being in c:\windows\inf; (cool.gif correct signed drivers in c:\...\drirverstore © - erm - all log files saying injection went well and drivers successfully added.

Mr Microsoft has just said "got your image - setting up env - and deploying onto identical hardware"

Should be fun.
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.