Your script seems to be bug-less. However, launched by cscript 28416995.vbs
returns next error (where 22 = WshShell.RegWrite
line):
28416995.vbs(22, 1) WshShell.RegWrite: Invalid root in registry key "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemlegalnoticecaption".
It's not invalid root, it's something like access denied rather because writing to HKLM
requires elevated privileges (or run as administrator).
Note:
- You should change
LegalNoticeText
value together with LegalNoticeCaption
one.
- Under the
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
registry key there both values reside as well. For this case (if a computer is not connected to a domain or with group policy disabled) should work next script.
Run as administrator:
option explicit
On Error Goto 0
Dim wshShell
Dim strResult, strMessage, strWelcome, strWinLogon, strWinLog_2, strWinLTxt
strResult=Wscript.ScriptName
' Set the string values
strWinLTxt = "legalnoticetext"
strWelcome = "legalnoticecaption"
strMessage = "did this work"
strWinLogon = "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon"
strWinLog_2 = "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem"
' Create the Shell object
Set wshShell = CreateObject("WScript.Shell")
'Display string Values
' continue execution if requested registry values not present
On Error Resume Next
strResult = strResult & vbNewLine & "Existing Caption Policies: " _
& wshShell.RegRead(strWinLog_2 & strWelcome)
strResult = strResult & vbNewLine & "Existing Text Policies: " _
& wshShell.RegRead(strWinLog_2 & strWinLTxt)
On Error Goto 0
strResult = strResult & vbNewLine & "Existing Caption Winlogon: " _
& wshShell.RegRead(strWinLogon & strWelcome)
strResult = strResult & vbNewLine & "Existing Text Winlogon: " _
& wshShell.RegRead(strWinLogon & strWinLTxt)
strResult = strResult & vbNewLine
strResult = strResult & vbNewLine & "key to update: " & strWelcome
strResult = strResult & vbNewLine & "key value to enter: " & strMessage
' the crucial command in this script - rewrite the registry
wshShell.RegWrite strWinLogon & strWelcome, strMessage, "REG_SZ"
wshShell.RegWrite strWinLogon & strWinLTxt, UCase( strMessage), "REG_SZ"
' Did it work?
strResult = strResult & vbNewLine
strResult = strResult & vbNewLine _
& "new key Capt. value: " & wshShell.RegRead(strWinLogon & strWelcome)
strResult = strResult & vbNewLine _
& "new key Text value: " & wshShell.RegRead(strWinLogon & strWinLTxt)
Wscript.Echo strResult
set wshShell = Nothing
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…