Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 15 additions & 24 deletions docs/src/content/docs/code-reference/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,11 @@ The **Win11 Creator** is a specialized subsystem within Winutil that creates cus
- `Invoke-WinUtilISOCheckExistingWork`: Recovers incomplete work sessions
- `Invoke-WinUtilISOCleanAndReset`: Cleans up temp directories and resets UI

- `Invoke-WinUtilISOScript.ps1`: Applies modifications to mounted install.wim
- Removes provisioned AppX packages (40+ bloatware apps)
- Injects drivers (optional) from the current system
- Removes OneDrive setup files
- Applies offline registry tweaks (hardware bypass, privacy, telemetry, OOBE)
- Deletes telemetry scheduled task definitions
- Pre-stages setup scripts from autounattend.xml
- Removes unused Windows editions
- Cleans component store via DISM
- `Invoke-WinUtilISOScript.ps1`: Prepares the copied setup media
- Writes autounattend.xml with the post-install AppX removal, registry tweaks, and scheduled task cleanup
- Pre-stages the same setup scripts under `sources\$OEM$` as a fallback
- Removes `sources\PID.txt` and writes `sources\ei.cfg` for the selected edition
- Injects drivers (optional) from the current system into one install.wim index

### Win11 Creator Data Flow

Expand All @@ -171,26 +167,21 @@ User optionally enables the Driver Injection checkbox
Invoke-WinUtilISOModify (runs in background runspace)
├─ Create work directory: ~WinUtil_Win11ISO_[timestamp]
├─ Copy ISO contents to disk (~5-6 GB)
├─ Mount install.wim at selected edition/index
├─ Invoke-WinUtilISOScript:
│ ├─ Remove 40+ bloat AppX packages
│ ├─ Export and inject drivers (if enabled)
│ ├─ Remove OneDrive setup
│ ├─ Load offline registry hives
│ ├─ Apply 50+ registry tweaks (hardware bypass, privacy, telemetry, OOBE, etc.)
│ ├─ Delete telemetry scheduled task files
│ ├─ Pre-stage setup scripts from autounattend.xml to C:\Windows\Setup\Scripts\
│ └─ Unload registry hives
├─ DISM /Cleanup-Image /StartComponentCleanup /ResetBase (saves 300-800 MB)
├─ Dismount and save the modified install.wim (~10+ minutes, slowest step)
├─ Export selected edition only (removes all other editions, saves 1-2 GB each)
│ ├─ Write autounattend.xml with the 40+ AppX removals, 50+ registry tweaks,
│ │ scheduled task cleanup, and OneDrive uninstall for first logon
│ ├─ Pin the selected edition index in autounattend.xml
│ ├─ Pre-stage the setup scripts under sources\$OEM$\$$\Setup\Scripts
│ ├─ Remove sources\PID.txt and write sources\ei.cfg for the selected edition
│ └─ Export and inject drivers (if enabled, one mount and one commit)
├─ Leave install.wim / install.esd untouched unless drivers were injected
├─ Dismount source ISO
└─ Report completion, enable export options
Invoke-WinUtilISOExport (user chooses output)
├─ Option 1: Save as ISO
│ ├─ Build bootable ISO via oscdimg.exe (BIOS/UEFI dual-boot)
│ └─ Output: Win11_Modified_[date].iso (2.5-3.5 GB)
│ └─ Output: Win11_Modified_[date].iso (close to the source ISO size)
Comment thread
coderabbitai[bot] marked this conversation as resolved.
└─ Option 2: Write to USB
├─ Format USB as GPT
Expand All @@ -199,7 +190,7 @@ Invoke-WinUtilISOExport (user chooses output)
└─ Output: Bootable USB (minimum 8 GB)
Invoke-WinUtilISOCleanAndReset (optional)
└─ Delete temp working directory (~10-15 GB)
└─ Delete temp working directory (~5-6 GB)
└─ Reset UI to initial state
```

Expand All @@ -224,7 +215,7 @@ Invoke-WinUtilISOCleanAndReset (optional)

### Win11 Creator Registry Tweaks

The `Invoke-WinUtilISOScript` function applies **50+ offline registry tweaks**:
The `Invoke-WinUtilISOScript` function stages **50+ registry tweaks** that are applied on first logon:

**Hardware Bypass**:
- TPM 2.0 check bypass
Expand Down
14 changes: 8 additions & 6 deletions docs/src/content/docs/guides/win11creator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,16 @@ This step takes around 10–30 seconds, depending on your drive speed.

Click **Run Windows ISO Modification and Creator** to start the customization process. WinUtil will:

**App & Component Removal:**
**App & Component Removal:** (applied on first logon by the staged setup script, not baked into the image)
- **Remove 40+ bloat apps** — Clipchamp, Teams, Copilot, Dev Home, new Outlook, Bing apps, Solitaire, and more
- **Delete OneDrive setup** from the image
- **Uninstall OneDrive**

**System Customization:**
- **Bypass hardware checks** — removes TPM, Secure Boot, CPU, RAM, and storage requirement enforcement so the ISO installs on unsupported hardware
- **Enable local account setup** — injects an `autounattend.xml` that skips the Microsoft account screen during OOBE
- **Disable BitLocker and device encryption** — removes startup overhead
- **Disable Chat icon** — removes chat taskbar button
- **Strip unused editions** — keeps only your selected edition, saving 1–2 GB per removed edition
- **Pin the selected edition during setup** — writes setup metadata so OEM firmware keys for a different edition do not force the installer down the wrong product-key path
- **Clean the component store** — runs DISM cleanup to reclaim another 300–800 MB
- **Pin the selected edition during setup** — writes `sources\ei.cfg` and setup metadata so OEM firmware keys for a different edition do not force the installer down the wrong product-key path

**Privacy & Telemetry Tweaks:**
- **Disable telemetry** — advertising ID, tailored experiences, input personalization, speech online privacy
Expand All @@ -74,7 +72,11 @@ Click **Run Windows ISO Modification and Creator** to start the customization pr
**Optional: Driver Injection**
- If enabled, it injects all drivers from your current system into the install.wim and boot.wim — useful for offline installations on machines with missing drivers. This is an optional checkbox in Step 3.

A live log shows progress as each step completes. This stage usually takes **10–30 minutes** depending on disk speed. The WIM dismount near the end is the slowest part, so do not close WinUtil while it is running.
A live log shows progress as each step completes. Without driver injection this stage is a copy of the ISO contents plus a few small setup files, so it is limited by disk speed. Enabling driver injection adds a single WIM mount and commit, which is by far the slowest part. Do not close WinUtil while it is running.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
Comment thread
vyas-devgna marked this conversation as resolved.
Outdated

:::note
The resulting ISO is close to the size of the source ISO. WinUtil does not remove the unused editions from `install.wim`; it selects your edition through `sources\ei.cfg` and `autounattend.xml` so Windows Setup installs the right one.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clarify first-logon staging in the guide

For runs without driver injection, this new note is the only place explaining that the image is preserved, but the Step 3 bullets immediately above still promise AppX, OneDrive, registry, and task removals as if they are baked into the ISO. The implementation writes autounattend.xml/sources\$OEM$ setup scripts and only calls driver servicing when $InjectCurrentSystemDrivers is true (functions/private/Invoke-WinUtilISOScript.ps1:529-538), so users expecting an offline-debloated install.wim will not see those changes until first logon; update this section to describe the staging behavior.

AGENTS.md reference: AGENTS.md:L127-L127

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skipping this one deliberately. The Step 3 bullets are pre-existing text that this PR does not touch, and an earlier revision added exactly this clarification before it was reverted to keep the change scoped to the edition and output size claims behind #4918.

On the substance you are right, but a header tweak would not do it justice. The passes differ: the hardware requirement bypasses are written during windowsPE, the account and OOBE behavior during oobeSystem, and the AppX, registry, scheduled task and OneDrive work runs at first logon. Describing all of it as first-logon staging is what the previous revision got wrong, and it was raised in review as well. That needs the three phases documented separately across the guide and the architecture page.

AGENTS.md section 6 also asks not to improve adjacent docs unless required, so I would rather leave this for the follow-up pass than half-fix it here.

:::

---

Expand Down