From 5d720e6542d66626d057b0d91b9890a469329b12 Mon Sep 17 00:00:00 2001 From: Julyes90 <108517183+julyes90Xr@users.noreply.github.com> Date: Tue, 19 Jul 2022 09:33:26 +0200 Subject: [PATCH] Delete bypass11 directory Damage pc with windows 10 version --- bypass11/AutoUnattend.xml | 55 ------- bypass11/Quick_11_iso_esd_wim_TPM_toggle.bat | 64 -------- bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd | 62 -------- bypass11/auto.cmd | 150 ------------------ bypass11/readme.md | 60 ------- bypass11/windows_update_refresh.bat | 43 ----- 6 files changed, 434 deletions(-) delete mode 100644 bypass11/AutoUnattend.xml delete mode 100644 bypass11/Quick_11_iso_esd_wim_TPM_toggle.bat delete mode 100644 bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd delete mode 100644 bypass11/auto.cmd delete mode 100644 bypass11/readme.md delete mode 100644 bypass11/windows_update_refresh.bat diff --git a/bypass11/AutoUnattend.xml b/bypass11/AutoUnattend.xml deleted file mode 100644 index 392604c..0000000 --- a/bypass11/AutoUnattend.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - AAAAA-VVVVV-EEEEE-YYYYY-OOOOOOnError - Neverfalse - trueNevertrue - - - 1 - reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /d 1 /t reg_dword /f - 2 - reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /d 1 /t reg_dword /f - 3 - reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /d 1 /t reg_dword /f - 4 - reg add HKLM\SYSTEM\Setup\LabConfig /v BypassStorageCheck /d 1 /t reg_dword /f - 5 - reg add HKLM\SYSTEM\Setup\LabConfig /v BypassCPUCheck /d 1 /t reg_dword /f - - - - - - 1 - reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t reg_dword /d 1 /f - - - 2 - reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersion /d 1 /t reg_dword /f - - 3 - reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersionInfo /d 25H1 /f - - - - - - falsefalse - false3 - - - - 1 - reg add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v SV1 /d 0 /t reg_dword /f - 2 - reg add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v SV2 /d 0 /t reg_dword /f - - - - diff --git a/bypass11/Quick_11_iso_esd_wim_TPM_toggle.bat b/bypass11/Quick_11_iso_esd_wim_TPM_toggle.bat deleted file mode 100644 index 16b83c2..0000000 --- a/bypass11/Quick_11_iso_esd_wim_TPM_toggle.bat +++ /dev/null @@ -1,64 +0,0 @@ -@(echo off% <#%) &color 07 &title Quick 11 iso esd wim TPM toggle by AveYo - with SendTo menu entry -set "0=%~f0" &set "1=%~f1"&set "2=%~2"& powershell -nop -c iex ([io.file]::ReadAllText($env:0)) &pause &exit/b ||#>)[1] - -#:: what's new in v1.2: add uninstall when run again without parameters (issue #96) -$timer = $(get-date) - -#:: Install to SendTo menu when run from another location -$SendTo = [Environment]::GetFolderPath('ApplicationData') + '\Microsoft\Windows\SendTo' -$Script = "$SendTo\Quick_11_iso_esd_wim_TPM_toggle.bat" -if (!$env:1 -and $env:0 -and !(test-path $Script)) { - write-host "`n No input iso / esd / wim file to patch! use 'Send to' context menu ...`n" -fore Yellow - copy $env:0 $Script -force -} -elseif (!$env:1 -and $env:0 -and (test-path $Script)) { - write-host "`n Removed 'Send to' entry - run again to install ...`n" -fore Magenta - del $Script -force -} -if (!$env:1) { return } - -#:: Can force either patch or undo via second commandline parameter: 1 to patch 0 to undo -if (1 -eq $env:2) {$toggle = 1} elseif (0 -eq $env:2) {$toggle = 0} else {$toggle = 2} - -#:: Verify extension is .iso .esd or .wim -$input = get-item -lit $env:1; $invalid = '.iso','.esd','.wim' -notcontains $input.Extension -if ($invalid) {write-host "`n Input is not a iso / esd / wim file ...`n" -fore Yellow; return } -try {[io.file]::OpenWrite($input).close()} catch {write-host "`n ERROR! $input read-only or in use ...`n" -fore Red; return } - -#:: TPM patch via InstallationType Server -$typeC = 'Client'; $typeS = 'Server' -$block = 1048576; $chunk = 2097152; $count = [uint64]([IO.FileInfo]$input).Length / $chunk - 1 -$bytes = new-object "Byte[]" ($chunk); $begin = [uint64]0; $final = [uint64]0; $limit = [uint64]0 -function tochars {return [Text.Encoding]::GetEncoding(28591).GetString([Text.Encoding]::Unicode.GetBytes($args[0]))} -$find1 = tochars ""; $find2 = tochars ""; $cli = tochars $typeC; $srv = tochars $typeS - -$f = new-object IO.FileStream ($input, 3, 3, 1); $p = 0; $p = $f.Seek(0, 2) -write-host "$input`nsearching $p bytes, please wait ...`n" -for ($o = 1; $o -le $count; $o++) { - $p = $f.Seek(-$chunk, 1); $r = $f.Read($bytes, 0, $chunk); if ($r -ne $chunk) {write-host invalid block $r; break} - $u = [Text.Encoding]::GetEncoding(28591).GetString($bytes); $t = $u.LastIndexOf($find1, [StringComparison]4) - if ($t -ge 0) { - $f.Seek(($t -$chunk), 1) >'' - for ($o = 1; $o -le $chunk; $o++) { $f.Seek(-2, 1) >''; if ($f.ReadByte() -eq 0xfe) {$begin = $f.Position; break} } - $limit = $f.Length - $begin; if ($limit -lt $chunk) {$x = $limit} else {$x = $chunk} - $bytes = new-object "Byte[]" ($x); $r = $f.Read($bytes, 0, $x); - $u = [Text.Encoding]::GetEncoding(28591).GetString($bytes); $t = $u.IndexOf($find2, [StringComparison]4) - if ($t -ge 0) {$f.Seek(($t + 12 -$x), 1) >''; $final = $f.Position} ; break - } else { $p = $f.Seek(-$chunk, 1)} -} - -if ($begin -gt 0 -and $final -gt $begin) { - $x = $final - $begin; $f.Seek(-$x, 1) >''; $bytes = new-object "Byte[]" ($x); $r = $f.Read($bytes, 0, $x) - if ($r -ne $x) {break} - $t = [Text.Encoding]::GetEncoding(28591).GetString($bytes) - if ($t.IndexOf($cli, [StringComparison]4) -ge 0) {$src = 0} else {$src = 1} - if ($src -eq 0 -and $toggle -ne 0) {$old = $cli; $new = $srv} elseif ($src -eq 1 -and $toggle -ne 1) {$old = $srv; $new = $cli} - else {write-host "`n:) $input already has TPM patch $toggle"; $f.Dispose(); return} - $t = $t.Replace($old, $new); $t; $b = [Text.Encoding]::GetEncoding(28591).GetBytes($t); $f.Seek(-$x, 1) >''; $f.Write($b, 0, $x) - if ($src -eq 1) {write-host "`n :D TPM patch removed" -fore Green} else {write-host "`n:D TPM patch added" -fore Green} - $f.Dispose(); [GC]::Collect() -} else {write-host "`n;( TPM patch failed" -fore Red; $f.Dispose()} - -#:: how quick was that?? -$(get-date) - $script:timer -#:: done diff --git a/bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd b/bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd deleted file mode 100644 index 1e5f2bf..0000000 --- a/bypass11/Skip_TPM_Check_on_Dynamic_Update.cmd +++ /dev/null @@ -1,62 +0,0 @@ -@(set '(=)||' <# lean and mean cmd / powershell hybrid #> @' - -::# Get 11 on 'unsupported' PC via Windows Update or mounted ISO (no patching needed) -::# if wu download stuck at 0% use OfflineInsiderEnroll by whatever127 and abbodi1406 -::# V9+ rebased on cmd due to defender transgression; skip already patched media (0b) - -@echo off & title get 11 on 'unsupported' PC || AveYo 2022.05.11 -if /i "%~f0" neq "%ProgramData%\get11.cmd" goto setup -set CLI=%*& set SOURCES=%SystemDrive%\$WINDOWS.~BT\Sources& set MEDIA=.& set /a VER=11 -if not defined CLI (exit /b) else if not exist %SOURCES%\SetupHost.exe (exit /b) -if not exist %SOURCES%\SetupCore.exe mklink /h %SOURCES%\SetupCore.exe %SOURCES%\SetupHost.exe >nul -for %%W in (%CLI%) do if /i %%W == /InstallFile (set "MEDIA=") else if not defined MEDIA set "MEDIA=%%~dpW" -set /a restart_application=0x800705BB & call set CLI=%%CLI:%1 =%%&; -set /a incorrect_parameter=0x80070057 & set SRV=%CLI:/Product Client =%&; -set /a launch_option_error=0xc190010a & set SRV=%SRV:/Product Server =%&; -powershell -win 1 -nop -c ";" -if %VER% == 11 for %%W in ("%MEDIA%appraiserres.dll") do if exist %%W if %%~zW == 0 set AlreadyPatched=1 & set /a VER=10 -if %VER% == 11 findstr /r "P.r.o.d.u.c.t.V.e.r.s.i.o.n...1.0.\..0.\..2.[25]" %SOURCES%\SetupHost.exe >nul 2>nul || set /a VER=10 -if %VER% == 11 if not exist "%MEDIA%EI.cfg" (echo;[Channel]>%SOURCES%\EI.cfg & echo;_Default>>%SOURCES%\EI.cfg) 2>nul -if %VER% == 11 set CLI=/Product Server /Compat IgnoreWarning /MigrateDrivers All /Telemetry Disable %SRV%&; -%SOURCES%\SetupCore.exe %CLI% -if %errorlevel% == %restart_application% %SOURCES%\SetupCore.exe %CLI% -exit /b - -:setup -::# elevate with native shell by AveYo ->nul reg add hkcu\software\classes\.Admin\shell\runas\command /f /ve /d "cmd /x /d /r set \"f0=%%2\"& call \"%%2\" %%3"& set _= %* ->nul fltmc|| if "%f0%" neq "%~f0" (cd.>"%temp%\runas.Admin" & start "%~n0" /high "%temp%\runas.Admin" "%~f0" "%_:"=""%" & exit /b) - -::# lean xp+ color macros by AveYo: %<%:af " hello "%>>% & %<%:cf " w\"or\"ld "%>% for single \ / " use .%|%\ .%|%/ \"%|%\" -for /f "delims=:" %%s in ('echo;prompt $h$s$h:^|cmd /d') do set "|=%%s"&set ">>=\..\c nul&set /p s=%%s%%s%%s%%s%%s%%s%%snul findstr /c:\ /a" &set ">=%>>%&echo;" &set "|=%|:~0,1%" &set /p s=\"%appdata%\c" - -::# toggle when launched without arguments, else jump to arguments: "install" or "remove" -set CLI=%*& set IFEO=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options&; -wmic /namespace:"\\root\subscription" path __EventFilter where Name="Skip TPM Check on Dynamic Update" delete >nul 2>nul & rem v1 -reg delete "%IFEO%\vdsldr.exe" /f 2>nul & rem v2 - v5 -if /i "%CLI%"=="" reg query "%IFEO%\SetupHost.exe\0" /v Debugger >nul 2>nul && goto remove || goto install -if /i "%~1"=="install" (goto install) else if /i "%~1"=="remove" goto remove - -:install -::@prompt $H & echo on -copy /y "%~f0" "%ProgramData%\get11.cmd" >nul 2>nul -reg add "%IFEO%\SetupHost.exe" /f /v UseFilter /d 1 /t reg_dword >nul -reg add "%IFEO%\SetupHost.exe\0" /f /v FilterFullPath /d "%SystemDrive%\$WINDOWS.~BT\Sources\SetupHost.exe" >nul -reg add "%IFEO%\SetupHost.exe\0" /f /v Debugger /d "%ProgramData%\get11.cmd" >nul -::@echo off & echo; -%<%:f0 " Skip TPM Check on Dynamic Update V9+ "%>>% & %<%:2f " INSTALLED "%>>% & %<%:f0 " run again to remove "%>% -if /i "%CLI%"=="" timeout /t 7 -exit /b - -:remove -::@prompt $H & echo on -del /f /q "%ProgramData%\get11.cmd" >nul 2>nul -reg delete "%IFEO%\SetupHost.exe" /f >nul 2>nul -::@echo off & echo; -%<%:f0 " Skip TPM Check on Dynamic Update V9+ "%>>% & %<%:df " REMOVED "%>>% & %<%:f0 " run again to install "%>% -if /i "%CLI%"=="" timeout /t 7 -exit /b - -'@); $0 = "$env:temp\Skip_TPM_Check_on_Dynamic_Update.cmd"; ${(=)||} | out-file $0 -encoding default -force; & $0 -# press enter diff --git a/bypass11/auto.cmd b/bypass11/auto.cmd deleted file mode 100644 index 444947e..0000000 --- a/bypass11/auto.cmd +++ /dev/null @@ -1,150 +0,0 @@ -@echo off& title Auto Upgrade - MCT || supports Ultimate / PosReady / Embedded / LTSC / Enterprise Eval -set "EDITION_SWITCH=" -set "SKIP_11_SETUP_CHECKS=1" -set OPTIONS=/SelfHost /Auto Upgrade /MigChoice Upgrade /Compat IgnoreWarning /MigrateDrivers All /ResizeRecoveryPartition Disable -set OPTIONS=%OPTIONS% /ShowOOBE None /Telemetry Disable /CompactOS Disable /DynamicUpdate Enable /SkipSummary /Eula Accept - -pushd "%~dp0" & for %%w in (%1) do pushd %%w -for %%i in ("x86\" "x64\" "") do if exist "%%~isources\setupprep.exe" set "dir=%%~i" -pushd "%dir%sources" || (echo "%dir%sources" not found! script should be run from windows setup media & timeout /t 5 & exit /b) - -::# start sources\setup if under winpe (when booted from media) [Shift] + [F10]: c:\auto or d:\auto or e:\auto etc. -reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinPE">nul 2>nul && ( - for %%s in (sCPU sRAM sSecureBoot sStorage sTPM) do reg add HKLM\SYSTEM\Setup\LabConfig /f /v Bypas%%sCheck /d 1 /t reg_dword - start "WinPE" sources\setup.exe & exit /b -) - -::# init variables -setlocal EnableDelayedExpansion -set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\windowspowershell\v1.0\;%PATH%" -set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\windowspowershell\v1.0\;%PATH%" - -::# elevate so that workarounds can be set under windows -fltmc >nul || (set _="%~f0" %*& powershell -nop -c start -verb runas cmd \"/d /x /c call $env:_\"& exit /b) - -::# undo any previous regedit edition rename (if upgrade was interrupted) -set "NT=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -for %%v in (CompositionEditionID EditionID ProductName) do ( - call :reg_query "%NT%" %%v_undo %%v - if defined %%v reg delete "%NT%" /v %%v_undo /f & for %%A in (32 64) do reg add "%NT%" /v %%v /d "!%%v!" /f /reg:%%A -) >nul 2>nul - -::# get current version -for %%v in (CompositionEditionID EditionID ProductName CurrentBuildNumber) do call :reg_query "%NT%" %%v %%v -for /f "tokens=2-3 delims=[." %%i in ('ver') do for %%s in (%%i) do set /a Version=%%s*10+%%j - -::# WIM_INFO w_5=wim_5th b_5=build_5th p_5=patch_5th a_5=arch_5th l_5=lang_5th e_5=edi_5th d_5=desc_5th i_5=edi_5th i_Core=index -set "0=%~f0"& set wim=& set ext=.esd& if exist install.wim (set ext=.wim) else if exist install.swm set ext=.swm -set snippet=powershell -nop -c iex ([io.file]::ReadAllText($env:0)-split'#[:]wim_info[:]')[1]; WIM_INFO install%ext% 0 0 -set w_count=0& for /f "tokens=1-7 delims=," %%i in ('"%snippet%"') do (set w_%%i=%%i,%%j,%%k,%%l,%%m,%%n,%%o& set /a w_count+=1 -set b_%%i=%%j& set p_%%i=%%k& set a_%%i=%%l& set l_%%i=%%m& set e_%%i=%%n& set d_%%i=%%o& set i_%%n=%%i& set i_%%i=%%n) - -::# print available editions in install.esd via wim_info snippet -echo;------------------------------------------------------------------------------------ -for /l %%i in (1,1,%w_count%) do call echo;%%w_%%i%% -echo;------------------------------------------------------------------------------------ - -::# get requested edition in EI.cfg or PID.txt or OPTIONS -if exist product.ini for /f "tokens=1,2 delims==" %%O in (product.ini) do if not "%%P" equ "" (set pid_%%O=%%P& set pn_%%P=%%O) -set EI=& set Name=& set eID=& set reg=& set "cfg_filter=EditionID Channel OEM Retail Volume _Default VL 0 1 ^$" -if exist EI.cfg for /f "tokens=*" %%i in ('findstr /v /i /r "%cfg_filter%" EI.cfg') do (set EI=%%i& set eID=%%i) -if exist PID.txt for /f "delims=;" %%i in (PID.txt) do set %%i 2>nul -if not defined Value for %%s in (%OPTIONS%) do if defined pn_%%s (set Name=!pn_%%s!& set Name=!Name:gvlk=!) -if defined Value if not defined Name for %%s in (%Value%) do (set Name=!pn_%%s!& set Name=!Name:gvlk=!) -if defined EDITION_SWITCH (set eID=%EDITION_SWITCH%) else if defined Name for %%s in (%Name%) do (set eID=%Name%) -if not defined eID set eID=%EditionID%& if not defined EditionID set eID=Professional& set EditionID=Professional -if /i "%EditionID%" equ "%eID%" (set changed=) else set changed=1 - -::# upgrade matrix - now also for Enterprise Eval - automatically pick edition that would keep files and apps -if /i CoreCountrySpecific equ %eID% set "comp=!eID!" & set "reg=!eID!" & if not defined i_!eID! set "eID=Core" -if /i CoreSingleLanguage equ %eID% set "comp=Core" & set "reg=!eID!" & if not defined i_!eID! set "eID=Core" -for %%e in (Starter HomeBasic HomePremium CoreConnectedCountrySpecific CoreConnectedSingleLanguage CoreConnected Core) do ( - if /i %%e equ %eID% set "comp=Core" & set "eID=Core" - if /i %%eN equ %eID% set "comp=CoreN" & set "eID=CoreN" - if /i %%e equ %eID% if not defined i_Core set "eID=Professional" & if not defined reg set "reg=Core" - if /i %%eN equ %eID% if not defined i_CoreN set "eID=ProfessionalN" & if not defined reg set "reg=CoreN" -) -for %%e in (Ultimate ProfessionalStudent ProfessionalCountrySpecific ProfessionalSingleLanguage) do ( - if /i %%e equ %eID% (set "eID=Professional") else if /i %%eN equ %eID% set "eID=ProfessionalN" -) -for %%e in (EnterpriseG EnterpriseS IoTEnterpriseS IoTEnterprise Embedded) do ( - if /i %%e equ %eID% (set "eID=Enterprise") else if /i %%eN equ %eID% set "eID=EnterpriseN" -) -for %%e in (Enterprise EnterpriseS) do ( - if /i %%eEval equ %eID% (set "eID=Enterprise") else if /i %%eNEval equ %eID% set "eID=EnterpriseN" -) -if /i Enterprise equ %eID% set "comp=!eID!" & if not defined i_!eID! set "eID=Professional" & set "reg=!comp!" -if /i EnterpriseN equ %eID% set "comp=!eID!" & if not defined i_!eID! set "eID=ProfessionalN" & set "reg=!comp!" -for %%e in (Education ProfessionalEducation ProfessionalWorkstation Professional Cloud) do ( - if /i %%eN equ %eID% set "comp=EnterpriseN" & if not defined reg set "reg=%%eN" - if /i %%e equ %eID% set "comp=Enterprise" & if not defined reg set "reg=%%e" - if /i %%eN equ %eID% set "eID=ProfessionalN" & if defined i_%%eN set "eID=%%eN" - if /i %%e equ %eID% set "eID=Professional" & if defined i_%%e set "eID=%%e" -) -set index=& set lst=Professional& for /l %%i in (1,1,%w_count%) do if /i !i_%%i! equ !eID! set "index=%%i" & set "eID=!i_%%i!" -if not defined index set index=1& set eID=!i_1!& if defined i_%lst% set "index=!i_%lst%!" & set "eID=%lst%"& set "comp=Enterprise" -set Build=!b_%index%!& set OPTIONS=%OPTIONS% /ImageIndex %index%& if defined changed if not defined reg set "reg=!eID!" -echo;Current edition: %EditionID% & echo;Regedit edition: %reg% & echo;Index: %index% Image: %eID% -timeout /t 10 - -::# disable upgrade blocks -reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f /v DisableWUfBSafeguards /d 1 /t reg_dword >nul 2>nul - -::# prevent usage of MCT for intermediary upgrade in Dynamic Update (causing 7 to 19H1 instead of 7 to 21H2 for example) -if "%Build%" gtr "15063" (set OPTIONS=%OPTIONS% /UpdateMedia Decline) - -::# skip windows 11 upgrade checks: add launch option trick if old-style 0-byte file trick is not on the media -if "%Build%" lss "22000" set /a SKIP_11_SETUP_CHECKS=0 -reg add HKLM\SYSTEM\Setup\MoSetup /f /v AllowUpgradesWithUnsupportedTPMorCPU /d 1 /t reg_dword >nul 2>nul &rem ::# TPM 1.2+ only -if "%SKIP_11_SETUP_CHECKS%" equ "1" cd.>appraiserres.dll 2>nul & rem ::# writable media only -for %%A in (appraiserres.dll) do if %%~zA gtr 0 (set TRICK=/Product Server ) else (set TRICK=) -if "%SKIP_11_SETUP_CHECKS%" equ "1" (set OPTIONS=%TRICK%%OPTIONS%) - -::# auto upgrade with edition lie workaround to keep files and apps - all 1904x builds allow up/downgrade between them -if defined reg call :rename %reg% -start "auto" setupprep.exe %OPTIONS% -echo;DONE - -EXIT /b - -:rename EditionID -set "NT=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -for %%v in (CompositionEditionID EditionID ProductName) do reg add "%NT%" /v %%v_undo /d "!%%v!" /f >nul 2>nul -for %%A in (32 64) do ( - reg add "%NT%" /v CompositionEditionID /d "%comp%" /f /reg:%%A - reg add "%NT%" /v EditionID /d "%~1" /f /reg:%%A - reg add "%NT%" /v ProductName /d "%~1" /f /reg:%%A -) >nul 2>nul -exit /b - -:reg_query [USAGE] call :reg_query "HKCU\Volatile Environment" Value variable -(for /f "tokens=2*" %%R in ('reg query "%~1" /v "%~2" /se "|" %4 2^>nul') do set "%~3=%%S") & exit /b - -#:WIM_INFO:# [PARAMS]: "file" [optional]Index or 0 = all Output 0 = txt 1 = xml 2 = file.txt 3 = file.xml 4 = xml object -set ^ #=;$f0=[io.file]::ReadAllText($env:0); $0=($f0-split '#[:]WIM_INFO[:]' ,3)[1]; $1=$env:1-replace'([`@$])','`$1'; iex($0+$1) -set ^ #=& set "0=%~f0"& set 1=;WIM_INFO %*& powershell -nop -c "%#%"& exit /b %errorcode% -function WIM_INFO ($file = 'install.esd', $index = 0, $out = 0) { :info while ($true) { - $block = 2097152; $bytes = new-object 'Byte[]' ($block); $begin = [uint64]0; $final = [uint64]0; $limit = [uint64]0 - $steps = [int]([uint64]([IO.FileInfo]$file).Length / $block - 1); $enc = [Text.Encoding]::GetEncoding(28591); $delim = @() - foreach ($d in '/INSTALLATIONTYPE','/WIM') {$delim += $enc.GetString([Text.Encoding]::Unicode.GetBytes([char]60+ $d +[char]62))} - $f = new-object IO.FileStream ($file, 3, 1, 1); $p = 0; $p = $f.Seek(0, 2) - for ($o = 1; $o -le $steps; $o++) { - $p = $f.Seek(-$block, 1); $r = $f.Read($bytes, 0, $block); if ($r -ne $block) {write-host invalid block $r; break} - $u = [Text.Encoding]::GetEncoding(28591).GetString($bytes); $t = $u.LastIndexOf($delim[0], [StringComparison]::Ordinal) - if ($t -lt 0) { $p = $f.Seek(-$block, 1)} else { [void]$f.Seek(($t -$block), 1) - for ($o = 1; $o -le $block; $o++) { [void]$f.Seek(-2, 1); if ($f.ReadByte() -eq 0xfe) {$begin = $f.Position; break} } - $limit = $f.Length - $begin; if ($limit -lt $block) {$x = $limit} else {$x = $block} - $bytes = new-object 'Byte[]' ($x); $r = $f.Read($bytes, 0, $x) - $u = [Text.Encoding]::GetEncoding(28591).GetString($bytes); $t = $u.IndexOf($delim[1], [StringComparison]::Ordinal) - if ($t -ge 0) {[void]$f.Seek(($t + 12 -$x), 1); $final = $f.Position} ; break } } - if ($begin -gt 0 -and $final -gt $begin) { - $x = $final - $begin; [void]$f.Seek(-$x, 1); $bytes = new-object 'Byte[]' ($x); $r = $f.Read($bytes, 0, $x) - if ($r -ne $x) {$f.Dispose(); break} else {[xml]$xml = [Text.Encoding]::Unicode.GetString($bytes); $f.Dispose()} - } else {$f.Dispose()} ; break :info } - if ($out -eq 1) {[console]::OutputEncoding=[Text.Encoding]::UTF8; $xml.Save([Console]::Out); ''; return} - if ($out -eq 3) {try{$xml.Save(($file-replace'esd$','xml'))}catch{}; return}; if ($out -eq 4) {return $xml} - $txt = ''; foreach ($i in $xml.WIM.IMAGE) {if ($index -gt 0 -and $($i.INDEX) -ne $index) {continue}; [int]$a='1'+$i.WINDOWS.ARCH - $txt+= $i.INDEX+','+$i.WINDOWS.VERSION.BUILD+','+$i.WINDOWS.VERSION.SPBUILD+','+$(@{10='x86';15='arm';19='x64';112='arm64'}[$a]) - $txt+= ','+$i.WINDOWS.LANGUAGES.LANGUAGE+','+$i.WINDOWS.EDITIONID+','+$i.NAME+[char]13+[char]10}; $txt=$txt-replace',(?=,)',', ' - if ($out -eq 2) {try{[io.file]::WriteAllText(($file-replace'esd$','txt'),$txt)}catch{}; return}; if ($out -eq 0) {return $txt} -} #:WIM_INFO:# Quick WIM SWM ESD ISO info v2 - lean and mean snippet by AveYo, 2021 diff --git a/bypass11/readme.md b/bypass11/readme.md deleted file mode 100644 index bd18689..0000000 --- a/bypass11/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -Get 11 on 'unsupported' PC via Windows Update or mounted ISO (no patching needed) ---------------------------------------------------------------------------------- -Step 1: use [Skip_TPM_Check_on_Dynamic_Update.cmd](Skip_TPM_Check_on_Dynamic_Update.cmd) to automatically bypass setup requirements -_It's a set it and forget it script, with built-in undo - v7 using more reliable /Product Server trick_ -_V9 rebased on cmd due to defender transgression; skips already patched media (0b)_ - -Step 2: use [OfflineInsiderEnroll](https://github.com/abbodi1406/offlineinsiderenroll) to subscribe to the channel you want -_while on 10, use BETA for Windows 11 22000.x builds (release), DEV for Windows 11 225xx.x builds (experimental)_ - -Step 3: check for updates via Settings - Windows Update and select Upgrade to Windows 11 - -Get 11 on 'unsupported' PC via MediaCreationTool.bat ----------------------------------------------------- -[MediaCreationTool.bat](../MediaCreationTool.bat) creates 11 media that will **automatically skip clean install checks** -***Auto Upgrade*** preset, or launching `auto.cmd` from the created media will **automatically skip upgrade checks** -Running `setup.exe` from the created media is not guaranteed to bypass setup checks (it should for now) -To NOT add bypass to the media, use ***MCT Defaults*** preset or rename the script as `def MediaCreationTool.bat` - -> Regarding the bypass method, for a more reliable and future-proof experience, -> clean installation is still handled via _winsetup.dll_ patching in _boot.wim_ -> upgrade is now handled ~~only~~ via `auto.cmd` with the */Product Server* trick -> *Just ignore the 'Windows Server' label, please!* -> NEWS: temporarily added back my old-style 0-byte bypass as it still works on release - -i: [Skip_TPM_Check_on_Dynamic_Update.cmd](Skip_TPM_Check_on_Dynamic_Update.cmd) acts globally and **skips setup.exe upgrade checks as well** -_regardless of mounted iso / usb media already having a bypass added or not_ - -Already have a 11 ISO, USB or extracted Files and want to add a bypass ----------------------------------------------------------------------- -Use [Quick_11_iso_esd_wim_TPM_toggle.bat](Quick_11_iso_esd_wim_TPM_toggle.bat) from the confort of right-click - SendTo menu - -Switches installation type to Server skipping install checks, or back to Client if run again on the same file, restoring hash! -**directly** on any downloaded windows 11 iso or extracted esd and wim, so there's no iso / dism mounting -_defiantly quick_ - -Works great with business / enterprise media since it comes with ei.cfg so setup won't ask for product key at start -for consumer / core media you can add a generic `EI.cfg` to the media\sources yourself with this content: -`[Channel]` -`_Default` - -> if setup still asks for product key, input retail or gvlk keys found in media\sources\product.ini -> _gvlkprofessional=W269N-WFGWX-YVC9B-4J6C9-T83GX gvlkcore=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99_ -> _gvlkenterprise=NPPR9-FWDCX-D2C8J-H872K-2YT43 gvlkeducation=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 etc._ - -i: [Skip_TPM_Check_on_Dynamic_Update.cmd](Skip_TPM_Check_on_Dynamic_Update.cmd) acts globally and **skips setup.exe upgrade checks as well** -_regardless of mounted iso / usb media already having a bypass added or not_ - -Offline local account on 11 Home / Pro --------------------------------------- -[MediaCreationTool.bat](../MediaCreationTool.bat) creates media that re-enables the *I dont have internet* OOBE choice (OOBE\BypassNRO) -It does so via [AutoUnattend.xml](AutoUnattend.xml), inserted into `boot.wim` to not cause setup.exe issues under windows -More conveniently can be placed at the root of 11 media, along with [auto.cmd](auto.cmd) to use for upgrades -Should work with any 11 Release (22000.x) or Dev (22xxx.x) media - and it hides unsupported PC nags as a bonus ;) -_If you have already connected at OOBE, can try email: `a` password: `a` to switch to local account_ - -Manage and troubleshoot Windows Update on any windows version and edition -------------------------------------------------------------------------- -Use [windows_update_refresh.bat](https://pastebin.com/XQsgjt9p) to clear pending updates (including sneaky feature upgrades) -Use [windows_drivers_update_toggle.bat](https://pastebin.com/cK8y4YEX) to block driver updates even on Home editions -Use [windows_feature_update_toggle.bat](https://pastebin.com/EcLB14hg) to block feature upgrades on 1507 - 21H2 even on Home editions! diff --git a/bypass11/windows_update_refresh.bat b/bypass11/windows_update_refresh.bat deleted file mode 100644 index adc571c..0000000 --- a/bypass11/windows_update_refresh.bat +++ /dev/null @@ -1,43 +0,0 @@ -@(set '(=)||' <# lean and mean cmd / ps1 hybrid, can paste into powershell console #> @' - -@echo off & title WINDOWS UPDATE REFRESH - -::# elevate with native shell by AveYo ->nul reg add hkcu\software\classes\.Admin\shell\runas\command /f /ve /d "cmd /x /d /r set \"f0=%%2\"& call \"%%2\" %%3"& set _= %* ->nul fltmc|| if "%f0%" neq "%~f0" (cd.>"%temp%\runas.Admin" & start "%~n0" /high "%temp%\runas.Admin" "%~f0" "%_:"=""%" & exit /b) - -::# stop pending updates -for /f "tokens=6 delims=[]. " %%b in ('ver') do set /a BUILD=%%b -set KILL=& set UPDATE=windowsupdatebox updateassistant updateassistantcheck windows10upgrade windows10upgraderapp -for %%w in (dism setuphost tiworker usoclient sihclient wuauclt culauncher sedlauncher osrrb ruximics ruximih disktoast eosnotify - musnotification musnotificationux musnotifyicon monotificationux mousocoreworker %UPDATE%) do call set KILL=/im %%w.exe %%KILL%% -taskkill /f %KILL% 2>nul & dism /cleanup-wim & bitsadmin /reset /allusers -for %%w in (msiserver wuauserv bits usosvc dosvc cryptsvc) do start /min cmd /d /x /c net stop %%w /y -taskkill /f %KILL% /im systemsettings.exe 2>nul & timeout 7 /nobreak >nul -for /f tokens^=3^,5^ delims^=^" %%X in ('tasklist /fo csv /nh /svc /fi "services eq wuauserv"') do ( - taskkill /f /pid %%X & for %%w in (%%Y) do if /i %%w neq wuauserv if /i %%w neq bits if /i %%w neq usosvc net start %%w /y -) - -::# clear update logs -set "DATA=%ProgramData%" & set "LOG=%SystemRoot%\Logs\WindowsUpdate" & set "SRC=%SystemDrive%\$WINDOWS.~BT\Sources" -del /f /s /q "%DATA%\USOShared\Logs\*" "%DATA%\USOPrivate\UpdateStore\*" "%DATA%\Microsoft\Network\Downloader\*" 2>nul -powershell -nop -c "try {$null=Get-WindowsUpdateLog -LogPath $env:temp\WU.log -ForceFlush -Confirm:$false -ea 0} catch {}" >nul -rmdir /s /q "%LOG%" "%ProgramFiles%\UNP" "%SystemRoot%\SoftwareDistribution" "%SystemDrive%\Windows.old\Cleanup" -if exist %SRC%\setuphost.exe if exist %SRC%\setupprep.exe start "cleanup" /wait %SRC%\setupprep.exe /cleanup /quiet - -::# remove forced upgraders and update remediators -call "%SystemRoot%\UpdateAssistant\Windows10Upgrade.exe" /ForceUninstall 2>nul -call "%SystemDrive%\Windows10Upgrade\Windows10UpgraderApp.exe" /ForceUninstall 2>nul -msiexec /X {1BA1133B-1C7A-41A0-8CBF-9B993E63D296} /qn 2>nul & echo;Removed osrss -msiexec /X {8F2D6CEB-BC98-4B69-A5C1-78BED238FE77} /qn 2>nul & echo;Removed rempl, ruxim -msiexec /X {0746492E-47B6-4251-940C-44462DFD74BB} /qn 2>nul & echo;Removed CUAssistant -msiexec /X {76A22428-2400-4521-96AF-7AC4A6174CA5} /qn 2>nul & echo;Removed UpdateAssistant & echo; - -::# start update services -net start bits /y & net start wuauserv /y & net start usosvc /y 2>nul & start /min UsoClient RefreshSettings -echo;AveYo: run again / reboot if there are still pending files or services & pause -exit /b - -'@); $0 = "$env:temp\windows_update_refresh.bat"; ${(=)||} | out-file $0 -encoding default -force; & $0 - # press enter -