2021年10月10日

跳過安裝Windows 11時的硬體需求檢查

注意:

  • 微軟並不建議將Windows 11安裝在不符合最低系統需求的裝置上, 您必須自行承擔修改後安裝使用的風險.
  • 本篇主要適用於全新安裝Windows 11, 如果您是要從Windows 10升級安裝到Windows 11, 請參考 安裝Windows11的方法 內的方法.


微軟新推出的Windows 11提高了對系統硬體規格的需求.
如果想在不符合最低系統需求的裝置上安裝Windows 11, 可以透過修改註冊機碼來達成.
我寫了一個批次檔配合Windows 11的自動安裝回應檔案, 省去需要按Shift+F10後手動修改註冊機碼等動作.
也不需修改原有的boot.wim, 只需要照著原有的程序進行安裝即可.


準備工作:


使用方法:

 如果您的安裝媒體可以寫入, 例如USB隨身碟; 或是您知道如何編修ISO檔案:

  • 請把autounattend.xml, bypass.cmd兩個檔案複製到跟setup.exe同一個目錄內. (安裝媒體的根目錄)
  • 然後使用含有這兩個檔案的安裝媒體開機進行安裝Windows 11.

 

如果您的安裝媒體不可以寫入, 例如燒錄好的DVD; 或是您不想更動ISO檔案的內容:

  • 請把autounattend.xml, bypass.cmd兩個檔案複製到另外準備的一個USB隨身碟內的根目錄.
  • 如果使用虛擬機安裝的話, 可以把autounattend.xml, bypass.cmd兩個檔案放在virtual floppy或是另一個ISO檔案內(Virtual CD/DVD).
  • 使用此方法安裝時, 請確定有那兩個檔案的USB隨身碟/virtual floppy/Virtual CD/DVD在開機時是安裝程式可以存取到的.
  • 然後使用原有未修改的安裝媒體開機進行安裝Windows 11.


有在下列配備的虛擬機測試過可以順利安裝:

  • 2-Core CPU/2GB RAM/30GB HDD/BIOS legacy mode/No TPM
  • Windows 11 專業版 (繁體中文) 21H2 64位元版 (OS 組建 22000.194)


開機後Windows 11的安裝程式會搜尋到autounattend.xml, 然後就會執行bypass.cmd進行所需註冊機碼修改. 接下來就按照指示安裝Windows 11即可.

bypass.cmd會修改註冊機碼跳過下列硬體需求檢查(不包含CPU):

  • RAM
  • Secure Boot
  • Storage
  • TPM
  • UEFI

Windows 11需求請參考: 微軟網站.


autounattend.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<!-- By Proliantaholic https://proliantaholic.blogspot.com -->
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <Path>cmd /c for %a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %a:\bypass.cmd (%a:\bypass.cmd)</Path>
                    <Description>Find and execute bypass.cmd</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
            <UserData>
                <ProductKey>
                    <WillShowUI>Always</WillShowUI>
                </ProductKey>
            </UserData>
        </component>
    </settings>
</unattend>

bypass.cmd

@echo off
REM ###########################################################
REM #  By Proliantaholic https://proliantaholic.blogspot.com  #
REM ###########################################################

setlocal EnableDelayedExpansion
REM Bypass Windows 11 RAM/SecureBoot/Storage/TPM/UEFI requirements check
for /f "tokens=2*" %%a in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') do set "FirmwareType=%%b"
for /F "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber') do set "CurrentBuildNumber=%%~b"
if "!CurrentBuildNumber!" GEQ "22000" (
    Echo Bypassing Windows 11 [22000 and later] RAM/SecureBoot/Storage/TPM/UEFI check...
    Echo.
    Echo | set /p "Dummy=Add BypassRAMCheck...        "
    reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRAMCheck /t REG_DWORD /d 1 /f
    Echo | set /p "Dummy=Add BypassSecureBootCheck... "
    reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassSecureBootCheck /t REG_DWORD /d 1 /f
    Echo | set /p "Dummy=Add BypassStorageCheck...    "
    reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassStorageCheck /t REG_DWORD /d 1 /f
    Echo | set /p "Dummy=Add BypassTPMCheck...        "
    reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassTPMCheck /t REG_DWORD /d 1 /f
    if "!FirmwareType!" EQU "0x1" (Echo | set /p "Dummy=Add BypassUEFICheck...       "& reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassUEFICheck /t REG_DWORD /d 1 /f)
)
Echo.
Echo Done.
REM Pause for 10 seconds
Echo WScript.Sleep 10000 > %TEMP%\sleep.vbs
cscript //nologo %TEMP%\sleep.vbs


推薦閱讀:



沒有留言:

張貼留言

版權宣告

Creative Commons License
本著作由 PROLIANTAHOLIC 製作,以創用CC 姓名標示-非商業性-禁止改作 3.0 台灣 授權條款釋出。
文內所述之產品和公司名稱均為其各自擁有者的商標及(或)服務標記。