Fix Windows 11 unattended install stalling in Setup - #10
Open
isss802 wants to merge 1 commit into
Open
Conversation
## Problem
Unattended **Windows 11** installs stall in Windows Setup and never complete —
the VM never reaches the desktop, so RDP never comes up. Two fields in the `w11`
`autounattend.xml` cause it:
1. **Empty product key.** `<ProductKey><Key></Key></ProductKey>` — an empty
`<Key>` makes Setup stop and prompt for a product key.
2. **`InstallFrom` names an image the current ISO does not contain.**
`<InstallFrom>` `/IMAGE/NAME` = `Windows 10 Pro`. `/IMAGE/NAME` matches the
WIM **`Name`** field. On the current English Windows 11 25H2 ISO no image has
the `Name` `Windows 10 Pro`, so Setup cannot resolve the image and falls back
to the interactive **"Select Image"** screen and waits.
Console (Glish) with the base template, English 25H2 — stuck at:
```
Windows 11 Setup — Select Image
Windows 11 Home / Home N / Home Single Language
Windows 11 Education / Education N
Windows 11 Pro / Pro N / ...
[Back] [Next] <- waits for a human; unattended install never proceeds
```
### Why this regressed — reconciliation with kitknox#9
kitknox#9 correctly established (via `wiminfo`) that on an **older** Windows 11 ISO the
Pro image's WIM `Name` was literally `Windows 10 Pro` (only its *Display Name*
was `Windows 11 Pro`), so `/IMAGE/NAME = "Windows 10 Pro"` matched and selected
Pro. Microsoft has since corrected that field. `wiminfo` of the **current**
English 25H2 ISO shows:
```
Index 6: Name: Windows 11 Pro Description: Windows 11 Pro
Index 7: Name: Windows 11 Pro N ...
(no image is named "Windows 10 Pro")
```
So the hardcoded name matched then and does **not** match now. Pinning a WIM
`Name` string is fragile across ISO builds — which is exactly what broke here.
## Fix
Only the `w11` template changes:
- Set the product key to the generic Windows 11 **Pro** setup key
`VK7JG-NPHTM-C97JM-9MPGT-3V66T`. On multi-edition client media the **product
key drives edition selection**, so Setup installs Pro without an `InstallFrom`
name to match — independent of the WIM `Name` string and of localization.
- **Remove the `InstallFrom` block** and add `<WillShowUI>OnError</WillShowUI>`
as a guard.
The `2k22` template is intentionally left unchanged: it keeps its `InstallFrom`
(`Windows Server 2022 SERVERDATACENTER`) and no product key, which is correct —
Server **evaluation** media has no product key to drive selection, and its
edition-code `Name` is stable.
## Testing
Deployed on Linode (`jp-tyo-3`, `g6-standard-4`). Discriminating 1-variable A/B
on English Windows 11 25H2 — both instances use the **same** build (the
ENOSPC-fixed stage3), so the media is identical and only the `autounattend`
differs:
- **Base `w11` autounattend:** Windows Setup stalls at "Select Image" (console
screenshot above); never installs, no RDP.
- **This fix:** installs Windows 11 Pro unattended and reaches RDP — raw X.224
Connection Confirm `03 00 00 13 0e d0 …`.
- **`wiminfo`** of the ISO (separate Ubuntu instance) confirms the Pro image's
`Name` is `Windows 11 Pro`, and that no image is named `Windows 10 Pro`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Unattended Windows 11 installs stall in Windows Setup and never complete — the VM never reaches the desktop, so RDP never comes up. Two fields in the
w11autounattend.xmlcause it:<ProductKey><Key></Key></ProductKey>— an empty<Key>makes Setup stop and prompt for a product key.InstallFromnames an image the current ISO does not contain.<InstallFrom>/IMAGE/NAME=Windows 10 Pro./IMAGE/NAMEmatches the WIMNamefield. On the current English Windows 11 25H2 ISO no image has theNameWindows 10 Pro, so Setup cannot resolve the image and falls back to the interactive "Select Image" screen and waits.Console (Glish) with the base template, English 25H2 — stuck at:
Why this regressed — reconciliation with #9
#9 correctly established (via
wiminfo) that on an older Windows 11 ISO the Pro image's WIMNamewas literallyWindows 10 Pro(only its Display Name wasWindows 11 Pro), so/IMAGE/NAME = "Windows 10 Pro"matched and selected Pro. Microsoft has since corrected that field.wiminfoof the current English 25H2 ISO shows:So the hardcoded name matched then and does not match now. Pinning a WIM
Namestring is fragile across ISO builds — which is exactly what broke here.Fix
Only the
w11template changes:VK7JG-NPHTM-C97JM-9MPGT-3V66T. On multi-edition client media the product key drives edition selection, so Setup installs Pro without anInstallFromname to match — independent of the WIMNamestring and of localization.InstallFromblock and add<WillShowUI>OnError</WillShowUI>as a guard.The
2k22template is intentionally left unchanged: it keeps itsInstallFrom(Windows Server 2022 SERVERDATACENTER) and no product key, which is correct — Server evaluation media has no product key to drive selection, and its edition-codeNameis stable.Testing
Deployed on Linode (
jp-tyo-3,g6-standard-4). Discriminating 1-variable A/B on English Windows 11 25H2 — both instances use the same build (the ENOSPC-fixed stage3), so the media is identical and only theautounattenddiffers:w11autounattend: Windows Setup stalls at "Select Image" (console screenshot above); never installs, no RDP.03 00 00 13 0e d0 ….wiminfoof the ISO (separate Ubuntu instance) confirms the Pro image'sNameisWindows 11 Pro, and that no image is namedWindows 10 Pro.🤖 Generated with Claude Code