From 6759ce8a6391be093f1e710fbf063325fdb4a1c5 Mon Sep 17 00:00:00 2001 From: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Date: Sun, 21 Dec 2025 15:02:29 +0100 Subject: [PATCH] Force Panther Setup instead of MoSetup This will increase reliability and performance. Screw the Windows 8 installer, we're back with what was used on Windows 7! Anyway, there are problems with the new installer: 1. It is slow at everything. Some people did benchmarks of both installers. MoSetup lost to Panther (ofc). Source: https://www.reddit.com/r/Windows11/comments/1kmjavl/i_made_a_small_test_comparing_which_one_installs/ 2. It is unreliable. The "Install driver to show hardware" screen that appears in some systems AND in PXE/WDS for Server 2025 is possibly, and simply, due to Setup not being able to find the install image. From BlueBox.log in MoSetup: ... 2025-12-21 10:05:43: Creating path (with ACL): [X:\$WINDOWS.~BT]... 2025-12-21 10:05:43: Creating path: [X:\$WINDOWS.~BT\Sources]... 2025-12-21 10:05:43: CBootScenarioCtrl::PopulateWorkingDir: Install.wim/swm/esd was not found! ... Other contributors in the CTT community stated similar unreliability with borked installs. I'm pretty sure this change will benefit everyone. We'll see how long it lasts before Microsoft f's it up. --- functions/microwin/Invoke-Microwin.ps1 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/functions/microwin/Invoke-Microwin.ps1 b/functions/microwin/Invoke-Microwin.ps1 index 39e91963..c70106dc 100644 --- a/functions/microwin/Invoke-Microwin.ps1 +++ b/functions/microwin/Invoke-Microwin.ps1 @@ -90,8 +90,11 @@ public class PowerManagement { } } - $imgVersion = (Get-WindowsImage -ImagePath $mountDir\sources\install.wim -Index $index).Version + $imgVersion = (Get-WindowsImage -ImagePath "$mountDir\sources\install.wim" -Index $index).Version + # Windows Setup is the second index in the boot image. + $bootVersion = (Get-WindowsImage -ImagePath "$mountDir\sources\boot.wim" -Index 2).Version Write-Host "The Windows Image Build Version is: $imgVersion" + Write-Host "The WinPE boot image Build Version is: $bootVersion" # Detect image version to avoid performing MicroWin processing on Windows 8 and earlier if ((Microwin-TestCompatibleImage $imgVersion $([System.Version]::new(10,0,10240,0))) -eq $false) { @@ -498,6 +501,12 @@ public class PowerManagement { reg add "HKLM\zSYSTEM\Setup\MoSetup" /v "AllowUpgradesWithUnsupportedTPMOrCPU" /t REG_DWORD /d 1 /f # Fix Computer Restarted Unexpectedly Error on New Bare Metal Install reg add "HKLM\zSYSTEM\Setup\Status\ChildCompletion" /v "setup.exe" /t REG_DWORD /d 3 /f + + # Force old Setup on 24H2+ WinPE images due to personal preference; it's simply faster and + # more reliable than MoSetup. I simply can't stand that new setup system. + if ((Microwin-TestCompatibleImage $bootVersion $([System.Version]::new(10,0,26040,0))) -and (Test-Path -Path "$scratchDir\sources\setup.exe" -PathType Leaf)) { + reg add "HKLM\zSYSTEM\Setup" /f /v "CmdLine" /t REG_SZ /d "\sources\setup.exe" + } } catch { Write-Error "An unexpected error occurred: $_" } finally {