Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strValueName = "LegalNoticeCaption"
strValue = "Fabrikam, Inc. Legal Notice"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strValueName = "LegalNoticeText"
strValue = "By logging on to this computer you agree to abide by the "
strValue = strValue & "computer usage rules and regulations of Fabrikam, Inc."
strValue = strValue & vbCrLf & vbCrLf
strValue = strValue & "For more information, phone (425)-555-1289."
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
上述的指令碼設定警告訊息對話方塊的標題 (LegalNoticeCaption) 為 Fabrikam, Inc. Legal Notice。然後會將實際訊息本身 (LegalNoticeText) 設定為:
登入本電腦表示您同意遵守電腦使用規則及 Fabrikam, Inc 的規定。
如需詳細資訊,請電 (425)-555-1289。
您可能在指令碼中注意到我們使用數行程式碼來設定訊息。那並不是必要的作法;我們可以使用橫跨好幾個螢幕的不規則程式碼行來取代。讀取和修改像那樣的程式碼並不容易,因此,我們以幾個步驟來設定訊息,而不是以一個大步驟來設定。一開始,我們以下列程式碼行來設定名為 strValue 的變數值:
strValue = "By logging on to this computer you agree to abide by the "
現在,請看一下指令碼中的下一行程式碼:
strValue = strValue & "computer usage rules and regulations of Fabrikam, Inc."
如您所見,我們把 strValue 指定為 strValue 現有的值 (經由登入本電腦,您同意接受)「加上」以下:電腦使用規則與 Fabrikam, Inc 的規定。strValue 變數如今會等於:
登入本電腦表示您同意遵守電腦使用規則及 Fabrikam, Inc 的規定。
然後我們附加了一些歸位換行組 (使用 VBScript 常數 vbCrLf) 然後加上最後一行的訊息。現在整個訊息是存放在變數 strName 中,我們已準備好呼叫 SetStringValue 方法,並將這個新的值寫入登錄中。
現在,如果您改變心意並決定最後不要使用警告訊息的話,該怎麼做?如果是這樣,那只要使用指令碼並同時設定 LegalNoticeCaption 與 LegalNoticeText 為空字串即可。因此:
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strValueName = "LegalNoticeCaption"
strValue = ""
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strValueName = "LegalNoticeText"
strValue = ""
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
順便一提,如果您有興趣多學一些用指令碼來操作登錄值的話,請進入網路廣播 Things the Scripting Guys Never Told You 中註冊,這是 2005 年 1 月 27 日的「指令碼週 2」的部分。我們竭誠地歡迎您! |