【W(wǎng)in 11 官方升級】老舊電腦繞過CPU/TPM 2.0 檢測升級win11方法
寫在最前面
本人電腦配置
i7-7700hq?
RTX1050
8g RAM
無TPM 2.0
升級時(shí)報(bào)錯(cuò)會(huì)報(bào)TPM 和 CPU 核心兩項(xiàng)
網(wǎng)傳方法
1. 修改注冊表,在HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup 目錄下添加AllowUpgradesWithUnsupportedTPMOrCPU 一項(xiàng)并將其值設(shè)為1,親測無效。
或者
在 HKEY_LOCAL_MACHINE\SYSTEM\Setup 目錄下
創(chuàng)建一個(gè)名為“LabConfig”的項(xiàng),接著在“LabConfig”下創(chuàng)建兩個(gè) DWORD 值:
鍵為“BypassTPMCheck”,值為“00000001”
鍵為“BypassSecureBootCheck”,值為“00000001” 未測試
2. 在用?Windows 11 安裝助手?時(shí),刪除?C:\$WINDOWS.~BT\Sources\?中的appraiserres.dll文件,親測無效
3. 用 win11?ISO 安裝包文件替換?win 10 iso鏡像?中文件,并用 win10 iso 安裝, 下載內(nèi)容過多,且需要iso編輯器,過于繁瑣,未測試
4.用 win7兼容模式運(yùn)行Windows 11 安裝助手?,親測無效
解決辦法?。。。ń刂?023-06-24 親測有效)
1. 去 微軟官網(wǎng) (https://www.microsoft.com/zh-cn/software-download/windows11)下載?Windows 11 安裝助手?

2. 創(chuàng)建一個(gè)文本文檔 (在哪都行),復(fù)制并粘貼以下代碼:
代碼在文末
3. 保存之后右鍵重命名,將后綴名改為cmd,如無法顯示后綴名在文件→查看中勾選顯示后綴名,實(shí)在不行請自行百度。
4.雙擊運(yùn)行上述代碼
5.運(yùn)行第一步中下載下來的Windows 11 安裝助手?
6.等待安裝完成
PS: 我在運(yùn)行代碼之后,是在win7兼容模式下運(yùn)行的程序,如果無法更新,請也將軟件設(shè)置為兼容模式
右鍵→屬性→兼容性→勾選win7

寫在最后
1. 每臺(tái)電腦配置設(shè)置不同,不保證都能成功
2. 確保c盤空間足夠用,如果不夠自行百度c盤清理教程
3.代碼系網(wǎng)上粘貼過來,不保證其安全性
代碼:
@(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=\<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
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