en-US 0409:00000409 en-US en-US en-US D:\viostor\w10\amd64 E:\viostor\w10\amd64 F:\viostor\w10\amd64 D:\vioscsi\w10\amd64 E:\vioscsi\w10\amd64 F:\vioscsi\w10\amd64 D:\NetKVM\w10\amd64 E:\NetKVM\w10\amd64 F:\NetKVM\w10\amd64 OnError 0 true 1 EFI 260 2 MSR 16 3 Primary true 1 1 FAT32 2 2 3 3 C NTFS /IMAGE/INDEX 1 0 3 false OnError M7XTQ-FN8P6-TTKYV-9D4CC-J462D OnError true IT Contoso * Pacific Standard Time IT Contoso true false 1 2 0409:00000409 en-US en-US en-US true true true true true Work 3 mdwelcome true</PlainText> </AdministratorPassword> <LocalAccounts> <LocalAccount wcm:action="add"> <Name>labadmin</Name> <DisplayName>Lab Admin</DisplayName> <Description>Local administrator for automated VM builds</Description> <Group>Administrators</Group> <Password> <Value>mdwelcome</Value> <PlainText>true</PlainText> </Password> </LocalAccount> </LocalAccounts> </UserAccounts> <!-- Persistent autologon. Drop LogonCount to 1 if you'd rather the VM land on a logon screen once provisioning finishes. --> <AutoLogon> <Enabled>true</Enabled> <Username>labadmin</Username> <LogonCount>999</LogonCount> <Password> <Value>mdwelcome</Value> <PlainText>true</PlainText> </Password> </AutoLogon> <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> <!-- =============================================================== FIRST LOGON COMMANDS - run once, elevated, as labadmin. =============================================================== --> <FirstLogonCommands> <!-- Installs balloon, vioserial, qxldod video, and the QEMU guest agent. Scans every drive for the installer rather than assuming a letter, since the VirtIO disc moves around post-install. --> <SynchronousCommand wcm:action="add"> <Order>1</Order> <Description>Install VirtIO guest tools</Description> <CommandLine>powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-Volume | Where-Object DriveLetter | ForEach-Object { $exe = $_.DriveLetter + ':\virtio-win-guest-tools.exe'; if (Test-Path $exe) { Start-Process $exe -ArgumentList '/install','/quiet','/norestart' -Wait } }"</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>2</Order> <Description>Open Remote Desktop firewall rules</Description> <CommandLine>cmd /c netsh advfirewall firewall set rule group="remote desktop" new enable=Yes</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>3</Order> <Description>Disable hibernation and reclaim hiberfil.sys</Description> <CommandLine>cmd /c powercfg /hibernate off</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>4</Order> <Description>Never sleep or blank the display</Description> <CommandLine>cmd /c powercfg -change -standby-timeout-ac 0 &amp; powercfg -change -monitor-timeout-ac 0</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>5</Order> <Description>Show file extensions</Description> <CommandLine>reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>6</Order> <Description>Allow signed PowerShell scripts</Description> <CommandLine>powershell -NoProfile -Command "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force"</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <!-- EDIT: your provisioning hook. Drop setup.ps1 into the merged ISO alongside this file and it'll be found the same way. <SynchronousCommand wcm:action="add"> <Order>7</Order> <Description>Run post-install provisioning script</Description> <CommandLine>powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-Volume | Where-Object DriveLetter | ForEach-Object { $s = $_.DriveLetter + ':\setup.ps1'; if (Test-Path $s) { &amp; $s } }"</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> --> <SynchronousCommand wcm:action="add"> <Order>8</Order> <Description>Restart to finalize VirtIO driver installation</Description> <CommandLine>cmd /c shutdown /r /t 15 /c "Finalizing VirtIO driver install"</CommandLine> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> </FirstLogonCommands> </component> </settings> </unattend>