Skip to content
Draft
Show file tree
Hide file tree
Changes from 3 commits
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
2 changes: 2 additions & 0 deletions config/themes.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
"FontSize": "12",
"FontFamily": "Arial",
"HeaderFontSize": "16",
"Win11StepTitleFontSize": "22",
"Win11StepHeroFontSize": "40",
"HeaderFontFamily": "Consolas, Monaco",
"CheckBoxBulletDecoratorSize": "14",
"CheckBoxMargin": "15,0,0,2",
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/code-reference/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Invoke-WinUtilISOCleanAndReset (optional)

**Work Session Recovery**:
- Auto-detects incomplete work from previous sessions
- Allows resuming Step 4 (export) without re-running Steps 1-3
- Allows resuming the export step without re-running selection and modification
- Prevents redundant modifications

**Modification Safety**:
Expand Down
25 changes: 12 additions & 13 deletions docs/src/content/docs/guides/win11creator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,26 @@ This workflow is intended for fresh Windows installs, not in-place upgrades of a

---

The tab is a three step wizard. The step you are on is shown in the header row, and you can click an earlier step to go back to it until the image has been modified. The status log on the right stays visible throughout.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use a hyphen in “three-step.”

Change “The tab is a three step wizard” to “The tab is a three-step wizard.”

🧰 Tools
🪛 LanguageTool

[grammar] ~26-~26: Use a hyphen to join words.
Context: ...stallation. ::: --- The tab is a three step wizard. The step you are on is show...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/src/content/docs/guides/win11creator.mdx` at line 26, Update the
introductory wizard description to hyphenate “three-step” in the sentence
beginning “The tab is a,” leaving the rest of the documentation unchanged.

Source: Linters/SAST tools


### Step 1 — Select Your Official Windows 11 ISO

1. Open WinUtil and go to the **Win11 Creator** tab.
2. Click **Browse** and select your **official Windows 11 ISO file** from Microsoft (must be 4 GB or larger). Custom or modified ISOs are not supported.
3. The file path and size will appear on screen once selected.

---

### Step 2 — Mount & Verify

1. Click **Mount & Verify ISO**.
2. WinUtil mounts the ISO, checks for a valid `install.wim` or `install.esd`, and reads the available editions (Home, Pro, Enterprise, etc.).
3. Once verified, select your desired **edition** from the dropdown — Pro is selected by default if available.
4. Click **Mount & Verify ISO**. WinUtil mounts the ISO, checks for a valid `install.wim` or `install.esd`, and reads the available editions (Home, Pro, Enterprise, etc.).

:::note
This step takes around 10–30 seconds, depending on your drive speed.
Mounting and verification takes around 10–30 seconds, depending on your drive speed.
:::

---

### Step 3 — Run the Modification
### Step 2 — Modify the Image

Once the ISO is verified, WinUtil moves to this step and shows the mounted drive and image file. Choose your **edition** from the dropdown — Pro is selected by default if available — and tick **Inject current system drivers** if you want them.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the duplicated modification instruction.

Line 45 repeats the sentence at Line 47. Keep one copy.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/src/content/docs/guides/win11creator.mdx` at line 45, Remove the
duplicated “Run Windows ISO Modification and Creator” instruction in the Win11
creator guide, keeping a single copy before the customization process
description.


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

Expand Down Expand Up @@ -72,13 +71,13 @@ Click **Run Windows ISO Modification and Creator** to start the customization pr
- **Disable Copilot and search box suggestions**

**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.
- 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 2.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n -C 8 \
  'boot\.wim|InstallImagePath|InstallImageIndex|Add-Driver|InjectCurrentSystemDrivers' \
  functions/private/Invoke-WinUtilISOScript.ps1 \
  functions/private/Invoke-WinUtilISO.ps1 \
  pester/win11creator.Tests.ps1 \
  docs/src/content/docs/code-reference/architecture.mdx \
  docs/src/content/docs/guides/win11creator.mdx

Repository: ChrisTitusTech/winutil

Length of output: 31152


Remove the unsupported boot.wim driver-injection claim.

