Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostawca rejestru systemu klasy StdRegProv dla usługi WMI ma następujące metody:
Tworzenie lub usuwanie kluczy rejestru.
Utwórz lub usuń nazwane wartości, które są nazywane wpisami, gdy są przypisane do kluczy.
Użyj nazwy nowej wartości i SetBinaryValue, SetDWORDValue, SetExpandedStringValue, SetMultiStringValuelub SetStringValue, aby utworzyć nazwaną wartość. Użyj DeleteValue, aby usunąć nazwaną wartość.
Zmień nazwane wartości.
Użyj nazwy wartości i metod Set (zidentyfikowanych w poprzednim punktorze), aby zmienić istniejące nazwane wartości w kluczu. Musisz znać nazwę wartości, aby ją zmienić. Jeśli nie znasz nazw wartości w kluczu, użyj metody EnumValues, aby uzyskać nazwy.
W tym temacie omówiono następujące sekcje:
- Tworzenie klucza rejestru przy użyciu VBScript
- Tworzenie nazwanej wartości rejestru przy użyciu PowerShell i VBScript
Tworzenie klucza rejestru przy użyciu języka VBScript
Ponieważ rejestr jest centralną bazą danych konfiguracji dla systemu operacyjnego, aplikacji i usług, należy zachować ostrożność podczas zapisywania zmian wartości rejestru lub usuwania kluczy.
Notatka
Nie można monitorować podklucza HKEY_CLASSES_ROOT klucza HKEY_CURRENT_USER (HKCU). Monitorowanie HKEY_USERS nie jest zalecane, ponieważ podklucze pojawiają się i znikają w miarę ładowania plików rejestru.
W poniższych przykładach kodu pokazano, jak utworzyć nowy klucz rejestru i podklucz.
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)
Tworzenie nazwanej wartości rejestru przy użyciu programu PowerShell i języka VBScript
** Poniższy przykład kodu przedstawia, jak utworzyć wartość o określonej nazwie MultiStringValue pod klucz HKEY_LOCAL_MACHINE\SOFTWARE\MyKey\MySubKey, który został utworzony przez poprzedni skrypt. Skrypt wywołuje StdRegProv.SetMultiStringValue, aby zapisywać wartości ciągów w nowej nazwanej wartości.
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
Za pomocą usługi WMI nie można ustawić zabezpieczeń dostępu dla klucza rejestru. Jednak metodaStdRegProv.CheckAccess porównuje ustawienia zabezpieczeń bieżącego użytkownika z deskryptorem zabezpieczeń w kluczu rejestru, aby określić, czy użytkownik ma określone uprawnienia, takie jak KEY_SET_VALUE.