Compare commits

...

6 Commits

Author SHA1 Message Date
Gabi
a05034381d Update Win11 Creator (#4196)
* Update autounattend.xml

* Update autounattend.xml

* Updated autounattend.xml to disable reccomened section

* Update autounattend.xml
2026-03-13 10:18:36 -05:00
Chris Titus
b1d4eb022c Fix mount disk error (#4204)
* wait for mounting to assign disk letter

* update

* Gabi fixing my slop with a comment
2026-03-12 15:45:42 -05:00
Gabi
3dbd993cb4 Update bug_report.yaml (#4206) 2026-03-12 15:27:37 -05:00
Gabi
ec17c085df Fix: Prevent Win11 Creator UI reset when switching tabs during ISO Creation (#4199)
* Fix: Prevent Win11 Creator UI reset when switching tabs during ISO modification

* Update Invoke-WinUtilISO.ps1
2026-03-12 15:09:52 -05:00
Chris Titus
7da4e78d4b chore: Update generated dev docs (#4205) 2026-03-12 15:09:30 -05:00
Gabi
1943b30ec9 Make WPFTweaksRevertStartMenu more understandable and move it to essential tweaks (#4202)
* Make WPFTweaksRevertStartMenu more understandable

* Update tweaks.json
2026-03-12 15:08:56 -05:00
5 changed files with 45 additions and 61 deletions

View File

@@ -6,20 +6,8 @@ body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
## ⚠️ **IMPORTANT** - Remember, we only support Windows 11. If you encounter problems on Windows 10, please consider upgrading to Windows 11.
- 🛠️ **Supported environments only:** We only support Windows 11. - For general questions, join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type: checkboxes
attributes:
label: ⚙️ Issue Checklist
options:
- label: I have read the guidelines.
- label: I checked for duplicate issues.
- label: I searched for existing discussions.
- label: I checked for an existing pull request that addresses this issue.
validations:
required: true
- type: dropdown - type: dropdown
id: affected_part id: affected_part
@@ -32,17 +20,17 @@ body:
- Updates Tab - Updates Tab
- Win11 Creator Tab - Win11 Creator Tab
validations: validations:
required: true required: false
- type: textarea - type: textarea
id: issue_description id: issue_description
attributes: attributes:
label: 📝 Provide a clear and concise description of the issue. label: Provide a clear and concise description of the issue.
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: error_output id: error_output
attributes: attributes:
label: Paste the full error output (if available) or Screenshot. label: Paste the full error output (if available) or Screenshot.
placeholder: "Include any relevant logs or error messages." placeholder: "Include any relevant logs or error messages."

View File

@@ -88,9 +88,9 @@
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/widget" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/widget"
}, },
"WPFTweaksRevertStartMenu": { "WPFTweaksRevertStartMenu": {
"Content": "Revert the new start menu", "Content": "Revert Start Menu layout",
"Description": "Uses vivetool to revert to the original start menu from 24H2.", "Description": "Bring back the old Start Menu layout from before the gradual rollout of the new one in 25H2.",
"category": "z__Advanced Tweaks - CAUTION", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"InvokeScript": [ "InvokeScript": [
" "
@@ -120,7 +120,7 @@
Write-Host 'New start menu reverted please restart your computer to take effect' Write-Host 'New start menu reverted please restart your computer to take effect'
" "
], ],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/revertstartmenu" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/revertstartmenu"
}, },
"WPFTweaksDisableStoreSearch": { "WPFTweaksDisableStoreSearch": {
"Content": "Disable Microsoft Store search results", "Content": "Disable Microsoft Store search results",

View File

@@ -1,13 +1,13 @@
--- ---
title: "Revert the new start menu" title: "Revert Start Menu layout"
description: "" description: ""
--- ---
```json {filename="config/tweaks.json",linenos=inline,linenostart=90} ```json {filename="config/tweaks.json",linenos=inline,linenostart=90}
"WPFTweaksRevertStartMenu": { "WPFTweaksRevertStartMenu": {
"Content": "Revert the new start menu", "Content": "Revert Start Menu layout",
"Description": "Uses vivetool to revert to the original start menu from 24H2.", "Description": "Bring back the old Start Menu layout from before the gradual rollout of the new one in 25H2.",
"category": "z__Advanced Tweaks - CAUTION", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"InvokeScript": [ "InvokeScript": [
" "

View File

@@ -49,8 +49,13 @@ function Invoke-WinUtilISOMountAndVerify {
Set-WinUtilProgressBar -Label "Mounting ISO..." -Percent 10 Set-WinUtilProgressBar -Label "Mounting ISO..." -Percent 10
try { try {
$diskImage = Mount-DiskImage -ImagePath $isoPath -PassThru -ErrorAction Stop Mount-DiskImage -ImagePath $isoPath -ErrorAction Stop | Out-Null
$driveLetter = ($diskImage | Get-Volume).DriveLetter + ":"
do {
Start-Sleep -Milliseconds 500
} until ((Get-DiskImage -ImagePath $isoPath | Get-Volume).DriveLetter)
$driveLetter = (Get-DiskImage -ImagePath $isoPath | Get-Volume).DriveLetter + ":"
Write-Win11ISOLog "Mounted at drive $driveLetter" Write-Win11ISOLog "Mounted at drive $driveLetter"
Set-WinUtilProgressBar -Label "Verifying ISO contents..." -Percent 30 Set-WinUtilProgressBar -Label "Verifying ISO contents..." -Percent 30
@@ -144,6 +149,7 @@ function Invoke-WinUtilISOModify {
Write-Win11ISOLog "Selected edition: $selectedEditionName (Index $selectedWimIndex)" Write-Win11ISOLog "Selected edition: $selectedEditionName (Index $selectedWimIndex)"
$sync["WPFWin11ISOModifyButton"].IsEnabled = $false $sync["WPFWin11ISOModifyButton"].IsEnabled = $false
$sync["Win11ISOModifying"] = $true
$existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue | $existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue |
Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1
@@ -303,6 +309,7 @@ function Invoke-WinUtilISOModify {
}) })
} finally { } finally {
Start-Sleep -Milliseconds 800 Start-Sleep -Milliseconds 800
$sync["Win11ISOModifying"] = $false
$sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{ $sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{
$sync.progressBarTextBlock.Text = "" $sync.progressBarTextBlock.Text = ""
$sync.progressBarTextBlock.ToolTip = "" $sync.progressBarTextBlock.ToolTip = ""
@@ -323,6 +330,11 @@ function Invoke-WinUtilISOModify {
function Invoke-WinUtilISOCheckExistingWork { function Invoke-WinUtilISOCheckExistingWork {
if ($sync["Win11ISOContentsDir"] -and (Test-Path $sync["Win11ISOContentsDir"])) { return } if ($sync["Win11ISOContentsDir"] -and (Test-Path $sync["Win11ISOContentsDir"])) { return }
# Check if ISO modification is currently in progress
if ($sync["Win11ISOModifying"]) {
return
}
$existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue | $existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue |
Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1

View File

@@ -333,27 +333,7 @@ $scripts = @(
reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_TrackDocs /t REG_DWORD /d 0 /f; reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_TrackDocs /t REG_DWORD /d 0 /f;
}; };
{ {
Add-Type -TypeDefinition @" Restart-Computer -Force;
using System;
using System.Runtime.InteropServices;
public class Win32Broadcast {
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessageTimeout(
IntPtr hWnd,
uint Msg,
IntPtr wParam,
string lParam,
uint fuFlags,
uint uTimeout,
out IntPtr lpdwResult);
}
"@;
[Win32Broadcast]::SendMessageTimeout( [IntPtr]0xffff, 0x1A, [IntPtr]::Zero, 'ImmersiveColorSet', 0x2, 100, [ref]([IntPtr]::Zero) );
};
{
Get-Process -Name 'explorer' -ErrorAction 'SilentlyContinue' | Where-Object -FilterScript {
$_.SessionId -eq ( Get-Process -Id $PID ).SessionId;
} | Stop-Process -Force;
}; };
); );
@@ -434,15 +414,13 @@ $scripts = @(
</File> </File>
<File path="C:\Windows\Setup\Scripts\FirstLogon.ps1"> <File path="C:\Windows\Setup\Scripts\FirstLogon.ps1">
$scripts = @( $scripts = @(
{
cmd.exe /c "rmdir C:\Windows.old";
};
{ {
Remove-Item -LiteralPath @( Remove-Item -LiteralPath @(
'C:\Windows\Panther\unattend.xml'; 'C:\Windows\Panther\unattend.xml';
'C:\Windows\Panther\unattend-original.xml'; 'C:\Windows\Panther\unattend-original.xml';
'C:\Windows\Setup\Scripts\Wifi.xml'; 'C:\Windows\Setup\Scripts\Wifi.xml';
) -Force -ErrorAction 'SilentlyContinue' -Verbose; 'C:\Windows.old';
) -Recurse -Force -ErrorAction 'SilentlyContinue';
}; };
{ {
reg.exe delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /f; reg.exe delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /f;
@@ -457,6 +435,14 @@ $scripts = @(
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\UsoSvc" /v Start /t REG_DWORD /d 2 /f; reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\UsoSvc" /v Start /t REG_DWORD /d 2 /f;
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v Start /t REG_DWORD /d 3 /f; reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v Start /t REG_DWORD /d 3 /f;
}; };
{
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Education" /f;
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start" /f;
reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer" /f;
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Education" /v IsEducationEnvironment /t REG_DWORD /d 1 /f;
reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v HideRecommendedSection /t REG_DWORD /d 1 /f;
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start" /v HideRecommendedSection /t REG_DWORD /d 1 /f;
};
{ {
$recallFeature = Get-WindowsOptionalFeature -Online -ErrorAction SilentlyContinue | Where-Object { $_.State -eq 'Enabled' -and $_.FeatureName -like 'Recall' }; $recallFeature = Get-WindowsOptionalFeature -Online -ErrorAction SilentlyContinue | Where-Object { $_.State -eq 'Enabled' -and $_.FeatureName -like 'Recall' };
if( $recallFeature ) { if( $recallFeature ) {
@@ -464,7 +450,6 @@ $scripts = @(
} }
}; };
{ {
try {
$viveDir = Join-Path $env:TEMP 'ViVeTool'; $viveDir = Join-Path $env:TEMP 'ViVeTool';
$viveZip = Join-Path $env:TEMP 'ViVeTool.zip'; $viveZip = Join-Path $env:TEMP 'ViVeTool.zip';
Invoke-WebRequest 'https://github.com/thebookisclosed/ViVe/releases/download/v0.3.4/ViVeTool-v0.3.4-IntelAmd.zip' -OutFile $viveZip; Invoke-WebRequest 'https://github.com/thebookisclosed/ViVe/releases/download/v0.3.4/ViVeTool-v0.3.4-IntelAmd.zip' -OutFile $viveZip;
@@ -472,7 +457,6 @@ $scripts = @(
Remove-Item -Path $viveZip -Force; Remove-Item -Path $viveZip -Force;
Start-Process -FilePath (Join-Path $viveDir 'ViVeTool.exe') -ArgumentList '/disable /id:47205210' -Wait -NoNewWindow; Start-Process -FilePath (Join-Path $viveDir 'ViVeTool.exe') -ArgumentList '/disable /id:47205210' -Wait -NoNewWindow;
Remove-Item -Path $viveDir -Recurse -Force; Remove-Item -Path $viveDir -Recurse -Force;
} catch {}
}; };
{ {
if( (Get-BitLockerVolume -MountPoint $Env:SystemDrive).ProtectionStatus -eq 'On' ) { if( (Get-BitLockerVolume -MountPoint $Env:SystemDrive).ProtectionStatus -eq 'On' ) {