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
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.