Public/OSDCloud/Set-OSDCloudUnattendSpecialize.ps1
function Set-OSDCloudUnattendSpecialize { [CmdletBinding()] param () #======================================================================= # UnattendXml #======================================================================= $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 Specialize</Description> <Path>Powershell -ExecutionPolicy Bypass -Command Invoke-OSDSpecialize -Verbose</Path> </RunSynchronousCommand> </RunSynchronous> </component> </settings> </unattend> '@ #======================================================================= # Block #======================================================================= Block-WinOS Block-WindowsVersionNe10 Block-PowerShellVersionLt5 #======================================================================= # Directories #======================================================================= if (-NOT (Test-Path 'C:\Windows\Panther')) { New-Item -Path 'C:\Windows\Panther'-ItemType Directory -Force -ErrorAction Stop | Out-Null } #======================================================================= # Panther Unattend #======================================================================= $Panther = 'C:\Windows\Panther' $UnattendPath = "$Panther\Invoke-OSDSpecialize.xml" Write-Verbose -Verbose "Setting $UnattendPath" $UnattendXml | Out-File -FilePath $UnattendPath -Encoding utf8 -Force #======================================================================= # Registry Unattend # HKEY_LOCAL_MACHINE\System\Setup\UnattendFile # Specifies a pointer in the registry to an answer file # The answer file is not required to be named Unattend.xml # https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-automation-overview #======================================================================= Write-Verbose -Verbose "Setting Unattend in Offline Registry" reg load HKLM\TempSYSTEM "C:\Windows\System32\Config\SYSTEM" reg add HKLM\TempSYSTEM\Setup /v UnattendFile /d "C:\Windows\Panther\Invoke-OSDSpecialize.xml" /f reg unload HKLM\TempSYSTEM #======================================================================= } |