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

admin AutoIt3評(píng)論88字?jǐn)?shù) 937閱讀模式

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

#NoTrayIcon
RegRead($hKey, $sValue)

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

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

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

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

發(fā)表評(píng)論

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

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