AU3判斷windows系統(tǒng)是UEFI啟動還是BIOS啟動

admin AutoIt3評論18字數(shù) 937閱讀模式

1.原理
在 Windows 系統(tǒng)中,可以通過檢查系統(tǒng)的注冊表來判斷是 UEFI 還是 BIOS 啟動。對于 UEFI 啟動的系統(tǒng),在注冊表的HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\State鍵下會有相關(guān)的 UEFI 安全啟動的配置信息;而 BIOS 啟動的系統(tǒng)沒有這個鍵。
2.使用 AutoIt(AU3)實現(xiàn)判斷的步驟
首先,需要使用 AutoIt 的注冊表操作函數(shù)來檢查指定的注冊表鍵是否存在。以下是一個簡單的 AutoIt 腳本示例:

#NoTrayIcon
RegRead($hKey, $sValue)

; 檢查UEFI安全啟動相關(guān)的注冊表鍵是否存在
$hKey = "HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\State"
$exists = RegKeyExists($hKey)

If $exists Then
    MsgBox(0, "啟動方式", "系統(tǒng)是UEFI啟動")
Else
    MsgBox(0, "啟動方式", "系統(tǒng)是BIOS啟動")
EndIf

在這個腳本中:
#NoTrayIcon:這個指令用于隱藏腳本在系統(tǒng)托盤中的圖標。
RegRead($hKey, $sValue):這行代碼雖然沒有在后續(xù)真正使用讀取值的功能,但它引入了注冊表讀取相關(guān)的函數(shù)。
$hKey = "HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\State":定義了要檢查的注冊表鍵路徑,這里是 UEFI 安全啟動相關(guān)的鍵。
$exists = RegKeyExists($hKey):使用RegKeyExists函數(shù)來檢查指定的注冊表鍵是否存在。如果存在,$exists變量的值為 1,否則為 0。
根據(jù)$exists的值,通過MsgBox函數(shù)彈出消息框來顯示系統(tǒng)是 UEFI 啟動還是 BIOS 啟動。
3.注意事項
這個方法在大多數(shù)情況下是可靠的,但也有一些特殊情況。例如,某些非標準的系統(tǒng)配置或者一些舊版本的 UEFI 實現(xiàn)可能會導致判斷不準確。
腳本需要以管理員權(quán)限運行,因為訪問HKLM(HKEY_LOCAL_MACHINE)下的某些注冊表鍵需要管理員權(quán)限。否則,可能會因為權(quán)限不足而無法正確檢查注冊表鍵,導致錯誤的判斷結(jié)果。

版權(quán)聲明:文章圖片資源來源于網(wǎng)絡,如有侵權(quán),請留言刪除!!!
廣告也精彩
admin
  • 本文由 發(fā)表于 2024年11月17日 21:01:14
  • 轉(zhuǎn)載請務必保留本文鏈接:http://yudch.cn/12380.html
匿名

發(fā)表評論

匿名網(wǎng)友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: