During First Boot (Specialize Phase), any EXE based DriverPacks in C:\Drivers will be expanded. Once expanded, they will be applied using the following PowerShell commands
Copy New-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths" - Name 1 - Force
New-ItemProperty - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Name Path - Value $DestinationPath - Force
pnpunattend.exe AuditSystem / L
Remove-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Recurse - Force
You can identify this phase by the "Getting ready"
Dell Systems
Dell uses CAB files or EXE files that can be expanded in WinPE, so there is no activity in First Boot other than a long delay. You can review the logs in C:\Windows\debug
Copy Start-Process - FilePath $ExpandFile - ArgumentList "/s /e=`"$DestinationPath`"" - Wait
Write-Verbose - Verbose " $ (( Get-Date ).ToString( 'yyyy-MM-dd-HHmmss' )) Applying DriverPack with PNPUNATTEND"
New-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths" - Name 1 - Force
New-ItemProperty - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Name Path - Value $DestinationPath - Force
pnpunattend.exe AuditSystem / L
Remove-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Recurse - Force
HP Devices
HP DriverPacks are silent, so there is no progress displayed during this phase other than a long delay. You can review the logs in C:\Windows\debug
Copy Start-Process - FilePath $ExpandFile - ArgumentList "/s /e /f `"$DestinationPath`"" - Wait
Write-Verbose - Verbose " $ (( Get-Date ).ToString( 'yyyy-MM-dd-HHmmss' )) Applying DriverPack with PNPUNATTEND"
New-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths" - Name 1 - Force
New-ItemProperty - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Name Path - Value $DestinationPath - Force
pnpunattend.exe AuditSystem / L
Remove-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Recurse - Force
Lenovo Devices
Lenovo devices will display a progress when the DriverPacks is expanded
Copy Start-Process - FilePath $ExpandFile - ArgumentList "/SILENT /SUPPRESSMSGBOXES" - Wait
Write-Verbose - Verbose " $ (( Get-Date ).ToString( 'yyyy-MM-dd-HHmmss' )) Applying DriverPack with PNPUNATTEND"
New-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths" - Name 1 - Force
New-ItemProperty - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Name Path - Value $DestinationPath - Force
pnpunattend.exe AuditSystem / L
Remove-Item - Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1" - Recurse - Force
Microsoft Surface Devices
Microsoft uses MSI DriverPacks which expanded silently, so there is no activity in First Boot other than a long delay. You can review the logs in C:\Windows\debug
Copy $DateStamp = Get-Date - Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $ExpandFile , $DateStamp
$MSIArguments = @ (
"/i"
( '"{0}"' -f $ExpandFile)
"/qb"
"/norestart"
"/L*v"
$logFile
)
Start-Process "msiexec.exe" - ArgumentList $MSIArguments - Wait - NoNewWindow