聯想筆電提供 WMI 介面 Lenovo_SetBiosPassword 允許程式化設定 BIOS 密碼。本文示範 VBScript 呼叫該方法,並說明相關風險與限制。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
' 取得類別實例 (InstanceName 視機型而異,需先用 WBEMTEST 確認)
Set objShare = objWMIService.Get("Lenovo_SetBiosPassword.InstanceName='ACPIPNP0C141_0'")
' 準備輸入參數
Set objInParam = objShare.Methods_("SetBiosPassword").inParameters.SpawnInstance_()
objInParam.Properties_.Item("Parameter") = "test" ' 新密碼
' 執行方法
Set objOutParams = objWMIService.ExecMethod( _
"Lenovo_SetBiosPassword.InstanceName='ACPIPNP0C141_0'", _
"SetBiosPassword", objInParam)
WScript.Echo "Return: " & objOutParams.Return
root\WMI 命名空間 (非標準 cimv2)。InstanceName 精確定位 BIOS 密碼管理類別實例 (各機型不同)。Methods_ 取得方法定義,建立 InParameters 實例並填入新密碼。ExecMethod 執行,回傳 OutParameters 中的 Return 值判斷成敗。wbemtest.exe (Windows 內建)。root\WMI,開啟類別 Lenovo_SetBiosPassword。InstanceName 屬性值。WMI 提供強大的硬體管理能力,但 BIOS 級操作風險極高。實務上建議透過廠商官方工具 (如 Lenovo Vantage、ThinkPad Setup) 設定密碼,僅在自動化部署大量裝置時,經充分測試後謹慎使用腳本。