autounattend.xml.in (8804B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 3 kit unattended install answer file for Windows 11 ARM64 under QEMU. 4 Generated into a seed ISO by scripts/windows_vm.sh; the AT-sign placeholders 5 are substituted at seed-build time. Targets a single ARM64 VM that runs aarch64-windows 6 binaries natively and x86_64-windows binaries via the in-box x64 emulator. 7 8 Key choices: 9 - System disk is NVMe (in-box stornvme driver), so Setup sees the disk with 10 no "load driver" step. 11 - TPM 2.0 / Secure Boot / RAM / CPU checks are bypassed via LabConfig so the 12 VM needs no swtpm and no Secure Boot. 13 - A local admin account + AutoLogon skips the OOBE Microsoft-account screen, 14 so first boot needs no network. 15 - FirstLogonCommands hands off to \kit\bootstrap.ps1 on the seed media, which 16 installs the virtio NetKVM driver and OpenSSH server (both bundled, offline). 17 --> 18 <unattend xmlns="urn:schemas-microsoft-com:unattend"> 19 <settings pass="windowsPE"> 20 <component name="Microsoft-Windows-International-Core-WinPE" 21 processorArchitecture="arm64" 22 publicKeyToken="31bf3856ad364e35" language="neutral" 23 versionScope="nonSxS" 24 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 25 <SetupUILanguage> 26 <UILanguage>en-US</UILanguage> 27 </SetupUILanguage> 28 <InputLocale>0409:00000409</InputLocale> 29 <SystemLocale>en-US</SystemLocale> 30 <UILanguage>en-US</UILanguage> 31 <UserLocale>en-US</UserLocale> 32 </component> 33 <component name="Microsoft-Windows-Setup" 34 processorArchitecture="arm64" 35 publicKeyToken="31bf3856ad364e35" language="neutral" 36 versionScope="nonSxS" 37 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 38 <!-- Bypass the Windows 11 hardware gate. These run in WinPE before the 39 compatibility check, so no TPM / Secure Boot device is required. --> 40 <RunSynchronous> 41 <RunSynchronousCommand wcm:action="add"> 42 <Order>1</Order> 43 <Path>reg add HKLM\System\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path> 44 </RunSynchronousCommand> 45 <RunSynchronousCommand wcm:action="add"> 46 <Order>2</Order> 47 <Path>reg add HKLM\System\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path> 48 </RunSynchronousCommand> 49 <RunSynchronousCommand wcm:action="add"> 50 <Order>3</Order> 51 <Path>reg add HKLM\System\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path> 52 </RunSynchronousCommand> 53 <RunSynchronousCommand wcm:action="add"> 54 <Order>4</Order> 55 <Path>reg add HKLM\System\Setup\LabConfig /v BypassStorageCheck /t REG_DWORD /d 1 /f</Path> 56 </RunSynchronousCommand> 57 <RunSynchronousCommand wcm:action="add"> 58 <Order>5</Order> 59 <Path>reg add HKLM\System\Setup\LabConfig /v BypassCPUCheck /t REG_DWORD /d 1 /f</Path> 60 </RunSynchronousCommand> 61 </RunSynchronous> 62 <DiskConfiguration> 63 <Disk wcm:action="add"> 64 <DiskID>0</DiskID> 65 <WillWipeDisk>true</WillWipeDisk> 66 <CreatePartitions> 67 <CreatePartition wcm:action="add"> 68 <Order>1</Order> 69 <Type>EFI</Type> 70 <Size>260</Size> 71 </CreatePartition> 72 <CreatePartition wcm:action="add"> 73 <Order>2</Order> 74 <Type>MSR</Type> 75 <Size>128</Size> 76 </CreatePartition> 77 <CreatePartition wcm:action="add"> 78 <Order>3</Order> 79 <Type>Primary</Type> 80 <Extend>true</Extend> 81 </CreatePartition> 82 </CreatePartitions> 83 <ModifyPartitions> 84 <ModifyPartition wcm:action="add"> 85 <Order>1</Order> 86 <PartitionID>1</PartitionID> 87 <Format>FAT32</Format> 88 <Label>System</Label> 89 </ModifyPartition> 90 <ModifyPartition wcm:action="add"> 91 <Order>2</Order> 92 <PartitionID>2</PartitionID> 93 </ModifyPartition> 94 <ModifyPartition wcm:action="add"> 95 <Order>3</Order> 96 <PartitionID>3</PartitionID> 97 <Format>NTFS</Format> 98 <Label>Windows</Label> 99 <Letter>C</Letter> 100 </ModifyPartition> 101 </ModifyPartitions> 102 </Disk> 103 <WillShowUI>OnError</WillShowUI> 104 </DiskConfiguration> 105 <ImageInstall> 106 <OSImage> 107 <InstallTo> 108 <DiskID>0</DiskID> 109 <PartitionID>3</PartitionID> 110 </InstallTo> 111 <InstallFrom> 112 <MetaData wcm:action="add"> 113 <Key>/IMAGE/NAME</Key> 114 <Value>@WIN_EDITION@</Value> 115 </MetaData> 116 </InstallFrom> 117 <WillShowUI>OnError</WillShowUI> 118 </OSImage> 119 </ImageInstall> 120 <UserData> 121 <ProductKey> 122 <Key>@PRODUCT_KEY@</Key> 123 <WillShowUI>OnError</WillShowUI> 124 </ProductKey> 125 <AcceptEula>true</AcceptEula> 126 <FullName>kit</FullName> 127 <Organization>kit</Organization> 128 </UserData> 129 </component> 130 </settings> 131 132 <settings pass="specialize"> 133 <component name="Microsoft-Windows-Shell-Setup" 134 processorArchitecture="arm64" 135 publicKeyToken="31bf3856ad364e35" language="neutral" 136 versionScope="nonSxS" 137 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 138 <ComputerName>KITWIN</ComputerName> 139 <TimeZone>UTC</TimeZone> 140 </component> 141 <component name="Microsoft-Windows-Deployment" 142 processorArchitecture="arm64" 143 publicKeyToken="31bf3856ad364e35" language="neutral" 144 versionScope="nonSxS" 145 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 146 <!-- Belt-and-suspenders: also disable the OOBE "network required" gate. --> 147 <RunSynchronous> 148 <RunSynchronousCommand wcm:action="add"> 149 <Order>1</Order> 150 <Path>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f</Path> 151 </RunSynchronousCommand> 152 </RunSynchronous> 153 </component> 154 </settings> 155 156 <settings pass="oobeSystem"> 157 <component name="Microsoft-Windows-International-Core" 158 processorArchitecture="arm64" 159 publicKeyToken="31bf3856ad364e35" language="neutral" 160 versionScope="nonSxS" 161 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 162 <InputLocale>0409:00000409</InputLocale> 163 <SystemLocale>en-US</SystemLocale> 164 <UILanguage>en-US</UILanguage> 165 <UserLocale>en-US</UserLocale> 166 </component> 167 <component name="Microsoft-Windows-Shell-Setup" 168 processorArchitecture="arm64" 169 publicKeyToken="31bf3856ad364e35" language="neutral" 170 versionScope="nonSxS" 171 xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> 172 <OOBE> 173 <HideEULAPage>true</HideEULAPage> 174 <HideLocalAccountScreen>true</HideLocalAccountScreen> 175 <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> 176 <HideOnlineAccountScreens>true</HideOnlineAccountScreens> 177 <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> 178 <ProtectYourPC>3</ProtectYourPC> 179 <SkipMachineOOBE>true</SkipMachineOOBE> 180 <SkipUserOOBE>true</SkipUserOOBE> 181 </OOBE> 182 <UserAccounts> 183 <LocalAccounts> 184 <LocalAccount wcm:action="add"> 185 <Name>@KIT_USER@</Name> 186 <DisplayName>@KIT_USER@</DisplayName> 187 <Group>Administrators</Group> 188 <Password> 189 <Value>@KIT_PASS@</Value> 190 <PlainText>true</PlainText> 191 </Password> 192 </LocalAccount> 193 </LocalAccounts> 194 </UserAccounts> 195 <AutoLogon> 196 <Enabled>true</Enabled> 197 <Username>@KIT_USER@</Username> 198 <LogonCount>5</LogonCount> 199 <Password> 200 <Value>@KIT_PASS@</Value> 201 <PlainText>true</PlainText> 202 </Password> 203 </AutoLogon> 204 <FirstLogonCommands> 205 <SynchronousCommand wcm:action="add"> 206 <Order>1</Order> 207 <CommandLine>cmd /c "for %d in (D E F G H I J K L M N O) do @if exist %d:\kit\bootstrap.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File %d:\kit\bootstrap.ps1"</CommandLine> 208 <Description>kit guest bootstrap (virtio net driver + OpenSSH)</Description> 209 <RequiresUserInput>false</RequiresUserInput> 210 </SynchronousCommand> 211 </FirstLogonCommands> 212 </component> 213 </settings> 214 </unattend>