Files/DEV/Use-WindowsUnattend.autopilotoobehash.ps1
function Use-WindowsUnattend.autopilotoobehash { [CmdletBinding()] param () $SpecializeCmd = @' @echo on REM Set OOBE Startup reg add HKLM\SYSTEM\Setup /v CmdLine /d "PowerShell -ExecutionPolicy Bypass -Command Start-OSDCloud.windeploy.oobe" /F REM Starting Specialize Phase %WinDir%\System32\oobe\windeploy.exe REM Set OOBE Startup reg add HKLM\SYSTEM\Setup /v CmdLine /d "PowerShell -ExecutionPolicy Bypass -Command Start-OSDCloud.windeploy.oobe" /F '@ $UnattendXml = @' <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Deployment" 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"> <RunSynchronous> <RunSynchronousCommand wcm:action="add"> <Order>1</Order> <Description>OSDCloud</Description> <Path>C:\Windows\Setup\Scripts\Specialize.cmd</Path> </RunSynchronousCommand> </RunSynchronous> </component> </settings> </unattend> '@ #======================================================================= # Block #======================================================================= Block-WinOS Block-WindowsVersionNe10 Block-PowerShellVersionLt5 #======================================================================= # Setup Scripts Specialize.cmd #======================================================================= $SetupScripts = 'C:\Windows\Setup\Scripts' if (-NOT (Test-Path $SetupScripts)) { New-Item -Path $SetupScripts -ItemType Directory -Force | Out-Null } $SpecializeCmdPath = "C:\Windows\Setup\Scripts\Specialize.cmd" Write-Verbose -Verbose "Setting OSDCloud Specialize.cmd at $SpecializeCmdPath" $SpecializeCmd | Out-File -FilePath $SpecializeCmdPath -Width 2000 -Force #======================================================================= # Panther Unattend.xml #======================================================================= $Panther = 'C:\Windows\Panther' if (-NOT (Test-Path $Panther)) { New-Item -Path $Panther -ItemType Directory -Force | Out-Null } $UnattendPath = "$Panther\Unattend.xml" Write-Verbose -Verbose "Setting OSDCloud Unattend.xml at $UnattendPath" $UnattendXml | Out-File -FilePath $UnattendPath -Encoding utf8 -Width 2000 -Force #======================================================================= # Use-WindowsUnattend #======================================================================= Write-Verbose -Verbose "Use-WindowsUnattend -Path 'C:\' -UnattendPath $UnattendPath" Use-WindowsUnattend -Path 'C:\' -UnattendPath $UnattendPath -Verbose Write-Verbose -Verbose "Copy-PSModuleToFolder -Name OSD to C:\Program Files\WindowsPowerShell\Modules" Copy-PSModuleToFolder -Name OSD -Destination 'C:\Program Files\WindowsPowerShell\Modules' reg load HKLM\OfflineSystem C:\Windows\System32\Config\SYSTEM reg add HKLM\OfflineSystem\Setup /v CmdLine /d "C:\Windows\Setup\Scripts\Specialize.cmd" /F reg unload HKLM\OfflineSystem Notepad $UnattendPath #======================================================================= } |