The current driver-injection path only services install.wim with one mount, one Add-Driver, and one commit. Remove and boot.wim from docs/src/content/docs/guides/win11creator.mdx:74 and update the matching boot.wim entry in docs/src/content/docs/code-reference/architecture.mdx:265-267.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/src/content/docs/guides/win11creator.mdx` at line 74, Remove the
unsupported boot.wim driver-injection claim from the Step 2 description in
win11creator.mdx, and update the corresponding boot.wim entry in
architecture.mdx to reflect that injection only targets install.wim.


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.

---

### Step 4 — Export Your Result
### Step 3 — Export Your Result

Once the modification is complete, choose how to save your image:

Expand Down Expand Up @@ -110,7 +109,7 @@ Double-check you have selected the correct drive before confirming. This operati

### Step 5 — Clean Up (Optional)

Click **Clean & Reset** to delete the temporary working directory (~10–15 GB) and return the tool to its initial state, ready for a new ISO. You will be asked to confirm before anything is deleted.
Click **Start Over** to delete the temporary working directory (~10–15 GB) and return the tool to its initial state, ready for a new ISO. You will be asked to confirm before anything is deleted.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the obsolete step number from the cleanup section.

The guide now defines only Steps 1–3, but the cleanup section containing this changed line is still titled Step 5 — Clean Up (Optional). Rename the heading to ### Start Over (Optional) or remove the numeric label.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/src/content/docs/guides/win11creator.mdx` at line 112, Update the
cleanup section heading near the Start Over instructions by removing the
obsolete “Step 5” numeric label, using “Start Over (Optional)” while preserving
the existing cleanup content.


---

Expand Down
2 changes: 2 additions & 0 deletions functions/private/Invoke-WinUtilFontScaling.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ function Invoke-WinUtilFontScaling {
"FontSize",
"ButtonFontSize",
"HeaderFontSize",
"Win11StepTitleFontSize",
"Win11StepHeroFontSize",
"TabButtonFontSize",
"ConfigTabButtonFontSize",
"IconFontSize",
Expand Down
111 changes: 75 additions & 36 deletions functions/private/Invoke-WinUtilISO.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,41 @@ function Write-WinUtilISOLog {
})
}

function Set-WinUtilISOStep {
<#
.SYNOPSIS
Selects a page of the Win11 Creator wizard and sets which pages can be navigated back to
.DESCRIPTION
Safe to call from a background runspace - it marshals to the UI thread itself.
.PARAMETER Step
Select, Modify, Working or Output
.PARAMETER Label
Headline shown on the working page while a long operation runs
#>
param(
[ValidateSet("Select", "Modify", "Working", "Output")]
[string]$Step,
[string]$Label
)

$apply = {
if ($Label) { $sync["WPFWin11ISOWorkingLabel"].Text = $Label }

# Earlier pages stay reachable until the image has been modified, after that only output applies
$sync["WPFWin11ISOSelectSection"].IsEnabled = $Step -in @("Select", "Modify")
$sync["WPFWin11ISOModifySection"].IsEnabled = $Step -eq "Modify"
$sync["WPFWin11ISOOutputSection"].IsEnabled = $Step -eq "Output"

$sync["WPFWin11ISO$($Step)Section"].IsSelected = $true
}

if ($sync["WPFWin11ISOSteps"].Dispatcher.CheckAccess()) {
& $apply
} else {
$sync["WPFWin11ISOSteps"].Dispatcher.Invoke([action]$apply)
}
}

