Zadania usługi WMI: Rejestr
Zadania usługi WMI dla rejestru tworzą i modyfikują klucze i wartości rejestru. Inne przykłady można znaleźć w witrynie TechNet ScriptCenter pod adresem https://www.microsoft.com/technet.
Przykłady skryptów pokazane w tym temacie uzyskują dane tylko z komputera lokalnego. Aby uzyskać więcej informacji o sposobie uzyskiwania danych z komputerów zdalnych za pomocą skryptu, zobacz Connecting to WMI on a Remote Computer.
Poniższa procedura opisuje sposób uruchamiania skryptu.
Aby uruchomić skryptu
- Skopiuj kod i zapisz go w pliku z rozszerzeniem vbs, takim jak nazwa pliku.vbs. Upewnij się, że edytor tekstów nie dodaje rozszerzenia .txt do pliku.
- Otwórz okno wiersza polecenia i przejdź do katalogu, w którym zapisano plik.
- Wpisz cscript nazwa pliku.vbs w wierszu polecenia.
- Jeśli nie możesz uzyskać dostępu do dziennika zdarzeń, sprawdź, czy korzystasz z wiersza polecenia z podwyższonym poziomem uprawnień. Niektóre dzienniki zdarzeń, takie jak dziennik zdarzeń zabezpieczeń, mogą być chronione przez kontrolę dostępu użytkowników (UAC).
Nuta
Domyślnie skrypt cscript wyświetla dane wyjściowe skryptu w oknie wiersza polecenia. Ponieważ skrypty usługi WMI mogą generować duże ilości danych wyjściowych, może być konieczne przekierowanie danych wyjściowych do pliku. Wpisz cscript filename.vbs > outfile.txt w wierszu polecenia, aby przekierować dane wyjściowe pliku pliku.vbs skryptu, aby outfile.txt.
W poniższej tabeli wymieniono przykłady skryptów, których można użyć do uzyskania różnych typów danych z komputera lokalnego.
Jak mogę... | Klasy lub metody WMI | ||||||||
---|---|---|---|---|---|---|---|---|---|
... odczytywać wartości kluczy rejestru przy użyciu usługi WMI? | Użyj klasy StdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw. Nie można uzyskać żadnych wystąpień tej klasy, ponieważ System Registry Provider jest metodą i tylko dostawcą zdarzeń. Można jednak pobrać dane rejestru za pomocą metod, takich jak EnumKey lub EnumValue.
Win32_Registry, znajdujący się w przestrzeni nazw root\cimv2, pobiera dane dotyczące rejestru jako całości, takie jak jego rozmiar.
|
||||||||
... utworzyć nowy klucz rejestru? | Użyj klasyStdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw oraz metody CreateKey.
|
||||||||
... utworzyć nową wartość rejestru pod kluczem? | Użyj klasyStdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw oraz metody CreateKey. Następnie użyj jednej z metod Set, w zależności od typu danych rejestru, jakim jest wartość, na przykład SetDWORDValue. Metody Ustaw tworzą wartość, jeśli jeszcze nie istnieje. Aby uzyskać więcej informacji, zobacz Mapowanie typu danych rejestru na typ danych usługi WMI.
|
||||||||
... unikać pobierania nieprawidłowego błędu klasy podczas próby zapisania skryptu w celu odczytania rejestru? | Użyj głównej\domyślnej przestrzeni nazw podczas uzyskiwania dostępu do klasy StdRegProv. StdRegProv nie jest częścią przestrzeni nazw cimv2, dlatego podczas próby nawiązania połączenia z "root\cimv2:StdRegProv" jest generowany błąd "Nieprawidłowa klasa".
|
||||||||
... czy sprawdzić zabezpieczenia określonego klucza rejestru? | Użyj klasyStdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw i metodzie CheckAccess. Możesz sprawdzić tylko prawa dostępu dla bieżącego użytkownika, który uruchamia skrypt lub aplikację. Nie można sprawdzić praw dostępu dla innego określonego użytkownika. |
||||||||
... odczytywać i zapisywać wartości rejestru binarnego? | Użyj klasyStdRegProv znajdującej się w przestrzeni nazw "Root\Default" i GetBinaryValue i Metod SetBinaryValue. Wartości rejestru wyświetlane w narzędziu RegEdt32 jako seria wartości szesnastkowe bajtów są w formacie REG_BINARY danych. Aby uzyskać więcej informacji, zobacz Mapowanie typu danych rejestru na typ danych usługi WMI. Poniższy przykład kodu VBScript tworzy nowy klucz z wartością binarną. Wartość binarna jest dostarczana w iValues tablicy bajtów określonej w szesnastku.
Poniższy skrypt odczytuje wartość binarną.
|
||||||||
... odczytywać i zapisywać wartości rejestru zawierające wiele ciągów? | Użyj klasy StdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw i GetMultiStringValue i SetMultiStringValue metod. Klucze rejestru wyświetlane w narzędziu RegEdt32 jako seria ciągów oddzielonych spacjami są w formacie danych REG_MULTI_SZ. Aby uzyskać więcej informacji, zobacz Mapowanie typu danych rejestru na typ danych usługi WMI. Poniższy przykład kodu VBScript tworzy nowy klucz i nową wartość wielociągową.
Poniższy skrypt odczytuje wartość wielociągów.
|
||||||||
... usunąć klucz rejestru? | Użyj klasyStdRegProv znajdującej się w głównej\domyślnej przestrzeni nazw oraz metod DeleteKey.
|
Tematy pokrewne
-
przykłady aplikacji WMI C++
-
modyfikowanie rejestru systemowego