-
Microsoft recommends against installing Windows 11 on a device that does not meet the Windows 11 minimum system requirements. If you choose to install Windows 11 on a device that does not meet these requirements, and you acknowledge and understand the risks, you can create the following registry key values and bypass the check for TPM 2.0 (at least TPM 1.2 is required) and the CPU family and model.
- Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup
- Name: AllowUpgradesWithUnsupportedTPMOrCPU
- Type: REG_DWORD
- Value: 1
-
Note: Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
Other Method to make bootable USB
Download rufus 3.18 and select on image option (no TPM – no Secure Boot)
If you want to upgrade from current version make bat file with this 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 needs OfflineInsiderEnroll ::# V9+ rebased on cmd due to defender transgression; skip already patched media (0b) @echo off & title get 11 on 'unsupported' PC || AveYo 2022.10.02 if /i "%~f0" neq "%Public%\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" powershell -win 1 -nop -c ";" 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 =%) 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.[256]" %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%) if %VER% == 11 reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /f /v DisableWUfBSafeguards /d 1 /t reg_dword >nul if %VER% == 11 reg add HKLM\SYSTEM\Setup\MoSetup /f /v AllowUpgradesWithUnsupportedTPMorCPU /d 1 /t reg_dword >nul %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%%s<nul&popd" set "<=pushd "%appdata%"&2>nul 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 copy /y "%~f0" "%Public%\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 "%Public%\get11.cmd" >nul echo; %<%:f0 " Skip TPM Check on Dynamic Update V10 "%>>% & %<%:2f " INSTALLED "%>>% & %<%:f0 " run again to remove "%>% if /i "%CLI%"=="" timeout /t 7 exit /b :remove del /f /q "%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 V10 "%>>% & %<%: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