An answer file is not one long list of settings — it is seven separate conversations with Windows Setup, called passes, and each setting only works in the pass that owns it. Learn the passes and the file stops being magic.
Part 1 of this series showed how an autounattend.xml next to your custom ISO makes Windows install itself. This page is the layer underneath: the structure of the file. Every setting lives inside a named configuration pass, and Setup reads each pass at a different moment of the install. Put a valid setting in the wrong pass and it is silently ignored — the number one reason hand-written answer files “do nothing”. Once you can read the skeleton below, any generated file becomes something you can audit instead of something you blindly trust.
<settings pass="windowsPE"> language, disk, EULA, bypass commands
<settings pass="offlineServicing"> packages applied to the image
<settings pass="specialize"> computer name, network, domain
<settings pass="oobeSystem"> user account, OOBE screens, first logon
Status: each setting sits in the pass that runs it
This trimmed file accepts the EULA, sets the language, and hides two OOBE screens. It is deliberately small — audit value over size — and every tag is plain ASCII, ready to copy:
<?xml version="1.0" encoding="utf-8"?><unattend xmlns="urn:schemas-microsoft-com:unattend"><settings pass="windowsPE"> containing the Microsoft-Windows-Setup component with <UserData><AcceptEula>true</AcceptEula></UserData>, plus the Microsoft-Windows-International-Core-WinPE component with your UILanguage, InputLocale, SystemLocale and UserLocale values<settings pass="oobeSystem"> containing the Microsoft-Windows-Shell-Setup component with <OOBE><HideEULAPage>true</HideEULAPage><ProtectYourPC>3</ProtectYourPC></OOBE></unattend>Every component block also needs its architecture attributes — for a 64-bit image that is processorArchitecture="amd64" together with the standard publicKeyToken="31bf3856ad364e35", language="neutral" and versionScope="nonSxS" values. Generators fill these in automatically; if you hand-edit, never delete them.
autounattend.xml at the root of the install media — Setup searches for that name and no other& or < must be written as an entity, or the parse failsEvery checkbox, removal and bypass option from this page is shown live in the full video — watch it end to end before you build your own ISO.
▶️ Watch Full VideoThe three usual causes are the file name (it must be exactly autounattend.xml), the location (root of the install media, not inside a folder), and settings placed in a pass Setup does not read for that stage. Check those before rewriting anything.
No. A typical deployment file uses windowsPE, specialize and oobeSystem only. Passes you omit simply run with defaults — the file only overrides what it actually contains.
On many builds, yes — the oobeSystem pass can define a local user and hide the online account screens. Microsoft adjusts OOBE behaviour between builds, so test on your exact build; the bypass page in this series covers the additional registry route.