From 87ea9e0bc7d1be0cbc945386f48acf86fc56716b Mon Sep 17 00:00:00 2001 From: AveYo Date: Mon, 25 Oct 2021 03:34:02 +0300 Subject: [PATCH] reliability milestone 11 22000.258 --- MCT/No_11_Setup_Checks_on_Boot.cmd | 19 - MCT/No_11_Setup_Checks_v1.cmd | 29 - MCT/No_11_Setup_Checks_v2.cmd | 25 - MCT/auto.cmd | 22 +- MCT/no_11_setup_checks_on_dynamic_update.cmd | 26 + MediaCreationTool.bat | 624 ++++++++++--------- README.md | 40 +- preview.png | Bin 75819 -> 93711 bytes 8 files changed, 384 insertions(+), 401 deletions(-) delete mode 100644 MCT/No_11_Setup_Checks_on_Boot.cmd delete mode 100644 MCT/No_11_Setup_Checks_v1.cmd delete mode 100644 MCT/No_11_Setup_Checks_v2.cmd create mode 100644 MCT/no_11_setup_checks_on_dynamic_update.cmd diff --git a/MCT/No_11_Setup_Checks_on_Boot.cmd b/MCT/No_11_Setup_Checks_on_Boot.cmd deleted file mode 100644 index 9e1c70e..0000000 --- a/MCT/No_11_Setup_Checks_on_Boot.cmd +++ /dev/null @@ -1,19 +0,0 @@ -@title No 11 Setup Checks on Boot & set args=%1& echo off -::# run from the root of the USB drive or extracted ISO files to remove all setup checks from winsetup.dll -::# can finally boot from new Windows 11 media inside VirtualBox - -pushd "%~dp0" & if defined args pushd %args% & if not exist sources\boot.wim popd -if not exist sources\boot.wim echo; SOURCES\BOOT.WIM NOT FOUND! & timeout /t 5 & exit/b -fltmc>nul || (set _="%~f0" %* & powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\" & exit/b) -dism /cleanup-wim & set BOOT=%SystemDrive%\ESD\BOOT& mkdir %SystemDrive%\ESD\BOOT >nul 2>nul -dism /mount-wim /wimfile:sources\boot.wim /index:2 /mountdir:%BOOT% & (set DO=commit) & if exist %ini% (set DO=discard) -pushd %BOOT%\sources & takeown /f winsetup.dll /a >nul & icacls winsetup.dll /grant administrators:f >nul -set c1= $b = [System.IO.File]::ReadAllBytes('winsetup.dll'); $h = [System.BitConverter]::ToString($b)-replace'-' -set c2= $s = [BitConverter]::ToString([Text.Encoding]::Unicode.GetBytes('Module_Init_HWRequirements'))-replace'-' -set c3= $i = ($h.IndexOf($s)/2); $r = [Text.Encoding]::Unicode.GetBytes('Module_Init_GatherDiskInfo'); $l = $r.Length -set c4= if ($i -gt 1) {for ($k=0;$k -lt $l;$k++) {$b[$i+$k] = $r[$k]} ; [System.IO.File]::WriteAllBytes('winsetup.dll',$b)} -if not exist winsetup.dll (set c1=&set c2=&set c3=&set c4=) else copy /y winsetup.dll "%temp%\" >nul 2>nul -powershell -nop -c %c1%;%c2%;%c3%;%c4%; & popd & if defined c1 fc "%BOOT%\sources\winsetup.dll" "%TEMP%\winsetup.dll" -dism /unmount-wim /mountdir:%BOOT% /commit & rmdir /s /q %BOOT% >nul 2>nul & del /f /q sources\appraiserres.dll>nul -if not defined args choice /c EX1T -:: \ No newline at end of file diff --git a/MCT/No_11_Setup_Checks_v1.cmd b/MCT/No_11_Setup_Checks_v1.cmd deleted file mode 100644 index b17cf49..0000000 --- a/MCT/No_11_Setup_Checks_v1.cmd +++ /dev/null @@ -1,29 +0,0 @@ -@(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit/b -#:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script -#:: v1 of the toggle script works perfectly fine for most people with a non-botched windows installation -#:: uses a fast, fileless wmi subscription to watch for the Virtual Disk Service Loader process running during setup, -#:: then launches a cmd erase of appraiserres.dll - that's all there is to it, no rocket science, just a great implementation -#:: you probably don't need to have it installed at all times - just when doing feature updates or manual setup within windows -#:: hence the on off toggle just by running the script again - -$_Paste_in_Powershell = { - $N = 'Skip TPM Check on Dynamic Update'; $off = $false - $0 = sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 - $0 = ri 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' -force -ea 0 - $0 = sc.exe config Winmgmt start= demand; sp HKLM:\SOFTWARE\Microsoft\Wbem 'Enable Costly Providers' 0 -type dword -force -ea 0 - $B = gwmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 - $C = gwmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -Filter "Name='$N'" -ea 0 - $F = gwmi -Class __EventFilter -NameSpace 'root\subscription' -Filter "Name='$N'" -ea 0 - if ($B) { $B | rwmi; $off = $true } ; if ($C) { $C | rwmi; $off = $true } ; if ($F) { $F | rwmi; $off = $true } - if ($off) { write-host -fore 0xf -back 0xd "`n $N [REMOVED] run again to install "; timeout /t 5; return } - $P = "$([environment]::SystemDirectory)\cmd.exe"; $T = "$P /q $N (c) AveYo, 2021 /d /rerase appraiserres.dll /f /s /q" - $D = "$($P[0]):\`$WINDOWS.~BT"; $Q = "SELECT SessionID from Win32_ProcessStartTrace WHERE ProcessName='vdsldr.exe'" - $F = swmi -Class __EventFilter -NameSpace 'root\subscription' -args @{ - Name = $N; EventNameSpace = 'root\cimv2'; QueryLanguage = 'WQL'; Query = $Q} -PutType 2 -ea 0 - $C = swmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -args @{ - Name = $N; WorkingDirectory = $D; ExecutablePath = $P; CommandLineTemplate = $T; Priority = 128} -PutType 2 -ea 0 - $B = swmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -args @{Filter=$F;Consumer=$C} -PutType 2 -ea 0 - write-host -fore 0xf -back 0x2 "`n $N [INSTALLED] run again to remove "; timeout /t 5 -} ; start -verb runas powershell -args "-nop -c & {`n`n$($_Paste_in_Powershell-replace'"','\"')}" -$_Press_Enter -#:: \ No newline at end of file diff --git a/MCT/No_11_Setup_Checks_v2.cmd b/MCT/No_11_Setup_Checks_v2.cmd deleted file mode 100644 index 58430a0..0000000 --- a/MCT/No_11_Setup_Checks_v2.cmd +++ /dev/null @@ -1,25 +0,0 @@ -@(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit/b -#:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script -#:: v2 of the toggle script comes to the aid of outliers for whom v1 did not work due to various reasons (broken/blocked/slow wmi) -#:: uses IFEO instead to attach to the same Virtual Disk Service Loader process running during setup, then launches a cmd erase -#:: of appraiserres.dll - but it must also do some ping-pong renaming of the exe in system32\11 - great implementation nonetheless -#:: (for simplicity did not use powershell invoking CreateProcess and DebugActiveProcessStop to overcome IFEO constrains) -#:: in v2 the cmd window will briefly flash while running diskmgmt - so it is not "better" per-se. just more compatible / reactive -#:: you probably don't need to have it installed at all times - just when doing feature updates or manual setup within windows -#:: hence the on off toggle just by running the script again - -$_Paste_in_Powershell = { - $N = 'Skip TPM Check on Dynamic Update' - $0 = sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 - $B = gwmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 - $C = gwmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -Filter "Name='$N'" -ea 0 - $F = gwmi -Class __EventFilter -NameSpace 'root\subscription' -Filter "Name='$N'" -ea 0 - if ($B) { $B | rwmi } ; if ($C) { $C | rwmi } ; if ($F) { $F | rwmi } - $C = "cmd /q $N (c) AveYo, 2021 /d/x/r>nul (erase /f/s/q %systemdrive%\`$windows.~bt\appraiserres.dll" - $C+= '&md 11&cd 11&ren vd.exe vdsldr.exe&robocopy "../" "./" "vdsldr.exe"&ren vdsldr.exe vd.exe&start vd -Embedding)&rem;' - $K = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' - if (test-path $K) {ri $K -force -ea 0; write-host -fore 0xf -back 0xd "`n $N [REMOVED] run again to install "} - else {$0=ni $K -force -ea 0;sp $K 'Debugger' $C -force; write-host -fore 0xf -back 0x2 "`n $N [INSTALLED] run again to remove "} - timeout /t 5 } ; start -verb runas powershell -args "-nop -c & {`n`n$($_Paste_in_Powershell-replace'"','\"')}" -$_Press_Enter -#:: \ No newline at end of file diff --git a/MCT/auto.cmd b/MCT/auto.cmd index 7ab6f97..7b58b8a 100644 --- a/MCT/auto.cmd +++ b/MCT/auto.cmd @@ -9,7 +9,7 @@ for %%i in ("x86\" "x64\" "") do if exist "%%~isources\setupprep.exe" set "dir=% pushd "%dir%sources" || (echo "%dir%sources" & timeout /t 5 & exit/b) ::# elevate so that workarounds can be set -fltmc>nul || (set _="%~f0" %*& powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\" &exit/b) +fltmc>nul || (set _="%~f0" %*& powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\"& exit/b) ::# No 11 Setup Checks on Dynamic Update call :no_11_setup_checks_on_dynamic_update @@ -47,6 +47,7 @@ if /i "CoreCountrySpecific" == "%EditionID%" if %vol% == 1 (call :rename Profess if /i "CoreSingleLanguage" == "%EditionID%" if %vol% == 1 (call :rename Professional) if /i "Core" == "%EditionID%" if %vol% == 1 (call :rename Professional) if /i "CoreN" == "%EditionID%" if %vol% == 1 (call :rename ProfessionalN) +if /i "Ultimate" == "%EditionID%" (call :rename Professional) if /i "" == "%EditionID%" (call :rename Professional) :setup @@ -63,12 +64,15 @@ set NT="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" reg delete %NT% /v ProductName /f /reg:64 & reg add %NT% /v EditionID /d "%~1" /f /reg:64 ) >nul 2>nul &exit/b -:no_11_setup_checks_on_dynamic_update - also available as standalone toggle script in the Downloads\MCT folder -set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'skip\:tpm.*')[1];" &exit/b skip:tpm - $S = gi -force 'setupprep.exe' -ea 0; if ($S.VersionInfo.FileBuildPart -lt 22000) {return} #:: abort if not 11 media - $C = "cmd /q $N (c) AveYo, 2021 /d/x/r>nul (erase /f/s/q %systemdrive%\`$windows.~bt\appraiserres.dll" - $C+= '&md 11&cd 11&ren vd.exe vdsldr.exe&robocopy "../" "./" "vdsldr.exe"&ren vdsldr.exe vd.exe&start vd -Embedding)&rem;' +:no_11_setup_checks_on_dynamic_update - also available as standalone toggle script in the MCT folder +set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'#[:]skip[:]tpm.*')[1];" &exit/b #:skip:tpm + $3 = @(); $I = gi -force 'setupprep.exe' -ea 0; if ($I.VersionInfo.FileBuildPart -lt 22000) {return} #:: abort if not 11 media + $3+= ''' Skip TPM Check on Dynamic Update (c) AveYo 2021 : v3 IFEO-based with no flashing cmd window' + $3+= 'C = "cmd /q AveYo /d/x/r erase /f/s/q %systemdrive%\$windows.~bt\appraiserres.dll&"' + $3+= 'M = "md 11&cd 11&ren vd.exe vdsldr.exe &robocopy ""../"" ""./"" ""vdsldr.exe""&ren vdsldr.exe vd.exe&"' + $3+= 'D = "start vd.exe -Embedding" : CreateObject("WScript.Shell").Run C & M & D, 0, False' + $V = "wscript 11.vbs //B //T:5"; $S = [environment]::SystemDirectory $K = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' - $0 = ni $K -force -ea 0; sp $K Debugger $C -force -ea 0 - $0 = sp HKLM:\SYSTEM\Setup\MoSetup 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 -#:: skip:tpm + ni $K -force -ea 0 >''; sp $K 'Debugger' $V -force -ea 0; [io.file]::WriteAllText("$S\11.vbs", $3-join"`r`n") + sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 >'' +#:: #:skip:tpm diff --git a/MCT/no_11_setup_checks_on_dynamic_update.cmd b/MCT/no_11_setup_checks_on_dynamic_update.cmd new file mode 100644 index 0000000..c363b20 --- /dev/null +++ b/MCT/no_11_setup_checks_on_dynamic_update.cmd @@ -0,0 +1,26 @@ +@(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit/b +#:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script +#:: v3 of the toggle script hides the flashing cmd window via vbs +#:: uses IFEO to attach to Virtual Disk Service Loader process running during setup, then erases appraiserres.dll +#:: it must also do some ping-pong renaming of vdsldr in system32\11 +#:: you probably don't need to have it installed at all times - just when doing feature updates or manual setup within windows +#:: hence the on off toggle just by running the script again + +$_Paste_in_Powershell = { + $N = "Skip TPM Check on Dynamic Update"; $3 = @("' $N (c) AveYo 2021 : v3 IFEO-based with no flashing cmd window") + $3+= 'C = "cmd /q AveYo /d/x/r erase /f/s/q %systemdrive%\$windows.~bt\appraiserres.dll&"' + $3+= 'M = "md 11&cd 11&ren vd.exe vdsldr.exe &robocopy ""../"" ""./"" ""vdsldr.exe""&ren vdsldr.exe vd.exe&"' + $3+= 'D = "start vd.exe -Embedding" : CreateObject("WScript.Shell").Run C & M & D, 0, False' + $U = 'root\subscription'; $C = gwmi -Class CommandLineEventConsumer -Namespace $U -Filter "Name='$N'" -ea 0 + $B = gwmi -Class __FilterToConsumerBinding -Namespace $U -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 + $F = gwmi -Class __EventFilter -NameSpace $U -Filter "Name='$N'" -ea 0; $B,$C,$F |% {$_|rwmi -ea 0} # undo v1 + sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 >'' + $K = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' + $V = "wscript 11.vbs //B //T:5"; $S = [environment]::SystemDirectory; if (test-path $K) { + ri $K -force -ea 0 >''; del "$S\11.vbs" -force -ea 0; rmdir "$S\11" -force -re -ea 0 + write-host -fore 0xf -back 0xd "`n $N v3 [REMOVED] run again to install " } else { + ni $K -force -ea 0 >''; sp $K Debugger $V -force -ea 0; [io.file]::WriteAllText("$S\11.vbs", $3-join"`r`n") + write-host -fore 0xf -back 0x2 "`n $N v3 [INSTALLED] run again to remove " } ; timeout /t 5 +} ; start -verb runas powershell -args "-nop -c & {`n`n$($_Paste_in_Powershell-replace'"','\"')}" +$_Press_Enter +#:: diff --git a/MediaCreationTool.bat b/MediaCreationTool.bat index 4bed344..1a5b1b6 100644 --- a/MediaCreationTool.bat +++ b/MediaCreationTool.bat @@ -1,11 +1,11 @@ @goto :start MediaCreationTool.bat - latest at pastebin.com/bBw0Avc4 or github.com/AveYo/MediaCreationTool.bat :Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! -::Nothing but Microsoft-hosted source links and no third-party tools - script just configures a xml and starts MCT -::Ingenious support for business editions (Enterprise / VL) selecting language, x86, x64 or AiO inside the MCT GUI -::Changelog: 2021.10.20 -:: create generic iso if no edition arg; use Downloads folder; no 11 setup checks on boot in VirtualBox; fixes #2 -:: refactored around Windows 11 MCT; minimise while waiting MCT; unified 7 - 11 appearance -:: 11: 22000.194 / 21H2: 19044.1165 / 21H1: 19043.928 / 20H2: 19042.1052 / 2004: 19041.572 / 1909: 18363.1139 +:: Nothing but Microsoft-hosted source links and no third-party tools; script just configures an xml and starts MCT +:: Ingenious support for business editions (Enterprise / VL) selecting language, x86, x64 or AiO inside the MCT GUI +:: Changelog: 2021.10.23 +:: more intuitive presets; 11 setup override via AutoUnattend.xml or via boot.wim (for VirtualBox 5.x) with FIX arg +:: only reliable ui automation; enhanced script output; make generic media if no edition arg; use Downloads folder +:: 11: 22000.258 / 21H2: 19044.1165 / 21H1: 19043.928 / 20H2: 19042.1052 / 2004: 19041.572 / 1909: 18363.1139 ::# uncomment to skip gui dialog for MCT choice: 1507 to 2109 / 11 - or rename script: "21H2 MediaCreationTool.bat" rem set MCT=2110 @@ -34,8 +34,12 @@ rem set/a NO_UPDATE=1 ::# uncomment to disable Windows.old undo & save space - or rename script: "no_undo auto 20H2 MediaCreationTool.bat" rem set/a NO_UNDO=1 -::# uncomment to not add $OEM$ / PID.txt / auto.cmd - or rename script: "iso no_oem 11 Pro MediaCreationTool.bat" -rem set/a NO_OEM=1 +::# uncomment to not add $OEM$, PID.txt, auto.cmd, AutoUnattend.xml - or rename script: "def MediaCreationTool.bat" +rem set/a DEF=1 + +::# uncomment to disable boot.wim 11 setup checks in VirtualBox 5.x - or rename script: "fix MediaCreationTool.bat" +::# optional, if default registry overrides of TPM, CPU, RAM etc. applied via AutoUnattend.xml do not work +rem set/a FIX=1 ::# comment to not use recommended windows setup options that give the least amount of issues when doing upgrades set OPTIONS=%OPTIONS% /Compat IgnoreWarning /MigrateDrivers All /ResizeRecoveryPartition Disable /ShowOOBE None @@ -53,9 +57,9 @@ set/a INSERT_BUSINESS=1 set VERSIONS=1507,1511,1607,1703,1709,1803,1809,1903,1909,20H1,20H2,21H1,21H2,11 set dV=14 -::# MCT Preset choice dialog items and default-index [Create USB] -set PRESETS=Auto Setup,Create ISO,Create USB,Select in MCT -set dP=2 +::# MCT Preset choice dialog items and default-index [Select in MCT] +set PRESETS=Auto Upgrade,Make ISO,Make USB,Select,MCT Defaults +set dP=4 :begin call :reg_query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentBuildNumber" OS_VERSION @@ -77,7 +81,7 @@ if defined AUTO set/a PRE=1 & if not defined MCT set/a MCT=%dV% ::# parse ISO from script name or commandline - starts media creation with selection for %%O in (%~n0 %*) do if /i %%O equ iso set/a ISO=1 -if defined ISO if not defined AUTO set/a PRE=2 & if defined MCT set/a CREATE=1 +if defined ISO set/a PRE=2 & if defined AUTO (set AUTO=) ::# parse EDITION from script name or commandline - accept one of the staged editions in MCT install.esd - see sources\product.ini set _=%EDITION% %~n0 %* & rem ::# also accepts the alternative names: Home, HomeN, Pro, ProN, Edu, EduN @@ -105,10 +109,13 @@ if defined NO_UPDATE (set UPDATE=/DynamicUpdate Disable) else (set UPDATE=/Dynam for %%O in (%~n0 %*) do if /i %%O equ no_undo set "NO_UNDO=1" if defined NO_UNDO (set UNDO=/Uninstall Disable) else (set UNDO=) -::# parse NO_OEM from script name or commandline - dont add $OEM$\, PID.txt, auto.cmd, Skip TPM (if applicable) to created media -for %%O in (%~n0 %*) do if /i %%O equ no_oem set "NO_OEM=1" +::# parse DEF from script name or commandline - dont add $OEM$\, PID.txt, auto.cmd, Skip TPM (if applicable) to created media +for %%O in (%~n0 %*) do if /i %%O equ def set "DEF=1" ::# hint: setup can run a tweaking script before first logon, if present at $OEM$\$$\Setup\Scripts\ setupcomplete.cmd or OOBE.cmd +::# parse FIX from script name or commandline - disable boot.wim 11 setup checks; use when registry override fail (VirtualBox 5.x) +for %%O in (%~n0 %*) do if /i %%O equ fix if not defined DEF set "FIX=yes" + ::# parse HIDE from script name or commandline - hide script windows while awaiting MCT processing (new default is to minimise) set hide=2& (for %%/ in (%~n0 %*) do if /i %%/ equ hide set hide=1) @@ -124,32 +131,34 @@ if not defined VID (set VID=%OS_VID%) (set MEDIA_EDITION=%MEDIA_EDITION:EnterpriseS=Enterprise%) ::# get previous gui selection if self elevated and skip to choice -for %%O in (%*) do for %%P in (1 2 3) do if %%~nO gtr 0 if %%~nO lss 15 if %%~xO. equ .%%P. set/a PRE=%%P& set/a MCT=%%~nO +for %%O in (%*) do for %%P in (1 2 3 4) do if %%~nO gtr 0 if %%~nO lss 15 if %%~xO. equ .%%P. set/a PRE=%%P& set/a MCT=%%~nO if defined PRE if defined MCT goto choice-%MCT% ::# write auto media preset hint -%<%:f0 " Detected Media "%>>% & %<%:5f " %VID% "%>>% -%<%:6f " %MEDIA_LANGCODE% "%>>% & %<%:9f " %MEDIA_EDITION% "%>>% & %<%:2f " %MEDIA_ARCH% "%>>% -%<%:11 ~%>% & echo; - -%<%:13 "===================================================================================================="%>% -%<%:1b " Auto Setup : MCT gets detected media - script adds any oem files and starts auto.cmd (setupprep)"%>% -%<%:1b " Create ISO : MCT gets detected media and creates ISO : Downloads dir - script adds any oem files"%>% -%<%:1b " [Create USB] : MCT gets detected media and prompts to create USB stick - script adds any oem files"%>% -%<%:1b " Select in MCT : MCT asks confirmation for everything - script doesnt touch media, quits straightway"%>% -%<%:13 "===================================================================================================="%>% -%<%:13 "oem files = $OEM$ dir (if found), PID.txt, auto.cmd, Skip TPM (if applicable) use NO_OEM to disable"%>% & echo; +%<%:f0 " Detected Media "%>>% & if defined MCT %<%:5f " %VID% "%>>% +%<%:6f " %MEDIA_LANGCODE% "%>>% & %<%:9f " %MEDIA_EDITION% "%>>% & %<%:2f " %MEDIA_ARCH% "%>% + +%<%:17 "-----------------------------------------------------------------------------------"%>% +%<%:1f "1 Auto Upgrade : MCT gets Detected Media, script assists setupprep for upgrading "%>% +%<%:1f "2 Make ISO : MCT gets Detected Media, script assists making ISO in Downloads "%>% +%<%:1f "3 Make USB : MCT gets Detected Media, script assists making USB stick target "%>% +%<%:1f "4 Select : MCT gets selected Edition, Language, Arch - on specified target "%>% +%<%:1f "5 MCT Defaults : MCT runs unassisted making Selected Media without any overrides "%>% +%<%:17 "-----------------------------------------------------------------------------------"%>% +%<%:17 "1-4 adds to media: PID.txt, $OEM$ dir, auto.cmd & AutoUnattend.xml setup overrides "%>% +%<%:17 " disable via DEF arg "%>% ::# show more responsive MCT + PRE pseudo-menu dialog or separate choice dialog instances if either MCT or PRE are set -if "%MCT%%PRE%"=="" call :choice.2x MCT "%VERSIONS%" %dV% "MCT Version" PRE "%PRESETS%" %dP% "MCT Preset" 11 white 0x005a9e 320 -if %MCT%0 lss 1 if %PRE%0 gtr 1 call :choice MCT "%VERSIONS%" %dV% "MCT Version" 11 white 0x005a9e 320 -if %MCT%0 gtr 1 if %PRE%0 lss 1 call :choice PRE "%PRESETS%" %dP% "MCT Preset" 11 white 0x005a9e 320 +if "%MCT%%PRE%"=="" call :choices2 MCT "%VERSIONS%" %dV% "MCT Version" PRE "%PRESETS%" %dP% "MCT Preset" 11 white 0x005a9e 320 +if %MCT%0 lss 1 if %PRE%0 gtr 1 call :choices MCT "%VERSIONS%" %dV% "MCT Version" 11 white 0x005a9e 320 +if %MCT%0 gtr 1 if %PRE%0 lss 1 call :choices PRE "%PRESETS%" %dP% "MCT Preset" 11 white 0x005a9e 320 if %MCT%0 gtr 1 if %PRE%0 lss 1 goto choice-0 = cancel goto choice-%MCT% :choice-14 -set "VER=22000" & set "VID=11" & set "CB=22000.194.210913-1444.co_release_svc_refresh" & set "CT=2021/10/" & set "CC=2.0" +set "VER=22000" & set "VID=11" & set "CB=22000.258.211007-1642.co_release_svc_refresh" & set "CT=2021/10/" & set "CC=2.0" set "CAB=download.microsoft.com/download/0/d/b/0db6dfde-48c9-4d70-904e-462b46d8a473/products_20211004.cab" +set "CAB=download.microsoft.com/download/5/1/f/51fdebf9-89b1-4a87-92cd-0ea73e290c5c/products_20211019.cab" set "EXE=software-download.microsoft.com/download/pr/888969d5-f34g-4e03-ac9d-1f9786c69161/MediaCreationToolW11.exe" goto process ::# windows 11 : usability and ui downgrade, and even more ChrEdge bloat - release @@ -247,7 +256,7 @@ goto process ::# fastest for potato PCs set MCT=%dv%& set PRE=%dP%& goto choice-%dV% :choice-0 -%<%:0c " CANCELED "%>% & timeout /t 3 >nul & EXIT/B +%<%:0c " CANCELED "%>% & timeout /t 3 >nul & exit/b :start unified console appearance under 7 - 11 @echo off& title MCT& set __COMPAT_LAYER=Installer& chcp 437 >nul& set set=& for %%O in (%*) do if /i %%O equ set set set=1 @@ -267,38 +276,40 @@ if not defined set for %%O in ("HKCU\Console\MCT") do ( reg add %%O /v LineSelection /d 0x0001 /t reg_dword /f & reg add %%O /v CtrlKeyShortcutsDisabled /d 0 /t reg_dword /f reg add %%O /v WindowSize /d %WSize% /t reg_dword /f & reg add %%O /v ScreenBufferSize /d %BSize% /t reg_dword /f reg add %%O /v FontSize /d 0x00100008 /t reg_dword /f & reg add %%O /v FaceName /d "Consolas" /t reg_sz /f ) >nul 2>nul -::# reload from Downloads folder -call :reg_query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "{374DE290-123F-4565-9164-39C4925E467B}" D -set "ROOT=%D%" & set "N=%~nx0" & set "SDRIVE=%SystemDrive%" & set "S=%SystemRoot%" & for %%O in ("%D%") do set "DDRIVE=%%~dO" +::# set path, fix name (x) and reload from Downloads folder +pushd "%~dp0"& set "S=%SystemRoot%"& set "nx0=%~nx0"& call set "nx0=%%nx0:)=]%%"& call set "nx0=%%nx0:(=[%%" set "PATH=%S%\Sysnative;%S%\Sysnative\windowspowershell\v1.0\;%S%\System32;%S%\System32\windowspowershell\v1.0\;%PATH%" -robocopy "%~dp0/" "%ROOT%/" "%~nx0">nul & pushd "%ROOT%" & set "N=%N:(=%" & call set "N=%%N:)=%%" & call rename "%~nx0" "%%N%%" -if not defined set start "MCT" cmd /d/x/rcall "%ROOT%\%N%" %* set& exit +set "ROOT=%CD%"& set "0=%~f0"& if not defined set for /f delims^=^ eol^= %%O in ( +'"powershell -nop -c (new-object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path"') do set "ROOT=%%O" +(if "%~nx0" neq "%nx0%" copy /y "%~nx0" "%nx0%") & robocopy "%~dp0/" "%ROOT%/" "%nx0%" >nul +if not defined set start "MCT" cmd /d/x/rcall "%ROOT%\%nx0%" %* set& exit ::# self-echo top 1-20 lines of script <"%~f0" (set/p \=&for /l %%O in (1,1,20) do set \=& set/p \=& call echo;%%\%%) ::# lean xp+ color macros by AveYo: %<%:af " hello "%>>% & %<%:cf " w\"or\"ld "%>% for single \ / " use .%|%\ .%|%/ \"%|%\" -for /f "delims=:" %%\ in ('echo;prompt $h$s$h:^|cmd/d') do set "|=%%\" &set ">>=\..\c nul &set/p \=%%\%%\%%\%%\%%\%%\%%\nul findstr /c:\ /a" &set ">=%>>%&echo;" &set "|=%|:~0,1%" &set/p \=\"%public%\c" +for /f "delims=:" %%O in ('echo;prompt $h$s$h:^|cmd/d') do set "|=%%O" &set ">>=\..\c nul &set/p O=%%O%%O%%O%%O%%O%%O%%Onul findstr /c:\ /a" &set ">=%>>%&echo;" &set "|=%|:~0,1%" &set/p O=\"%public%\c" ::# (un)define main variables for %%O in (":/") do set "htp=ht%= =%tp%%~O/" & set "hts=ht%= =%tps%%~O/" & rem ::# baffling pastebin url filters.. -for %%O in (OPTIONS NO_UPDATE NO_UNDO NO_OEM PRE AUTO AKEY CREATE ISO EDITION KEY ARCH LANGCODE VID MCT XML CAB EXE) do set "%%O=" +for %%O in (OPTIONS NO_UPDATE NO_UNDO DEF PRE AUTO AKEY CREATE ISO EDITION KEY ARCH LANGCODE VID MCT XML CAB EXE) do set "%%O=" for %%O in (latest_MCT.url) do if not exist %%O (echo;[InternetShortcut]&echo;URL=%hs%github.com/AveYo/MediaCreationTool.bat)>%%O goto Universal MCT ::-------------------------------------------------------------------------------------------------------------------------------- :process -if %PRE%==1 (set "PRESET=Auto Setup" & set AUTO=1& set ISO=& set CREATE=) -if %PRE%==2 (set "PRESET=Create ISO" & set AUTO=& set ISO=1& set CREATE=1) -if %PRE%==3 (set "PRESET=Create USB" & set AUTO=& set ISO=& set CREATE=) -if %PRE%==4 (set "PRESET=Select in MCT" & set AUTO=& set ISO=& set CREATE=& set EDITION=& set LANGCODE=& set ARCH=& set KEY=) -if %PRE%==4 (goto noelevate) else set set=%MCT%.%PRE% +if %PRE% equ 1 (set "PRESET=Auto Upgrade" & set AUTO=1& set ISO=& set FIX=) +if %PRE% equ 2 (set "PRESET=Make ISO" & set AUTO=& set ISO=1) +if %PRE% equ 3 (set "PRESET=Make USB" & set AUTO=& set ISO=) +if %PRE% equ 4 (set "PRESET=Select" & set AUTO=& set ISO=& set EDITION=& set LANGCODE=& set ARCH=& set KEY=) +if %PRE% equ 5 (set "PRESET=MCT Defaults" & set AUTO=& set ISO=& set EDITION=& set LANGCODE=& set ARCH=& set KEY=) +if %PRE% equ 5 (goto noelevate) else set set=%MCT%.%PRE% ::# self elevate if needed for the custom presets to monitor setup progress, passing arguments and last gui choices fltmc>nul || (set _=start "MCT" cmd /d/x/rcall "%~f0" %* %set%& powershell -nop -c start -verb runas cmd \"/d/x/r$env:_\"& exit) -:noelevate 'Select in MCT' does not need it, script just quits straightway +:noelevate 'MCT Defaults' does not need it, script just quits straightaway -::# cleanup Downloads\MCT workfolder +::# cleanup Downloads\MCT workfolder and stale mount files mkdir "%ROOT%\MCT" >nul 2>nul & attrib -R -S -H %ROOT% /D & pushd "%ROOT%\MCT" -del /f /q products.* PID.txt *.ps1 *.cmd *.bat >nul 2>nul +del /f /q products.* PID.txt auto.cmd AutoUnattend.xml >nul 2>nul set/a latest=0 & if exist latest set/p latest=latest & if %latest% lss 20211008 del /f /q products*.* MediaCreationTool*.exe >nul 2>nul @@ -306,8 +317,8 @@ echo,20211008>latest & if %latest% lss 20211008 del /f /q products*.* MediaCreat (set MEDIA_EDITION=%MEDIA_EDITION:Embedded=Enterprise%) (set MEDIA_EDITION=%MEDIA_EDITION:IoTEnterprise=Enterprise%) (set MEDIA_EDITION=%MEDIA_EDITION:EnterpriseS=Enterprise%) -if defined CREATE (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalWorkstation=Enterprise%) -if defined CREATE (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalEducation=Education%) +if %PRE% geq 2 (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalWorkstation=Enterprise%) +if %PRE% geq 2 (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalEducation=Education%) if %VER% leq 16299 (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalWorkstation=Enterprise%) if %VER% leq 16299 (set MEDIA_EDITION=%MEDIA_EDITION:ProfessionalEducation=Education%) if %VER% leq 10586 (set MEDIA_EDITION=%MEDIA_EDITION:Enterprise=Professional%) @@ -342,14 +353,14 @@ if defined MEDIA for %%O in (%MEDIA_KEY%) do (if not defined KEY set KEY=%MEDIA_ if %VER% geq 22000 (set MEDIA_ARCH=x64& if defined ARCH set ARCH=x64) ::# windows 11 vs 10 label quirks - guess I should not have combined them, but then again, 11 is 10 with a ui downgrade ;) -if %VER% geq 22000 (set XI=11& set VIS=21H2) else (set XI=10& set VIS=%VID%) +if %VER% geq 22000 (set X=11& set VIS=21H2) else (set X=10& set VIS=%VID%& set FIX=) ::# refresh screen cls & <"%~f0" (set/p \=&for /l %%O in (1,1,20) do set \=& set/p \=& call echo;%%\%%) -::# write target media label -%<%:f0 " Windows %XI% Version "%>>% & %<%:5f " %VIS% "%>>% & %<%:f1 " %CB% "%>>% -%<%:6f " %MEDIA_LANGCODE% "%>>% & %<%:9f " %MEDIA_CFG% "%>>% & %<%:2f " %MEDIA_ARCH% "%>>% +::# write target media label with lang / edition / arch only for first 3 presets +%<%:f0 " Windows %X% Version "%>>% & %<%:5f " %VIS% "%>>% & %<%:f1 " %CB% "%>>% +if %PRE% leq 3 %<%:6f " %MEDIA_LANGCODE% "%>>% & %<%:9f " %MEDIA_CFG% "%>>% & %<%:2f " %MEDIA_ARCH% "%>>% %<%:11 ~%>% & echo; ::# download MCT and CAB / XML - now trying both secure and insecure @@ -373,7 +384,7 @@ if exist products%VID%.cab del /f /q products%VID%.xml 2>nul if exist products%VID%.cab expand.exe -R products%VID%.cab -F:* . >nul 2>nul echo; & set "err=" & for %%O in (products.xml MediaCreationTool%VID%.exe) do if not exist %%O set err=1 if defined err (%<%:4f " ERROR "%>>% & %<%:0f " %/h% "%>%) else if not defined err %<%:0f " %PRESET% "%>% -if defined err del /f /q products%VID%.* MediaCreationTool%VID%.exe 2>nul & pause & EXIT/B +if defined err del /f /q products%VID%.* MediaCreationTool%VID%.exe 2>nul & pause & exit/b ::# configure products.xml in one go via powershell snippet - most of the MCT fixes happen there call :PRODUCTS_XML @@ -381,20 +392,23 @@ call :PRODUCTS_XML ::# repack XML into CAB makecab products.xml products.cab >nul -::# blue pill: MCT authors untouched media with no preset options or oem files, script quits straightway +::# MCT authors untouched media with no preset options or added files, script quits straightway ::# ==================================================================================================== -if "Select in MCT" equ "%PRESET%" (start MediaCreationTool%VID%.exe /Selfhost& EXIT/B) +if "MCT Defaults" equ "%PRESET%" (start MediaCreationTool%VID%.exe /Selfhost& exit/b) -::# red pill: OR run custom preset for auto upgrade without prompts / create iso directly / create usb +::# OR run script-assisted presets for auto upgrade without prompts / create iso directly / create usb ::# ==================================================================================================== -set "DIR=%SystemDrive%\$Windows.~WS\Sources\Windows" -set "LABEL=%XI% %VIS% %MEDIA_CFG% %MEDIA_ARCH% %MEDIA_LANGCODE%" if not defined MEDIA (set LANGCODE=%MEDIA_LANGCODE%& set EDITION=%MEDIA_EDITION%& set ARCH=%MEDIA_ARCH%) if defined UNSTAGED (set KEY=) else if defined KEY set AKEY=/Pkey %KEY% ::# not using /MediaEdition option in MCT version 1703 and older - handled via CurrentVersion registry workaround if %VER% gtr 15063 (set MEDIA_SEL=/MediaLangCode %LANGCODE% /MediaEdition %EDITION% /MediaArch %ARCH%) else (set MEDIA_SEL=) +if "Select" equ "%PRESET%" (set MEDIA_SEL=) + +::# prevent usage of MCT for intermediary upgrade in Dynamic Update (causing 7 to 19H1 instead of 7 to 11 for example) if %VER% gtr 15063 if not defined NO_UPDATE set UPDATE=%UPDATE% /UpdateMedia Decline + +::# separate options for MCT and auto.cmd set MOPTIONS=/Action CreateMedia %MEDIA_SEL% /UpdateMedia Decline %UNDO% %OPTIONS% /Pkey Defer /SkipSummary /Eula Accept set AOPTIONS=/Auto Upgrade /MigChoice Upgrade %UPDATE% %UNDO% %OPTIONS% %AKEY% /SkipSummary /Eula Accept set MAKE_OPTIONS=/SelfHost& for %%s in (%MOPTIONS%) do call set MAKE_OPTIONS=%%MAKE_OPTIONS%% %%s @@ -405,155 +419,197 @@ for %%O in (Workstation WorkstationN Education EducationN) do if "Professional%% if not defined PKEY if "Enterprise" equ "%EDITION%" set "KEY=" &rem explicitly remove generic PID.txt for Enterprise if not defined KEY (del /f /q PID.txt 2>nul) else (echo;[PID]& echo;Value=%KEY%& echo;;Edition=%EDITION%)>PID.txt -::# generate auxiliary script files -for %%O in (auto No_11_Setup_Checks_on_Boot No_11_Setup_Checks_v1 No_11_Setup_Checks_v2) do ( - powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'[:]generate_%%O_cmd')[1];" -) +::# generate auto.cmd for upgrading without prompts - also copied to media so it can be re-run on demand +set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'[:]generate_auto_cmd')[1];" -::# process custom_preset via powershell (to monitor setup state and take necessary action) -start "MCT" /wait /b powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'[:]process_custom_preset')[1];" -timeout /t 3 >nul +::# generate AutoUnattend.xml for 11 Setup registry override of TPM / CPU / RAM / Storage / SecureBoot checks +if %VER% geq 22000 set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'[:]generate_AutoUnattend_xml')[1];" + +::# start script-assisted MCT via powershell (to monitor setup state and take necessary action) +set "0=%~f0"& start "MCT" /wait /b powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'[:]Assisted_MCT')[1];" ::-------------------------------------------------------------------------------------------------------------------------------- EXIT /BATCH DONE ::-------------------------------------------------------------------------------------------------------------------------------- -:process_custom_preset - $host.ui.rawui.windowtitle = "$env:PRESET"; $ErrorActionPreference = 0 - $DRIVE = [environment]::SystemDirectory[0]; $WIM = $DRIVE+':\$WINDOWS.~WS'; $DIR = $WIM+'\Sources\Windows' - $ESD = $DRIVE+':\ESD'; $ISO = "${env:ROOT}\${env:LABEL}.iso"; del $ISO -force -ea 0; cd -Lit("${env:ROOT}\MCT") +:Assisted_MCT +#:: unreliable processing like pausing setuphost removed; enhanced output + $host.ui.rawui.windowtitle = "MCT $env:PRESET"; $ErrorActionPreference = 0 + $DRIVE = [environment]::SystemDirectory[0]; $WD = $DRIVE+':\ESD'; $WS = $DRIVE+':\$WINDOWS.~WS\Sources'; $DIR = $WS+'\Windows' + $ESD = $null; $USB = $null; $ISO = "$env:ROOT\$env:X $env:VIS $env:MEDIA_CFG $env:MEDIA_ARCH $env:MEDIA_LANGCODE.iso" + if ('Auto Upgrade' -eq $env:PRESET) {$ISO = [io.path]::GetTempPath() + "~temporary.iso"} ; del $ISO -force -ea 0 >'' + cd -Lit("$env:ROOT\MCT") #:: workaround for version 1703 and earlier not having media selection switches - $CV = '"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"' + $K = '"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"' if ($env:VER -le 15063 -and $null -ne $env:EDITION) { - reg add $CV /v EditionID /d $env:EDITION /reg:32 /f>'' 2>''; reg delete $CV /v ProductName /reg:32 /f>'' 2>'' - reg add $CV /v EditionID /d $env:EDITION /reg:64 /f>'' 2>''; reg delete $CV /v ProductName /reg:64 /f>'' 2>'' + reg add $K /v EditionID /d $env:EDITION /reg:32 /f>'' 2>''; reg delete $K /v ProductName /reg:32 /f>'' 2>'' + reg add $K /v EditionID /d $env:EDITION /reg:64 /f>'' 2>''; reg delete $K /v ProductName /reg:64 /f>'' 2>'' } - function MCTCompatUndo { if ($env:VER -le 15063 -and $null -ne $env:EDITION) { - reg add $CV /v EditionID /d $env:OS_EDITION /reg:32 /f>'' 2>''; reg add $CV /v ProductName /d $env:OS_PRODUCT /reg:32 /f>'' 2>'' - reg add $CV /v EditionID /d $env:OS_EDITION /reg:64 /f>'' 2>''; reg add $CV /v ProductName /d $env:OS_PRODUCT /reg:64 /f>'' 2>'' - }} -#:: setup file watcher to minimally track progress internally +#:: setup file watcher to minimally track progress function Watcher { - $A = $args; $null= mkdir $A[1] -force -ea 0; $path = (gi -force -lit $A[1] -ea 0).FullName; $subdirs = $true; $ret = $true - $W = new-object IO.FileSystemWatcher; $W.Path = $path; $W.Filter = $A[2]; if ($A[3] -eq 0) {$subdirs = $false} - $W.IncludeSubdirectories = $subdirs; $W.NotifyFilter = 125; $W.EnableRaisingEvents = $true + $A = $args; $Exe = $A[0]; $File = $A[1]; $Dir = $A[2]; $Subdirs = @($false,$true)[$A[3] -eq 'all'] + $P = mkdir $Dir -force -ea 0; if (!(test-path $P)) {return 1}; $W = new-object IO.FileSystemWatcher; $W.Path = $P.FullName + $W.Filter = $File; $W.IncludeSubdirectories = $Subdirs; $W.NotifyFilter = 125; $W.EnableRaisingEvents = $true; $ret = 1 while ($true) { - try { $found = $W.WaitForChanged(15, 15000) } catch { $null= mkdir $A[1] -ea 0; continue } - if ($found.TimedOut -eq $false) { write-host -fore Gray $found.ChangeType,$found.Name; $ret = $false; break } - else { if ($A[0].HasExited) {break} } + try { $get = $W.WaitForChanged(15, 15000) } catch { mkdir $Dir -ea 0 >''; continue } + if (-not $get.TimedOut) { write-host -fore Gray $get.ChangeType,$get.Name; $ret = 0;break} else {if ($Exe.HasExited) {break}} } ; $W.Dispose(); return $ret } -#:: OEM files - function OEMFiles { - pushd -lit "${env:ROOT}" - foreach ($P in "$DIR\x86\sources","$DIR\x64\sources","$DIR\sources") { - if (($null -ne $env:NO_OEM) -or !(test-path "$P\setupprep.exe")) {continue} - if (test-path '$OEM$') {xcopy /CYBERHIQ '$OEM$' $($P+'\$OEM$')} - if (test-path "MCT\PID.txt") {copy -path "MCT\PID.txt" -dest $P -force} - if (test-path "MCT\auto.cmd") {copy -path "MCT\auto.cmd" -dest $DIR -force} - } - popd - } +#:: load ui automation library + $an = 'UIAutomationClientsideProviders','UIAutomationClient','UIAutomationTypes','System.Windows.Forms','Microsoft.VisualBasic' + $ca = { [Windows.Automation.ClientSettings]::RegisterClientSideProviderAssembly($re[0].GetName()) } + $re = $an |% { [Reflection.Assembly]::LoadWithPartialName("'$_") } ; try { & $ca } catch { & $ca } + $cp = [Windows.Automation.AutomationElement]::ClassNameProperty + $bt = "Button","ComboBox","Edit" |% {new-object Windows.Automation.PropertyCondition($cp, $_)} + new-item -path function: -name "Enter" -value { $app = get-process "SetupHost" -ea 0; if ($null -ne $app) + { [Microsoft.VisualBasic.Interaction]::AppActivate($app.Id)} ; [Windows.Forms.SendKeys]::SendWait("{ENTER}") } >'' + $id = 0; if ('Make USB' -ne $env:PRESET) {$id = 1} + $sw = "ShowWindowAsync"; $dm = [AppDomain]::CurrentDomain."DefineDynami`cAssembly"(1,1)."DefineDynami`cModule"(1) + $dt = $dm."Defin`eType"("AveYo",1179913,[ValueType]); $ptr = (get-process -pid $PID).MainWindowHandle.gettype() + $dt."DefinePInvok`eMethod"($sw,"user`32",8214,1,[void],@($ptr,[int]),1,4) >''; $nt = $dt."Creat`eType"() + new-item -path function: -name "ShowWindow" -value {$nt."G`etMethod"($sw).invoke(0,@($args[0],$args[1]))} >'' -#: remove no setup checks on dynamic update - $N = 'Skip TPM Check on Dynamic Update' - $B = gwmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 - $C = gwmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -Filter "Name='$N'" -ea 0 - $F = gwmi -Class __EventFilter -NameSpace 'root\subscription' -Filter "Name='$N'" -ea 0 - if ($B) { $B | rwmi; $off = $true } ; if ($C) { $C | rwmi; $off = $true } ; if ($F) { $F | rwmi; $off = $true } - $0 = ri 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' -force -ea 0 - -#:: MCT custom preset processing - while ($true) { - #:: preload automation library - $an = 'UIAutomationClientsideProviders','UIAutomationClient','UIAutomationTypes','System.Windows.Forms','Microsoft.VisualBasic' - $ca = { [Windows.Automation.ClientSettings]::RegisterClientSideProviderAssembly($re[0].GetName()) } - $re = $an |% { [Reflection.Assembly]::LoadWithPartialName("'$_") } ; try { & $ca } catch { & $ca } - $cp = [Windows.Automation.AutomationElement]::ClassNameProperty - $bt = "Button","ComboBox","Edit" |% {new-object Windows.Automation.PropertyCondition($cp, $_)} - $ok = {[Microsoft.VisualBasic.Interaction]::AppActivate($set.MainWindowTitle); [Windows.Forms.SendKeys]::SendWait("{ENTER}")} - $id = 0; if ('Create USB' -ne $env:PRESET) {$id = 1} - +#:: start monitoring + :mct while ($true) { #:: launch MCT with /Selfhost /Action CreateMedia options and wait for main window - $mct = start -passthru "MediaCreationTool${env:VID}.exe" $env:MAKE_OPTIONS; if ($null -eq $mct) {return} - while ($null -eq (get-process SetupHost -ea 0)) {if ($mct.HasExited) {return} ; sleep -m 200 } - $set = get-process SetupHost -ea 0; if ($null -eq $set) {return} - while ($set.MainWindowHandle -eq 0) { if ($mct.HasExited) {return} ; $set.Refresh(); sleep -m 200 } + $mct = start -passthru "MediaCreationTool${env:VID}.exe" $env:MAKE_OPTIONS; if ($null -eq $mct) {break} + while ($null -eq (get-process SetupHost -ea 0)) {if ($mct.HasExited) {break :mct}; sleep -m 200 } + $set = get-process SetupHost -ea 0; if ($null -eq $set) {break} + while ($set.MainWindowHandle -eq 0) { if ($mct.HasExited) {break :mct}; $set.Refresh(); sleep -m 200 } + #:: using automation to click gui buttons directly due to UpgradeNow and CreateUpgradeMedia actions no longer working in 11 MCT - try { + if ('Select' -ne $env:PRESET) { try { $win = [Windows.Automation.AutomationElement]::FromHandle($set.MainWindowHandle); $nr = $win.FindAll(5, $bt[0]).Count - if ($env:VER -le 15063) { while ($win.FindAll(5, $bt[1]).Count -lt 3) {if ($mct.HasExited) {return}; sleep -m 200} ; & $ok } - while ($win.FindAll(5, $bt[0]).Count -le $nr) {if ($mct.HasExited) {return}; sleep -m 200} ; $all = $win.FindAll(5, $bt[0]) - $all[$id].GetCurrentPattern([Windows.Automation.SelectionItemPattern]::Pattern).Select(); $all[$all.Count-1].SetFocus();& $ok - if ('Create USB' -ne $env:PRESET) { - while ($win.FindAll(5, $bt[2]).Count -le 0) {if ($mct.HasExited) {return}; sleep -m 50} ; $val = $win.FindAll(5, $bt[2])[0] + if ($env:VER -le 15063) {while ($win.FindAll(5,$bt[1]).Count -lt 3) {if ($mct.HasExited) {break :mct}; sleep -m 200}; Enter} + while ($win.FindAll(5,$bt[0]).Count -le $nr) {if ($mct.HasExited) {break :mct}; sleep -m 200}; $all = $win.FindAll(5,$bt[0]) + $all[$id].GetCurrentPattern([Windows.Automation.SelectionItemPattern]::Pattern).Select();$all[$all.Count-1].SetFocus(); Enter + if ('Make USB' -ne $env:PRESET) { + while ($win.FindAll(5,$bt[2]).Count -le 0) {if ($mct.HasExited) {break :mct};sleep -m 50}; $val = $win.FindAll(5,$bt[2])[0] $val.GetCurrentPattern([Windows.Automation.ValuePattern]::Pattern).SetValue($ISO); $all = $win.FindAll(5, $bt[0]) - #($all |? {$_.Current.AutomationId -eq 1}).GetCurrentPattern([Windows.Automation.InvokePattern]::Pattern).invoke() - ($all |? {$_.Current.AutomationId -eq 1}).SetFocus(); & $ok + ($all |? {$_.Current.AutomationId -eq 1}).SetFocus(); Enter # sendkeys Enter - due to unreliable InvokePattern click() } - } catch {} - sleep 7; powershell -win $env:hide -nop -c ";" + } catch {} } - #:: quit straightway if NO_OEM parameter used to not add $OEM$, pid.txt, auto.cmd, skip tpm check to media - if ('Auto Setup' -ne $env:PRESET -and $null -ne $env:NO_OEM) {return} + #:: if DEF parameter used, quit without adding $OEM$, pid.txt, auto.cmd, AutoUnattend.xml (disable 11 setup checks) to media + if ($null -ne $env:DEF -and 'Auto Upgrade' -ne $env:PRESET) {break} + + #:: get target $ISO or $USB from setup state file + $ready = $false; $task = "PreDownload"; $action = "GetWebSetupUserInput" + while (-not $ready) { + [xml]$xml = get-content "$WS\Panther\windlp.state.xml" + foreach ($t in $xml.WINDLP.TASK) { if ($t.Name -eq $task) { foreach ($a in $t.ACTION) { if ($a.ActionName -eq $action) { + if ($null -ne $a.DownloadUrlX86) {$ESD = $a.DownloadUrlX86} + if ($null -ne $a.DownloadUrlX64) {$ESD = $a.DownloadUrlX64} + if ($null -ne $a.TargetISO) {$ISO = $a.TargetISO; $ready = $true} + $u = $a.TargetUsbDrive; if ($null -ne $u -and $u -gt 0) {$USB = [char][Convert]::ToInt32($u, 16); $ready = $true} + }}}} ; if ($mct.HasExited) {break :mct}; sleep -m 1000 + } + if ('Auto Upgrade' -ne $env:PRESET -and $null -eq $USB) {write-host -fore Gray "MakeISO", $ISO} + if ('Auto Upgrade' -ne $env:PRESET -and $null -ne $USB) {write-host -fore Gray "MakeUSB", $USB} + $label = $ESD.Split('-')[-2].Split('.')[-1] +'-'+ $ESD.Split('-')[-1].Split('_.')[0] + write-host -fore Gray "FromESD", $label; sleep 7; powershell -win $env:hide -nop -c ";" - #:: watch setup files progress from the sideline (MCT has authoring control from start to finish, locking file handles) - write-host -fore Yellow '-MCT is downloading ESD..'; $null= Watcher $mct $ESD "*.esd"; if ($mct.HasExited) {return} - - #:: $ISO might actually be different if automation fails, so get it from setup state - [xml]$xml = [IO.File]::ReadAllText("$WIM\Sources\Panther\windlp.state.xml",[Text.Encoding]::UTF8) - foreach ($t in $xml.WINDLP.TASK) { if ($t.Name -eq 'PreDownload') { foreach ($a in $t.ACTION) { - if ($a.ActionName -eq 'GetWebSetupUserInput') { if ($null -ne $a.TargetISO) {$ISO = $a.TargetISO} } } } - } - if ('Create ISO' -eq $env:PRESET) {write-host -fore Gray ISOfile $ISO} else {write-host -fore Gray Sources $DIR} - - #:: watch setup files progress from the sideline (MCT has authoring control from start to finish, locking file handles) - write-host -fore Yellow '-MCT is verifying files..'; $null= Watcher $mct $WIM "*.wim"; if ($mct.HasExited) {return} + #:: watch setup files progress from the sideline (MCT has authoring control) + write-host -fore Yellow "Started Downloading Windows $env:X "; Watcher $mct "*.esd" $WD all >''; if ($mct.HasExited) {break} + write-host -fore Yellow "Started Creating Windows $env:X media"; Watcher $mct "*.wim" $WS all >''; if ($mct.HasExited) {break} + + #:: then add to media $OEM$, PID.txt, auto.cmd, AutoUnattend.xml (for 11 Setup registry overrides) - disable via DEF arg + if ($null -eq $env:DEF) { + pushd -lit "$env:ROOT" + foreach ($P in "$DIR\x86\sources","$DIR\x64\sources","$DIR\sources") { + if (($null -ne $env:DEF) -or !(test-path "$P\setupprep.exe")) {continue} + $f1 = '$OEM$'; if (test-path -lit $f1) {xcopy /CYBERHIQ $f1 "$P\$f1" >''; write-host -fore Gray AddFile $f1} + $f2 = "MCT\PID.txt"; if (test-path $f2) {copy -path $f2 -dest $P -force >''; write-host -fore Gray AddFile $f2} + $f3 = "MCT\auto.cmd"; if (test-path $f3) {copy -path $f3 -dest $DIR -force >''; write-host -fore Gray AddFile $f3} + $f4 = "MCT\AutoUnattend.xml"; if (test-path $f4) {copy -path $f4 -dest $DIR -force >''; write-host -fore Gray AddFile $f4} + } + popd + } + write-host -fore Gray "Prepare install.esd" - #:: then add $OEM$, PID.txt, auto.cmd (disable with NO_OEM) ; undo workaround for < 1709 not having media selection switches - OEMFiles; MCTCompatUndo + #:: end monitoring early if preset does not require it + if ('Auto Upgrade' -ne $env:PRESET -and $null -eq $env:FIX) {break} - #:: if Windows 11 sources, apply skip tpm check to boot.wim - if ('Auto Setup' -ne $env:PRESET -and $env:XI -eq '11' -and $null -eq $env:NO_OEM) { - write-host -fore Yellow '-MCT is exporting boot.wim.. '; $null= Watcher $mct $WIM "ws.dat"; if ($mct.HasExited) {return} - - #:: suspend setuphost after boot.wim creation to apply Skip All Checks on Boot - write-host -fore Yellow '-Applying No 11 Setup Checks on Boot.. ' - [Microsoft.VisualBasic.Interaction]::AppActivate("$env:PRESET") - $M = [AppDomain]::CurrentDomain."DefineDynami`cAssembly"(1,1)."DefineDynami`cModule"(1) - $D = $M."Defin`eType"("A",1179913,[ValueType]); $n = "DebugActiveProcess","DebugActiveProcessStop",[int],[int]; - 0..1|% {$null= $D."DefinePInvok`eMethod"($n[$_],"kernel`32",8214,1,[int],$n[$_+2],1,4)} - $T = $D."Creat`eType"(); function DP {$T."G`etMethod"($args[0]).invoke(0,$args[1])} - $set = get-process "SetupHost" -ea 0; if ($null -ne $set) {$null= DP DebugActiveProcess $set.Id; sleep -m 600} - $set = get-process "SetupHost" -ea 0; if ($null -ne $set) {$null= DP DebugActiveProcess $set.Id; sleep -m 1200} - - #:: mount boot.wim and remove all setup checks from winsetup.dll - if ($null -ne $set) { - write-host; start -wait -nonewwindow cmd '/d/x/rcall No_11_Setup_Checks_on_Boot.cmd %DIR%'; write-host - $host.ui.rawui.windowtitle = "$env:PRESET" + #:: watch sources layout progress + Watcher $mct "ws.dat" "$DIR\sources" >''; if ($mct.HasExited) {break} + $set = get-process SetupHost -ea 0; $global:handle = $set.MainWindowHandle + $ready = $false; $task = "MediaCreate"; $action = "IsoLayout"; if ($null -ne $USB) {$action = "UsbLayout"} + while (-not $ready) { + [xml]$xml = get-content "$WS\Panther\windlp.state.xml" + foreach ($t in $xml.WINDLP.TASK) { if ($t.Name -eq $task) { foreach ($a in $t.ACTION) { if ($a.ActionName -eq $action) { + if ($null -ne $a.ProgressCurrent -and 0 -ne $a.ProgressCurrent) {ShowWindow $handle 0; $ready = $true} + }}}} ; if ($mct.HasExited) {break :mct}; sleep -m 10000 + } + write-host -fore Gray "Prepare", $action + +::#:: watch usb layout progress if using FIX arg and target is $USB + if ($null -ne $env:FIX -and $null -ne $USB) { + + $ready = $false; $task = "MediaCreate"; $action = "UsbLayout" + while (-not $ready) { + [xml]$xml = get-content "$WS\Panther\windlp.state.xml" + foreach ($t in $xml.WINDLP.TASK) { if ($t.Name -eq $task) { foreach ($a in $t.ACTION) { if ($a.ActionName -eq $action) { + $total = $a.ProgressTotal; $current = $a.ProgressCurrent + if ($null -ne $total -and 0 -ne $total -and $total -eq $current) {$ready = $true} + }}}} ; if ($mct.HasExited) {break :mct}; sleep -m 5000 } - - #:: and finally, resume setuphost - $set = get-process "SetupHost" -ea 0; if ($null -ne $set) {$null= DP DebugActiveProcessStop $set.Id; sleep -m 600} - $set = get-process "SetupHost" -ea 0; if ($null -ne $set) {$null= DP DebugActiveProcessStop $set.Id; sleep -m 1200} - } + write-host -fore Gray "Refresh", $action + } + + #:: kill MCT process early if preset requires it + if ('Auto Upgrade' -eq $env:PRESET -or $null -ne $env:FIX) { + $mct.Kill(); $set = get-process SetupHost -ea 0; if ($set) {$set.Kill()} + sleep 3; dism /cleanup-wim >''; del $ISO -force -ea 0 >'' + } - #:: watch for sources files completion - write-host -fore Yellow '-MCT is exporting install.esd.. '; $null= Watcher $mct $(split-path $ISO) "*.iso" $false - #:: done monitoring - write-host -fore Yellow '-MCT is finishing media.. '; break + #:: end monitoring + break :mct } -#:: Auto Setup preset kills MCT process before the iso is done (we use sources folder directly), then starts auto.cmd - if ('Auto Setup' -eq $env:PRESET) { - $mct.Kill(); $set = get-process SetupHost -ea 0; if ($set) {$set.Kill()} ; sleep 2; del $ISO -force -ea 0 - cd -Lit("${env:ROOT}\MCT"); start -nonewwindow cmd '/d/x/rcall auto.cmd %DIR%' +#:: undo workaround for version 1703 and earlier not having media selection switches + if ($env:VER -le 15063 -and $null -ne $env:EDITION) { + $K = '"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"' + reg add $K /v EditionID /d $env:OS_EDITION /reg:32 /f>'' 2>''; reg add $K /v ProductName /d $env:OS_PRODUCT /reg:32 /f>'' 2>'' + reg add $K /v EditionID /d $env:OS_EDITION /reg:64 /f>'' 2>''; reg add $K /v ProductName /d $env:OS_PRODUCT /reg:64 /f>'' 2>'' } -#:process_custom_preset done! +#:: if opted to disable boot.wim 11 setup checks via FIX arg + if ($null -ne $env:FIX -and (test-path "$DIR\sources\boot.wim")) { + write-host -fore Yellow "Disable boot.wim 11 setup checks" + rmdir "$WD\MOUNT" -re -force -ea 0; mkdir "$WD\MOUNT" -force -ea 0 >''; $winsetup = "$WD\MOUNT\sources\winsetup.dll" + dism.exe /mount-wim /wimfile:"$DIR\sources\boot.wim" /index:2 /mountdir:"$WD\MOUNT"; write-host + takeown.exe /f $winsetup /a >''; icacls.exe $winsetup /grant administrators:f; attrib -R -S -H $winsetup; $patch = '/commit' + try {[io.file]::OpenWrite($winsetup).close()} catch {$patch = '/discard'} + if ($patch -eq '/commit') { #:: an original setup override by AveYo to use when registry overrides fail (VirtualBox 5.x) + $b = [io.file]::ReadAllBytes($winsetup); $h = [BitConverter]::ToString($b)-replace'-' + $s = [BitConverter]::ToString([Text.Encoding]::Unicode.GetBytes('Module_Init_HWRequirements'))-replace'-' + $i = ($h.IndexOf($s)/2); $r = [Text.Encoding]::Unicode.GetBytes('Module_Init_GatherDiskInfo'); $l = $r.Length + if ($i -gt 1) {for ($k=0;$k -lt $l;$k++) {$b[$i+$k] = $r[$k]}; [io.file]::WriteAllBytes($winsetup,$b)}; [GC]::Collect() + } + dism.exe /unmount-wim /mountdir:"$WD\MOUNT" $patch; rmdir "$WD\MOUNT" -re -force -ea 0; write-host + if ($null -ne $USB) { + write-host -fore Yellow "Refresh USB $USB" + #:: if target is $USB, refresh boot.wim from sources + replace "$DIR\sources\boot.wim" "${USB}:\sources" /r /u + } else { + write-host -fore Yellow "MakeISO" + #:: if target is $ISO, load snippet then call DIR2ISO DIR ISO LABEL + iex ([io.file]::ReadAllText($env:0)-split '#\:DIR2ISO\:' ,3)[1] + DIR2ISO $DIR $ISO $LABEL + } + rmdir $DIR -re -force -ea 0 + } + +#:: Auto Upgrade preset starts auto.cmd from $DIR = C:\$WINDOWS.~WS\Sources\Windows + if ('Auto Upgrade' -eq $env:PRESET) { + cd -Lit("$env:ROOT\MCT"); start -nonewwindow cmd "/d/x/rcall auto.cmd $DIR" + } + + write-host -fore yellow -back green " DONE "; sleep 7 +#:: done #:Assisted_MCT ::-------------------------------------------------------------------------------------------------------------------------------- :generate_auto_cmd $text = @" @@ -565,7 +621,7 @@ for %%i in ("x86\" "x64\" "") do if exist "%%~isources\setupprep.exe" set "dir=% pushd "%dir%sources" || (echo "%dir%sources" & timeout /t 5 & exit/b) ::# elevate so that workarounds can be set -fltmc>nul || (set _="%~f0" %*& powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\" &exit/b) +fltmc>nul || (set _="%~f0" %*& powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\"& exit/b) ::# No 11 Setup Checks on Dynamic Update call :no_11_setup_checks_on_dynamic_update @@ -603,6 +659,7 @@ if /i "CoreCountrySpecific" == "%EditionID%" if %vol% == 1 (call :rename Profess if /i "CoreSingleLanguage" == "%EditionID%" if %vol% == 1 (call :rename Professional) if /i "Core" == "%EditionID%" if %vol% == 1 (call :rename Professional) if /i "CoreN" == "%EditionID%" if %vol% == 1 (call :rename ProfessionalN) +if /i "Ultimate" == "%EditionID%" (call :rename Professional) if /i "" == "%EditionID%" (call :rename Professional) :setup @@ -619,101 +676,59 @@ set NT="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" reg delete %NT% /v ProductName /f /reg:64 & reg add %NT% /v EditionID /d "%~1" /f /reg:64 ) >nul 2>nul &exit/b -:no_11_setup_checks_on_dynamic_update - also available as standalone toggle script in the Downloads\MCT folder -set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'skip\:tpm.*')[1];" &exit/b skip:tpm - $S = gi -force 'setupprep.exe' -ea 0; if ($S.VersionInfo.FileBuildPart -lt 22000) {return} #:: abort if not 11 media - $C = "cmd /q $N (c) AveYo, 2021 /d/x/r>nul (erase /f/s/q %systemdrive%\`$windows.~bt\appraiserres.dll" - $C+= '&md 11&cd 11&ren vd.exe vdsldr.exe&robocopy "../" "./" "vdsldr.exe"&ren vdsldr.exe vd.exe&start vd -Embedding)&rem;' +:no_11_setup_checks_on_dynamic_update - also available as standalone toggle script in the MCT folder +set "0=%~f0"& powershell -nop -c "iex ([io.file]::ReadAllText($env:0)-split'#[:]skip[:]tpm.*')[1];" &exit/b #:skip:tpm + $3 = @(); $I = gi -force 'setupprep.exe' -ea 0; if ($I.VersionInfo.FileBuildPart -lt 22000) {return} #:: abort if not 11 media + $3+= ''' Skip TPM Check on Dynamic Update (c) AveYo 2021 : v3 IFEO-based with no flashing cmd window' + $3+= 'C = "cmd /q AveYo /d/x/r erase /f/s/q %systemdrive%\$windows.~bt\appraiserres.dll&"' + $3+= 'M = "md 11&cd 11&ren vd.exe vdsldr.exe &robocopy ""../"" ""./"" ""vdsldr.exe""&ren vdsldr.exe vd.exe&"' + $3+= 'D = "start vd.exe -Embedding" : CreateObject("WScript.Shell").Run C & M & D, 0, False' + $V = "wscript 11.vbs //B //T:5"; $S = [environment]::SystemDirectory $K = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' - $0 = ni $K -force -ea 0; sp $K Debugger $C -force -ea 0 - $0 = sp HKLM:\SYSTEM\Setup\MoSetup 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 -#:: skip:tpm + ni $K -force -ea 0 >''; sp $K 'Debugger' $V -force -ea 0; [io.file]::WriteAllText("$S\11.vbs", $3-join"`r`n") + sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 >'' +#:: #:skip:tpm + '@; [io.file]::WriteAllText('auto.cmd', $text) #:generate_auto_cmd ::-------------------------------------------------------------------------------------------------------------------------------- -:generate_No_11_Setup_Checks_v1_cmd $text = @' -@(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit/b -#:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script -#:: v1 of the toggle script works perfectly fine for most people with a non-botched windows installation -#:: uses a fast, fileless wmi subscription to watch for the Virtual Disk Service Loader process running during setup, -#:: then launches a cmd erase of appraiserres.dll - that's all there is to it, no rocket science, just a great implementation -#:: you probably don't need to have it installed at all times - just when doing feature updates or manual setup within windows -#:: hence the on off toggle just by running the script again +:generate_AutoUnattend_xml $text = @' + + + + + + 1 + Allow 11 Clean Install at Boot from USB or DVD +cmd /c for %X in (sCPU sRAM sSecureBoot sStorage sTPM) do reg add HKLM\SYSTEM\Setup\LabConfig /v Bypas%XCheck /d 1 /t reg_dword /f + -$_Paste_in_Powershell = { - $N = 'Skip TPM Check on Dynamic Update'; $off = $false - $0 = sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 - $0 = ri 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' -force -ea 0 - $0 = sc.exe config Winmgmt start= demand; sp HKLM:\SOFTWARE\Microsoft\Wbem 'Enable Costly Providers' 0 -type dword -force -ea 0 - $B = gwmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 - $C = gwmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -Filter "Name='$N'" -ea 0 - $F = gwmi -Class __EventFilter -NameSpace 'root\subscription' -Filter "Name='$N'" -ea 0 - if ($B) { $B | rwmi; $off = $true } ; if ($C) { $C | rwmi; $off = $true } ; if ($F) { $F | rwmi; $off = $true } - if ($off) { write-host -fore 0xf -back 0xd "`n $N [REMOVED] run again to install "; timeout /t 5; return } - $P = "$([environment]::SystemDirectory)\cmd.exe"; $T = "$P /q $N (c) AveYo, 2021 /d /rerase appraiserres.dll /f /s /q" - $D = "$($P[0]):\`$WINDOWS.~BT"; $Q = "SELECT SessionID from Win32_ProcessStartTrace WHERE ProcessName='vdsldr.exe'" - $F = swmi -Class __EventFilter -NameSpace 'root\subscription' -args @{ - Name = $N; EventNameSpace = 'root\cimv2'; QueryLanguage = 'WQL'; Query = $Q} -PutType 2 -ea 0 - $C = swmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -args @{ - Name = $N; WorkingDirectory = $D; ExecutablePath = $P; CommandLineTemplate = $T; Priority = 128} -PutType 2 -ea 0 - $B = swmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -args @{Filter=$F;Consumer=$C} -PutType 2 -ea 0 - write-host -fore 0xf -back 0x2 "`n $N [INSTALLED] run again to remove "; timeout /t 5 -} ; start -verb runas powershell -args "-nop -c & {`n`n$($_Paste_in_Powershell-replace'"','\"')}" -$_Press_Enter -#:: -'@; [io.file]::WriteAllText('No_11_Setup_Checks_v1.cmd', $text) #:generate_No_11_Setup_Checks_v1_cmd -::-------------------------------------------------------------------------------------------------------------------------------- - -:generate_No_11_Setup_Checks_v2_cmd $text = @' -@(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit/b -#:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script -#:: v2 of the toggle script comes to the aid of outliers for whom v1 did not work due to various reasons (broken/blocked/slow wmi) -#:: uses IFEO instead to attach to the same Virtual Disk Service Loader process running during setup, then launches a cmd erase -#:: of appraiserres.dll - but it must also do some ping-pong renaming of the exe in system32\11 - great implementation nonetheless -#:: (for simplicity did not use powershell invoking CreateProcess and DebugActiveProcessStop to overcome IFEO constrains) -#:: in v2 the cmd window will briefly flash while running diskmgmt - so it is not "better" per-se. just more compatible / reactive -#:: you probably don't need to have it installed at all times - just when doing feature updates or manual setup within windows -#:: hence the on off toggle just by running the script again + + 1 + Allow 11 Upgrade if having TPM 1.2 + cmd /c reg add HKLM\SYSTEM\Setup\MoSetup /v AllowUpgradesWithUnsupportedTPMOrCPU /d 1 /t reg_dword /f + + + + truefalse + + true3 + -$_Paste_in_Powershell = { - $N = 'Skip TPM Check on Dynamic Update' - $0 = sp 'HKLM:\SYSTEM\Setup\MoSetup' 'AllowUpgradesWithUnsupportedTPMOrCPU' 1 -type dword -force -ea 0 - $B = gwmi -Class __FilterToConsumerBinding -Namespace 'root\subscription' -Filter "Filter = ""__eventfilter.name='$N'""" -ea 0 - $C = gwmi -Class CommandLineEventConsumer -Namespace 'root\subscription' -Filter "Name='$N'" -ea 0 - $F = gwmi -Class __EventFilter -NameSpace 'root\subscription' -Filter "Name='$N'" -ea 0 - if ($B) { $B | rwmi } ; if ($C) { $C | rwmi } ; if ($F) { $F | rwmi } - $C = "cmd /q $N (c) AveYo, 2021 /d/x/r>nul (erase /f/s/q %systemdrive%\`$windows.~bt\appraiserres.dll" - $C+= '&md 11&cd 11&ren vd.exe vdsldr.exe&robocopy "../" "./" "vdsldr.exe"&ren vdsldr.exe vd.exe&start vd -Embedding)&rem;' - $K = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vdsldr.exe' - if (test-path $K) {ri $K -force -ea 0; write-host -fore 0xf -back 0xd "`n $N [REMOVED] run again to install "} - else {$0=ni $K -force -ea 0;sp $K 'Debugger' $C -force; write-host -fore 0xf -back 0x2 "`n $N [INSTALLED] run again to remove "} - timeout /t 5 } ; start -verb runas powershell -args "-nop -c & {`n`n$($_Paste_in_Powershell-replace'"','\"')}" -$_Press_Enter -#:: -'@; [io.file]::WriteAllText('No_11_Setup_Checks_v2.cmd', $text) #:generate_No_11_Setup_Checks_v2_cmd -::-------------------------------------------------------------------------------------------------------------------------------- - -:generate_No_11_Setup_Checks_on_Boot_cmd $text = @' -@title No 11 Setup Checks on Boot & set args=%1& echo off -::# run from the root of the USB drive or extracted ISO files to remove all setup checks from winsetup.dll -::# can finally boot from new Windows 11 media inside VirtualBox - -pushd "%~dp0" & if defined args pushd %args% & if not exist sources\boot.wim popd -if not exist sources\boot.wim echo; SOURCES\BOOT.WIM NOT FOUND! & timeout /t 5 & exit/b -fltmc>nul || (set _="%~f0" %* & powershell -nop -c start -verb runas cmd \"/d/x/rcall $env:_\" & exit/b) -dism /cleanup-wim & set BOOT=%SystemDrive%\ESD\BOOT& mkdir %SystemDrive%\ESD\BOOT >nul 2>nul -dism /mount-wim /wimfile:sources\boot.wim /index:2 /mountdir:%BOOT% & (set DO=commit) & if exist %ini% (set DO=discard) -pushd %BOOT%\sources & takeown /f winsetup.dll /a >nul & icacls winsetup.dll /grant administrators:f >nul -set c1= $b = [System.IO.File]::ReadAllBytes('winsetup.dll'); $h = [System.BitConverter]::ToString($b)-replace'-' -set c2= $s = [BitConverter]::ToString([Text.Encoding]::Unicode.GetBytes('Module_Init_HWRequirements'))-replace'-' -set c3= $i = ($h.IndexOf($s)/2); $r = [Text.Encoding]::Unicode.GetBytes('Module_Init_GatherDiskInfo'); $l = $r.Length -set c4= if ($i -gt 1) {for ($k=0;$k -lt $l;$k++) {$b[$i+$k] = $r[$k]} ; [System.IO.File]::WriteAllBytes('winsetup.dll',$b)} -if not exist winsetup.dll (set c1=&set c2=&set c3=&set c4=) else copy /y winsetup.dll "%temp%\" >nul 2>nul -powershell -nop -c %c1%;%c2%;%c3%;%c4%; & popd & if defined c1 fc "%BOOT%\sources\winsetup.dll" "%TEMP%\winsetup.dll" -dism /unmount-wim /mountdir:%BOOT% /commit & rmdir /s /q %BOOT% >nul 2>nul & del /f /q sources\appraiserres.dll>nul -if not defined args choice /c EX1T -:: -'@; [io.file]::WriteAllText('No_11_Setup_Checks_on_Boot.cmd', $text) #:generate_No_11_Setup_Checks_on_Boot_cmd +'@; [io.file]::WriteAllText('AutoUnattend.xml', $text) #:generate_AutoUnattend_xml ::-------------------------------------------------------------------------------------------------------------------------------- :reg_query [USAGE] call :reg_query "HKCU\Volatile Environment" Value variable @@ -722,36 +737,35 @@ if not defined args choice /c EX1T #:DIR2ISO:# [PARAMS] "directory" "file.iso" [optional]"label" set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:DIR2ISO\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) -set ^ #=& set "0=%~f0"& set 1=;%0 %*& powershell -nop -c "%#%"& exit/b %errorcode% -function :DIR2ISO ($dir, $iso, $vol='DVD_ROM') {if (!(test-path -Path $dir -pathtype Container)) {"[ERR] $dir\";exit 1}; $code=@" +set ^ #=& set "0=%~f0"& set 1=;DIR2ISO %*& powershell -nop -c "%#%"& exit/b %errorcode% +function DIR2ISO ($dir,$iso,$label='DVD_ROM') {if (!(test-path -Path $dir -pathtype Container)) {"[ERR] $dir"; return 1}; $code=@" using System; using System.IO; using System.Runtime.Interop`Services; using System.Runtime.Interop`Services.ComTypes; public class dir2iso {public int AveYo=2021; [Dll`Import("shlwapi",CharSet=CharSet.Unicode,PreserveSig=false)] internal static extern void SHCreateStreamOnFileEx(string f,uint m,uint d,bool b,IStream r,out IStream s); public static int Create(string file, ref object obj, int bs, int tb) { IStream dir=(IStream)obj, iso; try {SHCreateStreamOnFileEx(file,0x1001,0x80,true,null,out iso);} catch(Exception e) {Console.WriteLine(e.Message); return 1;} int d=tb>1024 ? 1024 : 1, pad=tb%d, block=bs*d, total=(tb-pad)/d, c=total>100 ? total/100 : total, i=1, MB=(bs/1024)*tb/1024; - Console.Write("{0,2}% {1}MB {2} :DIR2ISO",0,MB,file); if (pad > 0) dir.CopyTo(iso, pad * block, Int`Ptr.Zero, Int`Ptr.Zero); + Console.Write("{0,2}% {1}MB {2} DIR2ISO",0,MB,file); if (pad > 0) dir.CopyTo(iso, pad * block, Int`Ptr.Zero, Int`Ptr.Zero); while (total-- > 0) {dir.CopyTo(iso, block, Int`Ptr.Zero, Int`Ptr.Zero); if (total % c == 0) {Console.Write("\r{0,2}%",i++);}} - iso.Commit(0); Console.WriteLine("\r{0,2}% {1}MB {2} :DIR2ISO", 100, MB, file); return 0;} } -"@; & { $cs=new-object CodeDom.Compiler.CompilerParameters; $cs.GenerateInMemory=1 #:: no`warnings - $compile=(new-object Microsoft.CSharp.CSharpCodeProvider).CompileAssemblyFromSource($cs, $code) - $BOOT=@(); $bootable=0; $mbr_efi=@(0,0xEF); $images=@('boot\etfsboot.com','efi\microsoft\boot\efisys.bin') #:: efisys_noprompt - 0,1|% { $bootimage=join-path $dir -child $images[$_]; if (test-path -Path $bootimage -pathtype Leaf) { - $bin=new-object -ComObject ADODB.Stream; $bin.Open(); $bin.Type=1; $bin.LoadFromFile($bootimage) - $opt=new-object -ComObject IMAPI2FS.BootOptions; $opt.AssignBootImage($bin.psobject.BaseObject); $opt.Manufacturer='Microsoft' - $opt.PlatformId=$mbr_efi[$_]; $opt.Emulation=0; $bootable=1; $BOOT += $opt.psobject.BaseObject } } - $fsi=new-object -ComObject IMAPI2FS.MsftFileSystemImage; $fsi.FileSystemsToCreate=4; $fsi.FreeMediaBlocks=0 - if ($bootable) {$fsi.BootImageOptionsArray=$BOOT}; $CONTENT=$fsi.Root; $CONTENT.AddTree($dir,$false); $fsi.VolumeName=$vol - $obj=$fsi.CreateResultImage(); $r=[dir2iso]::Create($iso,[ref]$obj.ImageStream,$obj.BlockSize,$obj.TotalBlocks) };[GC]::Collect() + iso.Commit(0); Console.WriteLine("\r{0,2}% {1}MB {2} DIR2ISO",100,MB,file); return 0;} } +"@; & { $cs = new-object CodeDom.Compiler.CompilerParameters; $cs.GenerateInMemory = 1 #:: ` used to silence ps eventlog + $compile = (new-object Microsoft.CSharp.CSharpCodeProvider).CompileAssemblyFromSource($cs, $code) + $BOOT = @(); $bootable = 0; $mbr_efi = @(0,0xEF); $images = @('boot\etfsboot.com','efi\microsoft\boot\efisys.bin') #:: _noprompt + 0,1|% { $bootimage = join-path $dir -child $images[$_]; if (test-path -Path $bootimage -pathtype Leaf) { + $bin = new-object -ComObject ADODB.Stream; $bin.Open(); $bin.Type = 1; $bin.LoadFromFile($bootimage) + $opt = new-object -ComObject IMAPI2FS.BootOptions;$opt.AssignBootImage($bin.psobject.BaseObject); $opt.PlatformId = $mbr_efi[$_] + $opt.Emulation = 0; $bootable = 1; $opt.Manufacturer = 'Microsoft'; $BOOT += $opt.psobject.BaseObject } } + $fsi = new-object -ComObject IMAPI2FS.MsftFileSystemImage; $fsi.FileSystemsToCreate = 4; $fsi.FreeMediaBlocks = 0 + if ($bootable) {$fsi.BootImageOptionsArray = $BOOT}; $TREE = $fsi.Root; $TREE.AddTree($dir,$false); $fsi.VolumeName = $label + $obj = $fsi.CreateResultImage(); $ret = [dir2iso]::Create($iso,[ref]$obj.ImageStream,$obj.BlockSize,$obj.TotalBlocks) } + [GC]::Collect(); return $ret } #:DIR2ISO:# export directory as (bootable) udf iso - lean and mean snippet by AveYo, 2021 - -::# no longer used atm, iso is created via mct ::-------------------------------------------------------------------------------------------------------------------------------- -#:CHOICE:# [PARAMS] indexvar "c,h,o,i,c,e,s" [OPTIONAL] default-index "title" fontsize backcolor forecolor winsize -set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:CHOICE\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) -set ^ #=&set "0=%~f0"& set 1=;%0 %*& (for /f %%x in ('powershell -nop -c "%#%"') do set "%1=%%x")& exit/b -function :CHOICE ($index,$choices,$def=1,$title='Choices',[int]$sz=12,$bc='MidnightBlue',$fc='Snow',[string]$win='300') { +#:CHOICES:# [PARAMS] indexvar "c,h,o,i,c,e,s" [OPTIONAL] default-index "title" fontsize backcolor forecolor winsize +set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:CHOICES\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) +set ^ #=&set "0=%~f0"& set 1=;CHOICES %*& (for /f %%x in ('powershell -nop -c "%#%"') do set "%1=%%x")& exit/b +function CHOICES ($index,$choices,$def=1,$title='Choices',[int]$sz=12,$bc='MidnightBlue',$fc='Snow',[string]$win='300') { [void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); $f=new-object Windows.Forms.Form; $global:ret='' $bt=@(); $i=1; $ch=($choices+',Cancel').split(','); $ch |foreach {$b=New-Object Windows.Forms.Button; $b.Font='Tahoma,'+$sz $b.Name=$i; $b.Text=$_; $b.Margin='0,0,9,9'; $b.Location='9,'+($sz*3*$i-$sz); $b.MinimumSize=$win+',18'; $b.AutoSize=1 @@ -759,33 +773,33 @@ function :CHOICE ($index,$choices,$def=1,$title='Choices',[int]$sz=12,$bc='Midni $b.FlatStyle=0; $b.Cursor='Hand'; $b.add_Click({$global:ret=$this.Name;$f.Close()}); $f.Controls.Add($b); $bt+=$b; $i++} $f.Text=$title; $f.BackColor=$bc; $f.ForeColor=$fc; $f.StartPosition=4; $f.AutoSize=1; $f.AutoSizeMode=0; $f.MaximizeBox=0 $f.AcceptButton=$bt[$def-1]; $f.CancelButton=$bt[-1]; $f.Add_Shown({$f.Activate();$bt[$def-1].focus()}) - $null=$f.ShowDialog(); $index=$global:ret; if ($index -eq $ch.length) {return 0} else {return $index} -} #:CHOICE:# gui dialog with inverted focus returning selected index - lean and mean snippet by AveYo, 2018 - 2021 + $f.ShowDialog() >''; $index=$global:ret; if ($index -eq $ch.length) {return 0} else {return $index} +} #:CHOICES:# gui dialog with inverted focus returning selected index - lean and mean snippet by AveYo, 2018 - 2021 ::-------------------------------------------------------------------------------------------------------------------------------- -#:CHOICE.2x:# [INTERNAL] -set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:CHOICE.2x\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) -set ^ #=&set "0=%~f0"&set 1=;%0 %*&(for /f "tokens=1,2" %%x in ('powershell -nop -c "%#%"') do set %1=%%x&set %5=%%y)& exit/b -function :CHOICE.2x {if (!(get-command :CHOICE -ea 0)) {iex($f0-split '#\:CHOICE\:' ,3)[1]}; function :LOOP { $a=$args - $c1 = @($a[0], $a[1], $a[2], $a[3], $a[-4], $a[-3], $a[-2], $a[-1]); $r1= :CHOICE @c1; if ($r1 -lt 1) {return "0 0"} +#:CHOICES2:# [INTERNAL] +set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:CHOICES2\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) +set ^ #=&set "0=%~f0"&set 1=;CHOICES2 %*&(for /f "tokens=1,2" %%x in ('powershell -nop -c "%#%"') do set %1=%%x&set %5=%%y)&exit/b +function CHOICES2 {iex($f0-split '#\:CHOICES\:' ,3)[1]; function :LOOP { $a=$args + $c1 = @($a[0], $a[1], $a[2], $a[3], $a[-4], $a[-3], $a[-2], $a[-1]); $r1= CHOICES @c1; if ($r1 -lt 1) {return "0 0"} $a_7_ = $a[1].Split(',')[$r1-1] + ' ' + $a[7] #:: use 1st dialog result in the title for 2nd dialog - $c2 = @($a[4], $a[5], $a[6], $a_7_, $a[-4], $a[-3], $a[-2], $a[-1]); $r2= :CHOICE @c2; if ($r2 -ge 1) {return "$r1 $r2"} + $c2 = @($a[4], $a[5], $a[6], $a_7_, $a[-4], $a[-3], $a[-2], $a[-1]); $r2= CHOICES @c2; if ($r2 -ge 1) {return "$r1 $r2"} if ($r2 -lt 1) {$a[2]=$r1; :LOOP @a} }; :LOOP @args #:: index1 choices1 def1 title1 index2 choices2 def2 title2 font bc tc win -} #:CHOICE.2x:# MediaCreationTool.bat gui pseudo-menu via :CHOICE snippet, streamlined in a single powershell instance +} #:CHOICES2:# MediaCreationTool.bat gui pseudo-menu via CHOICES snippet, streamlined in a single powershell instance ::-------------------------------------------------------------------------------------------------------------------------------- #:PRODUCTS_XML:# [INTERNAL] refactored with less looping over Files; addressed more powershell 2.0 quirks set ^ #=$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#\:PRODUCTS_XML\:' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) -set ^ #=& set "0=%~f0"& set 1=;%0 %*& powershell -nop -c "%#%"& exit/bat/ps1 -function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml",[Text.Encoding]::UTF8); $root = $null - $eulas = 0; $langs = 0; $ver = $env:VER; $vid = $env:VID; $xi = $env:XI; if ($xi-eq'11') {$vid = "11 $env:VIS"} +set ^ #=& set "0=%~f0"& set 1=;PRODUCTS_XML %*& powershell -nop -c "%#%"& exit/bat/ps1 +function PRODUCTS_XML { [xml]$xml = [io.file]::ReadAllText("$pwd\products.xml",[Text.Encoding]::UTF8); $root = $null + $eulas = 0; $langs = 0; $ver = $env:VER; $vid = $env:VID; $X = $env:X; if ($X-eq'11') {$vid = "11 $env:VIS"} $url = $env:htp + "fg.ds.b1.download.windowsupdate.com/" #:: apply/insert Catalog version attribute for MCT compatibility if ($null -ne $xml.SelectSingleNode('/MCT')) { $xml.MCT.Catalogs.Catalog.version = $env:CC; $root = $xml.SelectSingleNode('/MCT/Catalogs/Catalog/PublishedMedia') } else { $temp = [xml]('') - $null= $temp.SelectSingleNode('/MCT/Catalogs/Catalog').AppendChild($temp.ImportNode($xml.PublishedMedia,$true)) + $temp.SelectSingleNode('/MCT/Catalogs/Catalog').AppendChild($temp.ImportNode($xml.PublishedMedia,$true)) >'' $xml = $temp; $root = $xml.SelectSingleNode('/MCT/Catalogs/Catalog/PublishedMedia') } foreach ($l in $root.ChildNodes) {if ($l.LocalName -eq 'EULAS') {$eulas = 1}; if ($l.LocalName -eq 'Languages') {$langs = 1} } @@ -798,7 +812,7 @@ function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml", $i = $el.AppendChild($node.Clone()); $lc = $lang.LanguageCode $i.LanguageCode = $lc; $i.URL = $eula + $lc.ToUpperInvariant() + '_6.27.16.rtf' } - $null= $root.AppendChild($el) + $root.AppendChild($el) >'' } #:: friendlier version + combined consumer editions label (not doing it for business too here as it would be ignored by mct) if ($langs -eq 1) { @@ -813,7 +827,7 @@ function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml", $root.Files.File | & { process { $_arch = $_.Architecture; $_lang = $_.LanguageCode; $_edi = $_.Edition; $_loc = $_.Edition_Loc; $ok = $true #:: clear ARM64 and %BASE_CHINA% entries to simplify processing - TODO: ARM support - if ($_arch -eq 'ARM64' -or ($ver -lt 22000 -and $_loc -eq '%BASE_CHINA%')) {$null= $root.Files.RemoveChild($_); return} + if ($_arch -eq 'ARM64' -or ($ver -lt 22000 -and $_loc -eq '%BASE_CHINA%')) {$root.Files.RemoveChild($_) >''; return} #:: unhide combined business editions in xml that include them: 1709 - 21H1; unhide Education on 1507 - 1511; better label if ($env:UNHIDE_BUSINESS -ge 1) { if ($_edi -eq 'Enterprise' -or $_edi -eq 'EnterpriseN') {$_.IsRetailOnly = 'False'; $_.Edition_Loc = $BUSINESS} @@ -843,7 +857,7 @@ function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml", $name = $env:CB + $cli + $arch + 'FRE_' + $lang; $c.Edition_Loc = "$vid $BUSINESS" $c.FileName = $name + '.esd'; $c.Size = $_size; $c.Sha1 = $_sha1 $c.FilePath = $url + $_dir + $up + $env:CT + $name.ToLowerInvariant() + '_' + $_sha1 + '.esd' - $null= $root.Files.AppendChild($c) + $root.Files.AppendChild($c) >'' }}} } } @@ -857,7 +871,7 @@ function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml", $arch = $_.Architecture; $lang = $_.LanguageCode; $item = $items["$chan, $lang"]; if ($null -eq $item) {return} if ($arch -eq 'x64') {$_size = $item[0].Size_x64; $_sha1 = $item[0].Sha1_x64; $_dir = $item[0].Dir_x64} elseif ($arch -eq 'x86') {$_size = $item[0].Size_x86; $_sha1 = $item[0].Sha1_x86; $_dir = $item[0].Dir_x86} - if ('' -eq $_size) {$null= $root.Files.RemoveChild($_); return} + if ('' -eq $_size) {$root.Files.RemoveChild($_) >''; return} $name = $env:CB + $cli + $chan.ToUpperInvariant() + '_' + $arch + 'FRE_' + $_.LanguageCode $_.FileName = $name + '.esd'; $_.Size = $_size; $_.Sha1 = $_sha1 $_.FilePath = $url + $_dir + '/upgr/' + $env:CT + $name.ToLowerInvariant() + '_' + $_sha1 + '.esd' @@ -873,13 +887,13 @@ function :PRODUCTS_XML { [xml]$xml = [IO.File]::ReadAllText("$pwd\products.xml", if ($_.Edition -eq "Enterprise") { foreach ($s in $clone) { $c = $_.Clone(); if ($c.HasAttribute('id')) {$c.RemoveAttribute('id')} - $c.IsRetailOnly='False'; $c.Edition=$s; $null= $root.Files.AppendChild($c) + $c.IsRetailOnly='False'; $c.Edition=$s; $root.Files.AppendChild($c) >'' } } elseif ($_.Edition -eq "EnterpriseN") { foreach ($s in $cloneN) { $c = $_.Clone(); if ($c.HasAttribute('id')) {$c.RemoveAttribute('id')} - $c.IsRetailOnly='False'; $c.Edition=$s; $null= $root.Files.AppendChild($c) + $c.IsRetailOnly='False'; $c.Edition=$s; $root.Files.AppendChild($c) >'' } }}} } diff --git a/README.md b/README.md index 468d9e0..035cd5a 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,31 @@ A powerful yet simple windows 10 / 11 deployment automation tool as well! > recommended windows setup options with the least amount of issues on upgrades set via auto.cmd > awesome dialogs with keyboard focus to pick target version and preset action -> **Auto Setup** with detected media without confirmation +>1 **Auto Upgrade** with detected media, script assists setupprep for upgrading directly > _- can troubleshoot upgrade failing by adding `no_update` to script name_ -> **Create ISO** with detected media in `C:\ESD` folder without confirmation -> _- can override detected media by adding edition name / language / arch to script name_ -> **Create USB** with detected media after confirmation -> _- can click Back and select ISO instead to save in a different path_ -> custom presets above support 'oem' media customization, that can be disabled by adding `no_oem` to script name -> _- pickup `$OEM$` folder (if it exists) with any post setup tweaks like `$OEM$\$$\Setup\Scripts\setupcomplete.cmd`_ -> _- write `sources\PID.txt` file to preselect edition at media boot or setup within windows (if configured)_ -> _- write `auto.cmd` file to re-run auto setup on demand, from media (includes Skip TPM if sources are 11)_ -> _- patch `winsetup.dll` file in boot.wim to disable all setup checks on boot (if sources are 11)_ -> **Select in MCT** with manual confirmation for everything in MCT GUI -> _- no 'oem' media customization, script passes products.xml configuration and quits without touching media_ -> _- this will create a vanilla, default MCT iso/usb - for no 11 setup checks use the other choices_ -> Skip TPM Check on Dynamic Update v1 _(wmi-based)_ or v2 _(ifeo-based)_ standalone toggle scripts in `MCT\` dir +>2 **Make ISO** with detected media in `Downloads` folder directly +> _- can override detected media by adding edition name / language / arch to script name_ + +>3 **Make USB** with detected media in specified usb target +> _- can click Back and select ISO instead to save in a different path_ + +>4 **Select** with picked Edition, Language, Arch - on specified target +> _- implicit choice, will include setup override files_ + +>5 **MCT Defaults** with GUI selected media, makes vanilla, default MCT iso/usb +> _- no added file, script passes products.xml and quits without touching media_ + +>1-4 presets will add any setup override files to created media +> _- can be disabled by adding `def` to script name_ +> _- write `$OEM$` folder (if it exists) with post setup tweaks like `$OEM$\$$\Setup\Scripts\setupcomplete.cmd`_ +> _- write `sources\PID.txt` to preselect edition at media boot or setup within windows (if configured)_ +> _- write `auto.cmd` to re-run upgrade from media on demand (includes Skip TPM Check on Dynamic Update)_ +> _- write `AutoUnattend.xml` to override 11 setup checks on media boot (and enable local account on Home)_ +> _- patch `winsetup.dll` in boot.wim for booting 11 in VirtualBox 5.x (with optional FIX arg)_ + + +> Skip TPM Check on Dynamic Update v3 _(ifeo-based, no cmd window)_ standalone toggle script in `MCT` dir > _- system-wide, unblocks insider previews on windows update, or running setup.exe manually while online_ > _- when using created media on another pc for the first time, can launch `auto.cmd` from media once to enable_ @@ -66,4 +75,7 @@ _We did it! We broke [the previous gist](https://git.io/MediaCreationTool.bat)_ 2021.10.05: 11 22000.194 Release (rofl W11 MCT has limited capabilities, so still using 21H1 MCT because it works fine) 2021.10.09: outstanding refactoring around Windows 11 MCT; minimize while waiting MCT; unified 7 - 11 appearence 2021.10.20: create generic iso if no edition arg; use Downloads folder; no 11 setup checks on boot in VirtualBox; fixes #2 +2021.10.23: 11 22000.258 + more intuitive presets; 11 setup override via AutoUnattend.xml or via boot.wim (for VirtualBox 5.x) with FIX arg + only reliable ui automation; enhanced script output ``` diff --git a/preview.png b/preview.png index 69ad0e8d898867237dc64bd58c63157caa02b3b3..4b5535a0a28dbac698f6836c31de5fdac5516e04 100644 GIT binary patch literal 93711 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 QT#%nUUHx3vIVCg!00CwLt^fc4 literal 75819 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%0AKS9;&&N5Ju*0b= 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

dKn)!~g@vh;NGxmh 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 G&-?-BZjz(`