Dynamic Windows 11 Setup TPM Bypass

Discussion in 'Windows 11' started by AveYo, Sep 2, 2021.

  1. dany0071199661

    dany0071199661 MDL Member

    Oct 5, 2021
    135
    19
    10
    #361 dany0071199661, Oct 5, 2024
    Last edited by a moderator: Oct 6, 2024
    for me skip dyn update TPM v 13 works ok i run this then run installation from MS iso and everything was ok :) also not have secure boot tpm
    Code:
    @(set '(=)||' <# lean and mean cmd / powershell hybrid #> @'
    
    ::# Get 11 on 'unsupported' PC via Windows Update or mounted ISO (no patching needed)
    ::# if WU is stuck use windows_update_refresh.bat; Beta/Dev/Canary needs OfflineInsiderEnroll
    ::# V13: skip 2nd tpm check on Canary iso; no Server label; future proofing; tested with 26010 iso, wu and wu repair version
    
    [USER=842012]@echo[/USER] off & title get 11 on 'unsupported' PC || AveYo 2023.12.07
    if /i "%~f0" neq "%SystemDrive%\Scripts\get11.cmd" goto setup
    powershell -win 1 -nop -c ";"
    set CLI=%*& set SOURCES=%SystemDrive%\$WINDOWS.~BT\Sources& set MEDIA=.& set MOD=CLI& set PRE=WUA& set /a VER=11
    if not defined CLI (exit /b) else if not exist %SOURCES%\SetupHost.exe (exit /b)
    if not exist %SOURCES%\WindowsUpdateBox.exe mklink /h %SOURCES%\WindowsUpdateBox.exe %SOURCES%\SetupHost.exe
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /f /v DisableWUfBSafeguards /d 1 /t reg_dword
    reg add HKLM\SYSTEM\Setup\MoSetup /f /v AllowUpgradesWithUnsupportedTPMorCPU /d 1 /t reg_dword
    set OPT=/Compat IgnoreWarning /MigrateDrivers All /Telemetry Disable
    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 =%)
    for %%W in (%CLI%) do if /i %%W == /PreDownload (set MOD=SRV)
    for %%W in (%CLI%) do if /i %%W == /InstallFile (set PRE=ISO& set "MEDIA=") else if not defined MEDIA set "MEDIA=%%~dpW"
    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.[2-9]" %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)
    if %VER%_%PRE% == 11_ISO (%SOURCES%\WindowsUpdateBox.exe /Product Server /PreDownload /Quiet %OPT%)
    if %VER%_%PRE% == 11_ISO (del /f /q %SOURCES%\appraiserres.dll 2>nul & cd.>%SOURCES%\appraiserres.dll & call :canary)
    if %VER%_%MOD% == 11_SRV (set ARG=%OPT% %SRV% /Product Server)
    if %VER%_%MOD% == 11_CLI (set ARG=%OPT% %CLI%)
    %SOURCES%\WindowsUpdateBox.exe %ARG%
    if %errorlevel% == %restart_application% (call :canary & %SOURCES%\WindowsUpdateBox.exe %ARG%)
    exit /b
    
    :canary iso skip 2nd tpm check by AveYo
    set C=  $X='%SOURCES%\hwreqchk.dll'; $Y='SQ_TpmVersion GTE 1'; $Z='SQ_TpmVersion GTE 0'; if (test-path $X) {
    set C=%C%  try { takeown.exe /f $X /a; icacls.exe $X /grant *S-1-5-32-544:f; attrib -R -S $X; [io.file]::OpenWrite($X).close() }
    set C=%C%  catch { return }; $R=[Text.Encoding]::UTF8.GetBytes($Z); $l=$R.Length; $i=2; $w=!1;
    set C=%C%  $B=[io.file]::ReadAllBytes($X); $H=[BitConverter]::ToString($B) -replace '-';
    set C=%C%  $S=[BitConverter]::ToString([Text.Encoding]::UTF8.GetBytes($Y)) -replace '-';
    set C=%C%  do { $i=$H.IndexOf($S, $i + 2); if ($i -gt 0) { $w=!0; for ($k=0; $k -lt $l; $k++) { $B[$k + $i / 2]=$R[$k] } } }
    set C=%C%  until ($i -lt 1); if ($w) { [io.file]::WriteAllBytes($X, $B); [GC]::Collect() } }
    if %VER%_%PRE% == 11_ISO powershell -nop -c iex($env:C) >nul 2>nul
    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%%s<nul&popd"
    set "<=pushd "%appdata%"&2>nul findstr /c:\ /a" &set ">=%>>%&echo;" &set "|=%|:~0,1%" &set /p s=\<nul>"%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
    mkdir %SystemDrive%\Scripts >nul 2>nul & copy /y "%~f0" "%SystemDrive%\Scripts\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 "%SystemDrive%\Scripts\get11.cmd" >nul
    echo;
    %<%:f0 " Skip TPM Check on Dynamic Update V13 "%>>% & %<%:2f " INSTALLED "%>>% & %<%:f0 " run again to remove "%>%
    if /i "%CLI%"=="" timeout /t 7
    exit /b
    
    :remove
    del /f /q "%SystemDrive%\Scripts\get11.cmd" "%Public%\get11.cmd" "%ProgramData%\get11.cmd" >nul 2>nul
    reg delete "%IFEO%\SetupHost.exe" /f >nul 2>nul
    echo;
    %<%:f0 " Skip TPM Check on Dynamic Update V13 "%>>% & %<%: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"; ${(=)||} -split "\r?\n" | out-file $0 -encoding default -force; & $0
    # press enter
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. bjf2000

    bjf2000 MDL Expert

    Apr 11, 2008
    1,101
    199
    60
    I was talking about the problem relating to WU though. You used an ISO.

    Now that you mention an ISO though, at least with 26120 builds (you didn't say what you were using), I found some months ago when using a mounted ISO that you have to disable the script. Otherwise, Setup complains about not having Secure Boot (if you really don't, which I don't). The workaround is to run it as: setup.exe /product server

    When complete, re-enable the script.
     
  3. dany0071199661

    dany0071199661 MDL Member

    Oct 5, 2021
    135
    19
    10
    i using latest 24H2 iso previus i have installed 23H2 version-
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. Galaxian

    Galaxian MDL Junior Member

    Aug 22, 2012
    53
    7
    0
    #365 Galaxian, Oct 15, 2024
    Last edited: Oct 15, 2024
    deleted
     
  5. neapo

    neapo MDL Novice

    Apr 15, 2015
    12
    0
    0
    Is there any media creation tool windows 11 by aveyo that permits to update to 24H2?