function Invoke-WinUtilISOBrowse {
Add-Type -AssemblyName System.Windows.Forms

Expand All @@ -30,10 +65,10 @@ function Invoke-WinUtilISOBrowse {
$sync["WPFWin11ISOPath"].Text = $isoPath
$sync["WPFWin11ISOFileInfo"].Text = "File size: $fileSizeGB GB"
$sync["WPFWin11ISOFileInfo"].Visibility = "Visible"
$sync["WPFWin11ISOMountSection"].Visibility = "Visible"
$sync["WPFWin11ISOVerifyResultPanel"].Visibility = "Collapsed"
$sync["WPFWin11ISOModifySection"].Visibility = "Collapsed"
$sync["WPFWin11ISOOutputSection"].Visibility = "Collapsed"

# A different ISO invalidates anything already mounted, so lock the later steps again
Set-WinUtilISOStep -Step "Select"

Write-WinUtilISOLog "ISO selected: $isoPath ($fileSizeGB GB)"
}
Expand All @@ -47,6 +82,7 @@ function Invoke-WinUtilISOMountAndVerify {
}

Write-WinUtilISOLog "Mounting ISO: $isoPath"
Set-WinUtilISOStep -Step "Working" -Label "Mounting and verifying the ISO"
Set-WinUtilTweaksProgressIndicator -Visible $true -Label "Mounting ISO..." -Percent 10
$sync["WPFWin11ISOBrowseButton"].IsEnabled = $false
$sync["WPFWin11ISOMountButton"].IsEnabled = $false
Expand Down Expand Up @@ -104,7 +140,9 @@ function Invoke-WinUtilISOMountAndVerify {
$sync["Win11ISOImagePath"] = $isoPath

Invoke-WPFUIThread {
$sync["WPFWin11ISOMountDriveLetter"].Text = "Mounted at: $driveLetter | Image file: $(Split-Path $activeWim -Leaf)"
# Each value sits behind its own icon in the verified panel, so no labels or separators here
$sync["WPFWin11ISOMountDriveLetter"].Text = $driveLetter
$sync["WPFWin11ISOImageFile"].Text = Split-Path $activeWim -Leaf
$sync["WPFWin11ISOEditionComboBox"].Items.Clear()
foreach ($img in $imageInfo) {
[void]$sync["WPFWin11ISOEditionComboBox"].Items.Add("$($img.ImageIndex): $($img.ImageName)")
Expand All @@ -119,8 +157,8 @@ function Invoke-WinUtilISOMountAndVerify {
$sync["WPFWin11ISOEditionComboBox"].SelectedIndex = if ($proIndex -ge 0) { $proIndex } else { 0 }
}
$sync["WPFWin11ISOVerifyResultPanel"].Visibility = "Visible"
$sync["WPFWin11ISOModifySection"].Visibility = "Visible"
$sync["WPFWin11ISOModifyButton"].IsEnabled = $true
Set-WinUtilISOStep -Step "Modify"
}

Set-WinUtilTweaksProgressIndicator -Visible $true -Label "ISO verified" -Percent 100
Expand All @@ -140,6 +178,10 @@ function Invoke-WinUtilISOMountAndVerify {
$sync["WPFWin11ISOBrowseButton"].IsEnabled = $true
$sync["WPFWin11ISOMountButton"].IsEnabled = $true
$sync["Win11ISOProcessRunning"] = $false
# Still on the working page means mount or verification failed - go back to the ISO picker
if ($sync["WPFWin11ISOWorkingSection"].IsSelected) {
Set-WinUtilISOStep -Step "Select"
}
}
}
}
Expand All @@ -152,7 +194,7 @@ function Invoke-WinUtilISOModify {

if (-not $isoPath) {
[System.Windows.MessageBox]::Show(
"No verified ISO found. Please complete Steps 1 and 2 first.",
"No verified ISO found. Please select and verify an ISO first.",
"Not Ready", "OK", "Warning")
return
}
Expand All @@ -170,6 +212,7 @@ function Invoke-WinUtilISOModify {
$sync["WPFWin11ISOModifyButton"].IsEnabled = $false
$sync["Win11ISOModifying"] = $true
$sync["Win11ISOProcessRunning"] = $true
Set-WinUtilISOStep -Step "Working" -Label "Modifying install.wim"

$workDir = Join-Path $env:TEMP "WinUtil_Win11ISO_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
if (Test-Path $workDir) {
Expand Down Expand Up @@ -200,14 +243,17 @@ function Invoke-WinUtilISOModify {

$isoScriptFuncDef = "function Invoke-WinUtilISOScript {`n" + ${function:Invoke-WinUtilISOScript}.ToString() + "`n}"
$win11ISOLogFuncDef = "function Write-WinUtilISOLog {`n" + ${function:Write-WinUtilISOLog}.ToString() + "`n}"
$isoStepFuncDef = "function Set-WinUtilISOStep {`n" + ${function:Set-WinUtilISOStep}.ToString() + "`n}"
$runspace.SessionStateProxy.SetVariable("isoScriptFuncDef", $isoScriptFuncDef)
$runspace.SessionStateProxy.SetVariable("win11ISOLogFuncDef", $win11ISOLogFuncDef)
$runspace.SessionStateProxy.SetVariable("isoStepFuncDef", $isoStepFuncDef)

$script = [Management.Automation.PowerShell]::Create()
$script.Runspace = $runspace
$script.AddScript({
. ([scriptblock]::Create($isoScriptFuncDef))
. ([scriptblock]::Create($win11ISOLogFuncDef))
. ([scriptblock]::Create($isoStepFuncDef))

function Log($msg) {
$ts = (Get-Date).ToString("HH:mm:ss")
Expand Down Expand Up @@ -253,11 +299,6 @@ function Invoke-WinUtilISOModify {
}

try {
$sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{
$sync["WPFWin11ISOSelectSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOMountSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOModifySection"].Visibility = "Collapsed"
})

Log "Creating working directory: $workDir"
$isoContents = Join-Path $workDir "iso_contents"
Expand Down Expand Up @@ -294,11 +335,9 @@ function Invoke-WinUtilISOModify {
$sync["Win11ISOContentsDir"] = $isoContents

SetProgress "Modification complete" 100
Log "install.wim modification complete. Choose an output option in Step 4."
Log "install.wim modification complete. Choose an output option in the last step."

$sync["WPFWin11ISOOutputSection"].Dispatcher.Invoke([action]{
$sync["WPFWin11ISOOutputSection"].Visibility = "Visible"
})
Set-WinUtilISOStep -Step "Output"
} catch {
Log "ERROR during modification: $_"

Expand Down Expand Up @@ -332,10 +371,9 @@ function Invoke-WinUtilISOModify {
$sync["WPFTweaksProgressLabel"].ToolTip = ""
$sync["WPFTweaksProgressValue"].Value = 0
$sync["WPFWin11ISOModifyButton"].IsEnabled = $true
if ($sync["WPFWin11ISOOutputSection"].Visibility -ne "Visible") {
$sync["WPFWin11ISOSelectSection"].Visibility = "Visible"
$sync["WPFWin11ISOMountSection"].Visibility = "Visible"
$sync["WPFWin11ISOModifySection"].Visibility = "Visible"
# Still on the working page means the modification failed - go back to it
if ($sync["WPFWin11ISOWorkingSection"].IsSelected) {
Set-WinUtilISOStep -Step "Modify"
}
})
}
Expand Down Expand Up @@ -363,18 +401,15 @@ function Invoke-WinUtilISOCheckExistingWork {
$sync["Win11ISOWorkDir"] = $existingWorkDir.FullName
$sync["Win11ISOContentsDir"] = $isoContents

$sync["WPFWin11ISOSelectSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOMountSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOModifySection"].Visibility = "Collapsed"
$sync["WPFWin11ISOOutputSection"].Visibility = "Visible"
Set-WinUtilISOStep -Step "Output"

$modified = $existingWorkDir.LastWriteTime.ToString("yyyy-MM-dd HH:mm")
Write-WinUtilISOLog "Existing working directory found: $($existingWorkDir.FullName)"
Write-WinUtilISOLog "Last modified: $modified - Skipping Steps 1-3 and resuming at Step 4."
Write-WinUtilISOLog "Click 'Clean & Reset' if you want to start over with a new ISO."
Write-WinUtilISOLog "Last modified: $modified - Skipping the earlier steps and resuming at the output step."
Write-WinUtilISOLog "Click 'Start Over' if you want to begin again with a new ISO."

[System.Windows.MessageBox]::Show(
"A previous WinUtil ISO working directory was found:`n`n$($existingWorkDir.FullName)`n`n(Last modified: $modified)`n`nStep 4 (output options) has been restored so you can save the already-modified image.`n`nClick 'Clean & Reset' in Step 4 if you want to start over.",
"A previous WinUtil ISO working directory was found:`n`n$($existingWorkDir.FullName)`n`n(Last modified: $modified)`n`nThe output step has been restored so you can save the already-modified image.`n`nClick 'Start Over' there if you want to begin again.",
"Existing Work Found", "OK", "Info")
}

Expand All @@ -384,7 +419,7 @@ function Invoke-WinUtilISOCleanAndReset {
if ($workDir -and (Test-Path $workDir)) {
$confirm = [System.Windows.MessageBox]::Show(
"This will delete the temporary working directory:`n`n$workDir`n`nAnd reset the interface back to the start.`n`nContinue?",
"Clean & Reset", "YesNo", "Warning")
"Start Over", "YesNo", "Warning")
if ($confirm -ne "Yes") { return }
}

Expand All @@ -395,12 +430,15 @@ function Invoke-WinUtilISOCleanAndReset {
$runspace.ApartmentState = "STA"
$runspace.ThreadOptions = "ReuseThread"
$runspace.Open()
$runspace.SessionStateProxy.SetVariable("sync", $sync)
$runspace.SessionStateProxy.SetVariable("workDir", $workDir)
$isoStepFuncDef = "function Set-WinUtilISOStep {`n" + ${function:Set-WinUtilISOStep}.ToString() + "`n}"
$runspace.SessionStateProxy.SetVariable("sync", $sync)
$runspace.SessionStateProxy.SetVariable("workDir", $workDir)
$runspace.SessionStateProxy.SetVariable("isoStepFuncDef", $isoStepFuncDef)

$script = [Management.Automation.PowerShell]::Create()
$script.Runspace = $runspace
$script.AddScript({
. ([scriptblock]::Create($isoStepFuncDef))

function Log($msg) {
$ts = (Get-Date).ToString("HH:mm:ss")
Expand Down Expand Up @@ -495,15 +533,14 @@ function Invoke-WinUtilISOCleanAndReset {
$sync["Win11ISOUSBDisks"] = $null

$sync["WPFWin11ISOPath"].Text = "No ISO selected..."
$sync["WPFWin11ISOFileInfo"].Visibility = "Collapsed"
# Hidden, not collapsed, so the page does not shift when an ISO is picked again
$sync["WPFWin11ISOFileInfo"].Visibility = "Hidden"
$sync["WPFWin11ISOVerifyResultPanel"].Visibility = "Collapsed"
$sync["WPFWin11ISOOptionUSB"].Visibility = "Collapsed"
$sync["WPFWin11ISOOutputSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOModifySection"].Visibility = "Collapsed"
$sync["WPFWin11ISOMountSection"].Visibility = "Collapsed"
$sync["WPFWin11ISOSelectSection"].Visibility = "Visible"
$sync["WPFWin11ISODonePanel"].Visibility = "Collapsed"
$sync["WPFWin11ISOModifyButton"].IsEnabled = $true
$sync["WPFWin11ISOCleanResetButton"].IsEnabled = $true
Set-WinUtilISOStep -Step "Select"

$sync["WPFTweaksProgressBar"].Visibility = "Collapsed"
$sync["WPFTweaksProgressLabel"].Text = ""
Expand All @@ -513,7 +550,7 @@ function Invoke-WinUtilISOCleanAndReset {
$sync["WPFWin11ISOStatusLog"].Text = "Ready. Please select a Windows 11 ISO to begin."
})
} catch {
Log "ERROR during Clean & Reset: $_"
Log "ERROR during Start Over: $_"
$sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{
$sync["WPFTweaksProgressBar"].Visibility = "Collapsed"
$sync["WPFTweaksProgressLabel"].Text = ""
Expand All @@ -534,7 +571,7 @@ function Invoke-WinUtilISOExport {

if (-not $contentsDir -or -not (Test-Path $contentsDir)) {
[System.Windows.MessageBox]::Show(
"No modified ISO content found. Please complete Steps 1-3 first.",
"No modified ISO content found. Please run the modification step first.",
"Not Ready", "OK", "Warning")
return
}
Expand Down Expand Up @@ -654,6 +691,8 @@ function Invoke-WinUtilISOExport {
SetProgress "ISO exported" 100
Write-WinUtilISOLog "ISO exported successfully: $outputISO"
$sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{
$sync["WPFWin11ISODoneLabel"].Text = "ISO saved to $outputISO"
$sync["WPFWin11ISODonePanel"].Visibility = "Visible"
[System.Windows.MessageBox]::Show("ISO exported successfully!`n`n$outputISO", "Export Complete", "OK", "Info")
})
} else {
Expand Down
4 changes: 3 additions & 1 deletion functions/private/Invoke-WinUtilISOUSB.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function Invoke-WinUtilISOWriteUSB {
$usbDisks = $sync["Win11ISOUSBDisks"]

if (-not $contentsDir -or -not (Test-Path $contentsDir)) {
[System.Windows.MessageBox]::Show("No modified ISO content found. Please complete Steps 1-3 first.", "Not Ready", "OK", "Warning")
[System.Windows.MessageBox]::Show("No modified ISO content found. Please run the modification step first.", "Not Ready", "OK", "Warning")
return
}

Expand Down Expand Up @@ -261,6 +261,8 @@ function Invoke-WinUtilISOWriteUSB {
Log "USB drive is ready for use."

$sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{
$sync["WPFWin11ISODoneLabel"].Text = "The USB drive is ready to boot from."
$sync["WPFWin11ISODonePanel"].Visibility = "Visible"
[System.Windows.MessageBox]::Show(
"USB drive created successfully!`n`nYou can now boot from this drive to install Windows 11.",
"USB Ready", "OK", "Info")
Expand Down
9 changes: 8 additions & 1 deletion pester/xaml.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,18 @@ Describe "XAML document" {
"WPFWin11ISOBrowseButton",
"WPFWin11ISOFileInfo",
"WPFWin11ISODownloadLink",
"WPFWin11ISOMountSection",
"WPFWin11ISOSteps",
"WPFWin11ISOBackButton",
"WPFWin11ISOForwardButton",
"WPFWin11ISOWorkingSection",
"WPFWin11ISOWorkingLabel",
"WPFWin11ISODonePanel",
"WPFWin11ISODoneLabel",
"WPFWin11ISOMountButton",
"WPFWin11ISOInjectDrivers",
"WPFWin11ISOVerifyResultPanel",
"WPFWin11ISOMountDriveLetter",
"WPFWin11ISOImageFile",
"WPFWin11ISOArchLabel",
"WPFWin11ISOEditionComboBox",
"WPFWin11ISOModifySection",
Expand Down
Loading