本帖最后由 z_yj 于 2024-12-13 13:37 编辑
windows11 微软设立了硬件门槛,不能满足要求的电脑无法安装。虽然无法满足硬件要求,一些人还是想尽办法跳过这些限制,下面的各种方法或许能满足这方面的需求。
特别提醒:在安装新系统前备份自己需要的资料,尽量拔出不需要的硬件(移动硬盘、U盘,特别设备等等),以免误操作损失资料。
方法一:使用微软提供的镜像
微软量身打造一款不需要硬件要求的系统Windows 11 lot LTSC,但是官方只有英文版,可以加载中文语言包或者他人改造的镜像
【新提醒】体验 Windows 11 lot LTSC 英文版 - 远景论坛 - 微软极客社区 -
方法二:使用第三方软件
1. Rufus
Rufus - 轻松创建 USB 启动盘
【新提醒】Rufus推出新版支持24H2绕过硬件安装 - 远景论坛 - 微软极客社区 -
最新版本是4.6 下图第一项就是跳过硬件检查,后面还有其他有用的设置,自己根据需要勾选
这个方法是对原版镜像在刻录到U盘进行改造,是一个比较实用的手段

2. 直接修改iso文件
Skip_TPM_Check_on_Dynamic_Update.cmd 源码如下
这个是 AveYo 2023.12.07发布的,希望还有用
Skip_TPM_Check_on_Dynamic_Update.rar
(2.54 KB, 下载次数: 44)
- @(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
- @echo 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
复制代码
方法三: 安装时修改注册表
在 Windows11 安装界面按Shift + F10 打开命令行界面,执行如下命令: REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /tREG_DWORD /d 1 REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck/t REG_DWORD /d 1 REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /tREG_DWORD /d 1
方法四:利用windows Server及windows 10骗过硬件检查 (Windows 10 改wim)
【新提醒】便捷安全绕过Windows 11硬件检查升级24h2 - 远景论坛 - 微软极客社区 -
———————————————————————————————————————————— 其他参见:
|