Ändern von Registrierungsdaten
Die System Registry Provider-Klasse StdRegProv für WMI verfügt über Methoden, die folgende Schritte ausführen:
Erstellen oder Löschen von Registrierungsschlüsseln.
Verwenden Sie CreateKey oder DeleteKey.
Erstellen oder löschen Sie benannte Werte, die als Einträge bezeichnet werden, wenn sie sich unter Schlüsseln befinden.
Verwenden Sie den Namen eines neuen Werts und SetBinaryValue, SetDWORDValue, SetExpandedStringValue, SetMultiStringValueoder SetStringValue, um einen benannten Wert zu erstellen. Verwenden Sie DeleteValue, um einen benannten Wert zu löschen.
Ändern sie benannte Werte.
Verwenden Sie den Namen eines Werts und die Set-Methoden (im vorherigen Aufzählungselement identifiziert), um vorhandene benannte Werte unter einem Schlüssel zu ändern. Sie müssen den Namen eines Werts kennen, um ihn zu ändern. Wenn Sie die Wertnamen unter einem Schlüssel nicht kennen, verwenden Sie die EnumValues-Methode, um die Namen abzurufen.
Die folgenden Abschnitte werden in diesem Thema erläutert:
- Erstellen eines Registrierungsschlüssels mit VBScript
- Erstellen eines benannten Registrierungswerts mit powerShell und VBScript
Erstellen eines Registrierungsschlüssels mit VBScript
Da es sich bei der Registrierung um die zentrale Konfigurationsdatenbank für das Betriebssystem, die Anwendungen und die Dienste handelt, sollten Sie beim Schreiben von Änderungen an Registrierungswerten oder Löschen von Schlüsseln vorsichtshalber vorgehen.
Hinweis
Sie können den HKEY _ CLASSES _ ROOT-Unterschlüssel von HKEY _ CURRENT _ USER(HKCU) nicht überwachen. Die Überwachung von _ HKEY-BENUTZERN wird nicht empfohlen, da die Unterschlüssel angezeigt werden und ausgeblendet werden, wenn Hives geladen werden.
Die folgenden Codebeispiele zeigen, wie Sie einen neuen Registrierungsschlüssel und einen Unterschlüssel erstellen.
HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set ObjRegistry = GetObject("winmgmts:{impersonationLevel = impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strPath = "SOFTWARE\MyKey\MySubKey"
Return = objRegistry.CreateKey(HKEY_LOCAL_MACHINE, strPath)
If Return <> 0 Then
WScript.Echo "The operation failed." & Err.Number
WScript.Quit
Else
wScript.Echo "New registry key created" & VBCRLF & "HKLM\SOFTWARE\MYKey\"
End If
$HKEY_LOCAL_MACHINE = 2147483650
$strComputer = "."
$strPath = "SOFTWARE\MyKey\MySubKey"
$reg = [wmiclass]"\\$strComputer\root\default:StdRegprov"
[void]$reg.CreateKey($HKEY_LOCAL_MACHINE, $strPath)
Erstellen eines benannten Registrierungswerts mit powerShell und VBScript
Das folgende Codebeispiel zeigt, wie Sie einen benannten Wert namens MultiStringValue unter dem Schlüssel HKEY _ LOCAL _ MACHINE \ SOFTWARE \ MyKey \ MySubKey erstellen, den das vorherige Skript erstellt. Das Skript ruft StdRegProv.SetMultiStringValue auf, um Zeichenfolgenwerte in einen neuen benannten Wert zu schreiben.
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objRegistry = _
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\MyKey\MySubKey"
strValueName = "MultiStringValue"
arrStringValues = Array("one", "two","three", "four")
objRegistry.SetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath,_
strValueName, arrStringValues
' Read the values that were just written
objRegistry.GetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath,_
strValueName, arrStringValues
For Each strValue in arrStringValues
WScript.Echo strValue
Next
$HKEY_LOCAL_MACHINE = 2147483650
$strComputer = "."
$strPath = "SOFTWARE\MyKey\MySubKey"
$strValueName = "MultiStringValue"
$arrStringValues = @("one", "two","three", "four")
$reg = [wmiclass]"\\$strComputer\root\default:StdRegprov"
[void]$reg.SetMultiStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $arrStringValues)
$multiValues = $reg.GetMultiStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName)
$multiValues.sValue
Mithilfe von WMI können Sie die Zugriffssicherheit für einen Registrierungsschlüssel nicht festlegen. Die StdRegProv.CheckAccess-Methode vergleicht jedoch die Sicherheitseinstellungen des aktuellen Benutzers mit der Sicherheitsbeschreibung für einen Registrierungsschlüssel, um festzustellen, ob der Benutzer über eine bestimmte Berechtigung verfügt, z. B. KEY SET _ _ VALUE.