HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
ValueName = "ScreenSaverIsSecure"
strValue = "1"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
這個指令碼先定義一個名為 HKEY_CURRENT_USER 的常數,將該值設為 &H80000001,以便告知指令碼要我們要使用哪一個登錄 Hive。接著利用這行指令碼就連接到 WMI 服務和標準登錄提供者 (StdRegProv) 類別:
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
接著指定三個變數的值:
- strKeyPath:代表 HKEY_CURRENT_USER 內的路徑,可連至需要變更的登錄機碼。螢幕保護程式的路徑就是 Control Panel\Desktop。
- ValueName:要變更的登錄值。要變更 ScreenSaverIsSecure 的值才能啟用密碼保護。
- strValue:要指派給 ScreenSaverIsSecure 的新值。將 ScreenSaverIsSecure 設定為 1 啟用密碼保護,設定為 0 則停用。
只需要呼叫 Open 方法並傳給它定義的參數:
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
這樣就可以了。下回使用者登入時,螢幕保護程式會有密碼保護。
當然啦,將使用者登出前您得將螢幕保護程式的逾期值改為 5 分鐘。指令碼是這樣寫的:
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
ValueName = "ScreenSaveTimeout"
strValue = "300"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
沒錯,這和剛才看過的指令碼很像,兩段指令碼只有兩個不同之處:
- 這次要改的登錄值是 ScreenSaveTimeout (還是在 Control Panel\Desktop key 裡面)。
- 指定給 ScreenSaveTimeout 的新值是 300,因為螢幕保護程式逾時是以秒計。300 秒就等於 5 分鐘 (300 除以 60 等於 5)。如果稽核人員建議的逾時值是三分鐘,那麼把 ScreenSaveTimeout 設定為 180 (60 秒乘以 3) 就可以了。
討論到此結束。您的電腦在閒置五分鐘後會鎖定,不需要撰寫任何複雜的監督/遠端鎖定指令碼。
既然您也問了,Scripting Guy 很慶幸就算五分鐘 (甚至五小時) 閒閒沒事做也不會被鎖在外頭。 |