使用rundll32命令更改計算機類型。這種改法的前提是你能夠進入Windows系統,例如你選擇成了Standard PC,雖然能夠進入系統,但計算機類型卻不對的情況。
請將下面的代碼保存為ChangeHalByRundll.cmd,用法請參考批處理中的說明。另外,批處理中使用的reg.exe是命令行方式操作註冊表的程序,在Windows XP/2003系統中內置了該程序,而Windows 2000中卻沒有,你可以將XP/2003下的reg.exe複製到2000中使用。
Code:@echo off
:: =========================================================================================================
:: ChangeHalByRundll.cmd 使用Windows的rundll32命令來更改計算機類型的批處理
:: 用法: ChangeHalByRundll <硬件ID>
:: <硬件ID>是指你想更改成的計算機類型所對應的HardwareID。
:: 例如:你想將計算機改成ACPI Uniprocessor類型,那麼使用命令:ChangeHalByRundll ACPIPIC_UP
:: 計算機類型與硬件ID的對應關係如下:
:: 計算機類型 硬件ID(HardwareID)
:: Standard E_ISA_UP
:: ACPI Uniprocessor ACPIAPIC_UP
:: ACPI Multiprocessor ACPIAPIC_MP
:: MPS Uniprocessor MPS_UP
:: MPS Multiprocessor MPS_MP
:: Compaq SystemPro SYSPRO_MP
:: ACPI ACPIPIC_UP
:: =========================================================================================================
if %1#==# goto _usage
set HardIDs=E_ISA_UP ACPIPIC_UP ACPIAPIC_UP ACPIAPIC_MP MPS_UP MPS_MP SGI_MPS_MP SYSPRO_MP
echo %HardIDs% | find /i "%1" > nul
if errorlevel 1 goto _usage
:_update
REG.EXE DELETE "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}\0000" /f
REG.EXE DELETE "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}\0001" /f
REG.EXE DELETE "HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}\0000" /f
REG.EXE DELETE "HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}\0001" /f
REG.EXE DELETE "HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL" /f
REG.EXE DELETE "HKLM\SYSTEM\CurrentControlSet\Enum\Root\PCI_HAL" /f
rundll32.exe setupapi,InstallHinfSection %1_HAL 131 %windir%\inf\hal.inf
cls
echo.
echo 恭喜,計算機類型更改完畢,請重新啟動計算機使更改生效,系統會重新掃瞄硬件!
echo 按任意鍵退出...
pause >nul
goto _quit
:_usage
cls
echo.
echo 錯誤:你沒有指定計算機類型對應的硬件ID或者你指定的硬件ID不存在。
echo 用法: %0 ^<硬件ID^>
echo.
echo 計算機類型與硬件ID的對應關係如下:
echo.
echo 計算機類型 硬件ID(HardwareID)
echo Standard E_ISA_UP
echo ACPI Uniprocessor ACPIAPIC_UP
echo ACPI Multiprocessor ACPIAPIC_MP
echo MPS Uniprocessor MPS_UP
echo MPS Multiprocessor MPS_MP
echo Compaq SystemPro SYSPRO_MP
echo ACPI ACPIPIC_UP
echo.
echo 按任意鍵退出...
pause>nul
goto _quit
:_quit
set HardIDs=
[Ctrl+A Select All]
==============================
ACPI Multiprocessor PC
==============================
當電腦識別出來是此檔案類型,說明你的系統是多處理器或者支持HT(超執行緒)處理器,
並且主機板和主機板的BIOS支持並開啟APIC和ACPI
ACPI Multiprocessor PC=APIC+ACPI+多處理器(包括支持HT處理器)
==============================
ACPI Uniprocessor PC
==============================
這是當前最為一般的檔案類型,主機板和主機板的BIOS支持並開啟APIC和ACPI,系統是單處理器。
ACPI Uniprocessor PC=APIC+ACPI+單處理器(不包括支持HT處理器)
============================================================
Advanced Configuration and Power Interface (ACPI) PC
============================================================
這是以前比較一般的檔案類型,系統只提供了對ACPI的支持。主機板和主機板的BIOS支持並開啟ACPI。
並且沒有開啟APIC,或者主機板不支持APIC
==============================
MPS Multiprocessor PC
==============================
伺服器上比較一般,這個是不支持ACPI的,對應ACPI Multiprocessor PC
MPS Multiprocessor PC=APIC+多處理器(包括支持HT處理器)
==============================
MPS Uniprocessor PC
==============================
我猜測,這個在以前的工作站上比較多,同上面一樣不支持ACPI,對應ACPI Uniprocessor PC
MPS Uniprocessor PC=APIC+單處理器(不包括支持HT處理器)
=================
Standard PC
=================
哈哈,古老的電腦都是這個檔案類型的,既不支持ACPI,也不支持APIC。
注意,很多P3主機板由於BIOS預設值沒有開啟ACPI功能,
也會識別成Standard PC,導致點擊電腦關機後,系統提示你手動電腦關機電源。
從這裡可以發現,ACPI Uniprocessor PC相容ACPI Multiprocessor PC
(也就是說,ACPI Multiprocessor PC的系統也可以使用ACPI Uniprocessor PC)。
Advanced Configuration and Power Interface (ACPI) PC相容ACPI Uniprocessor PC
和ACPI Multiprocessor PC。
MPS Multiprocessor PC相容ACPI Multiprocessor PC。
MPS Uniprocessor PC相容ACPI Uniprocessor PC和ACPI Multiprocessor PC。
Standard PC相容以上5種。但是反過來,就不一定相容了。