AnDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/flick9000/winscript/llms.txt
Use this file to discover all available pages before exploring further.
autounattend.xml file is a Windows answer file that supplies responses to every prompt the Windows Setup wizard would normally ask a user — disk selection, regional settings, account creation, OOBE screens, and more. When placed at the root of a Windows installation USB drive (or embedded in a bootable ISO), the Setup engine reads it automatically before any user interaction is possible, enabling a fully hands-off installation.
Winscript’s Unattended Setup generator takes this a step further: it embeds your chosen Winscript PowerShell tweaks directly inside the XML file, so by the time you reach the desktop your system is already optimised, debloated, and configured exactly the way you want it — without touching a single wizard screen.
The
autounattend.xml file is generated from the Unattended Setup tab inside the Winscript application. Configure your tweaks first in the main interface, then switch to that tab and click Create to generate and save the file.What the generated file does
The XML produced by Winscript automates the following behaviours during Windows Setup:- Bypasses Windows 11 hardware requirements — injects
LabConfigregistry entries at thewindowsPEphase to skip TPM 2.0, Secure Boot, RAM, CPU, and storage checks, allowing installation on any machine regardless of Microsoft’s minimum-spec enforcement. - Skips OOBE screens — sets
HideEULAPage,HideWirelessSetupInOOBE, andHideOnlineAccountScreensso the license agreement, Wi-Fi picker, and Microsoft account prompts are never shown. - Sets minimal privacy defaults —
ProtectYourPCis set to3, which selects the least invasive diagnostics option available at the OOBE stage. - Disables the network during the Specialize phase — all network adapters are disabled via
Get-NetAdapter | Disable-NetAdapterto prevent Windows Update or telemetry traffic during initial configuration. They are re-enabled automatically at first logon. - Disables Windows Update during setup —
NoAutoUpdateandDisableWindowsUpdateAccesspolicies are applied at specialize time and removed again at first logon, preventing background downloads from interfering with the setup process. - Runs your Winscript PowerShell script automatically —
winscript.ps1(containing all tweaks you selected in the app) is embedded in the XML and executed during theFirstLogonCommandsphase, so your full configuration is applied on the very first boot to the desktop.
Setup phases
The generated XML is structured around the standard Windows unattend pass model. Each pass runs at a distinct point in the installation lifecycle:windowsPE phase
Runs inside the Windows PE environment before the main installation begins. Winscript uses RunSynchronous commands here to add the LabConfig registry keys that bypass hardware requirement checks. A placeholder product key (00000-00000-00000-00000-00000) is also set with WillShowUI of Always so the installer will always prompt for a valid key if one is not supplied elsewhere.
specialize phase
Runs after the OS files are copied to disk but before the first reboot into the installed system. Winscript uses this phase to:
- Extract all embedded scripts from the
Extensionsblock by invoking the inlineExtractScriptPowerShell code stored in the XML itself. - Execute
Specialize.ps1, which applies pre-OOBE registry tweaks and disables Windows Update. - Disable all network adapters to isolate the machine during the remainder of setup.
oobeSystem phase
Runs during the Out-of-Box Experience. Winscript configures the OOBE element to hide the EULA, Wi-Fi setup, and online account prompts, then registers FirstLogon.ps1 as a FirstLogonCommand so it executes immediately when the new user desktop loads for the first time.
Extensions block
The Extensions element — declared under the custom namespace urn:winscript:unattend — is a Winscript-specific section that is not part of the standard Microsoft unattend schema. It contains:
ExtractScript— an inline PowerShell scriptblock that reads the<File>children ofExtensionsand writes them to disk at the paths specified in each element’spathattribute.<File path="…\winscript.ps1">— your selected Winscript tweaks, serialised as a PS1 file.<File path="…\Specialize.ps1">— the specialize-phase configuration script.<File path="…\FirstLogon.ps1">— the first-logon orchestration script.
Workflow
Select your tweaks in Winscript
Open Winscript and choose the debloat, privacy, performance, and miscellaneous options you want applied to your new Windows installation. These selections form the
winscript.ps1 that will be embedded in the XML.Configure OOBE options
Switch to the Unattended Setup tab in Winscript. Review the OOBE settings — EULA page, Wi-Fi setup, online account screens, and privacy defaults are all pre-configured, but you can adjust them before generating the file.
Generate autounattend.xml
Click Create. Winscript serialises your current selections into a complete
autounattend.xml file and opens a save dialog so you can choose where to store it.Place the file on your installation media
Copy
autounattend.xml to the root of a Windows installation USB drive (the same level as the setup.exe file). The Windows Setup engine automatically detects answer files at this location.