Powershell – Jak odczytać klucze rejestru i ich wartości?


 

Czytelnikom naszego Bloga nie trzeba tłumaczyć jak potężnym i przydatnym w administrowaniu narzędziem jest Powershell. Osoby które dopiero stawiają swoje pierwsze kroki w świecie Powershella, zachęcam do zapoznania się z naszą bazą artykułów, które specjalnie dla Was uporządkowaliśmy logicznie, od podstaw po zaawansowany skrypty, tworząc swoisty, „specowy” kurs Powershell. Dzisiaj owy kurs powiększamy o odczytywanie zawartości klucza rejestru. :)

Jak w konsoli Powershell odczytać zawartość klucza rejestru?

Najłatwiej to zagadnienie ogarnąć na jakimś przejrzystym przykładzie, dlatego stworzyłem małe środowisko testowe. Obrazki wszystko wyjaśnią. :) W gałęzi HKEY_CURRENT_USER stworzyłem klucz „spece.it„. W tym kluczu nie ma żadnych zmiennych, ale jest kolejny klucz „redakcja„. Tam natomiast znajdziemy zmienną tekstową o nazwie „blog” do której wpisałem wartość „spece.it„, oraz znajdują się 3 klucze 001,002 i 003 z których każdy zawiera zmienne tekstowe o nazwach „imie” i „nazwisko” gdzie wpisałem prawdziwe imiona i nazwiska 3 redaktorów.

Spróbujmy dobrać się do tego za pomocą Powershell.

W ten sposób odczytamy wartości zmiennych w kluczu „HKEY_CURRENT_USER\spece.it\”. Jak wspomniałem, w tym kluczu nie ma żadnych zmiennych, ale znajduje się inny klucz, a jeszcze głębiej kolejne pod-klucze ze zmiennymi. Efekt? W tym przypadku oczywiście, nic nie wyświetlimy :)

Get-ItemProperty HKCU:\spece.it

powershell registry read example 1
W ten sposób odczytamy wartości w kluczu „HKEY_CURRENT_USER\spece.it\redakcja”. Klucz ten, jak widać ma jedną zmienną o nazwie „blog” i zawartości „spece.it”. Tym razem Powershell oczywiście tą zmienną pokaże, ciągle jednak nie ujrzymy pod-kluczy i zmiennych tychże pod-kluczy:

Get-ItemProperty HKCU:\spece.it\redakcja

powershell registry read example 2
W ten sposób odczytamy zmienne i ich wartości z wszystkich pod-kluczy w „HKEY_CURRENT_USER\spece.it\redakcja”. Nie wyświetlimy jednak zmiennych, które umieszczone leżą bezpośrednio w kluczu „redakcja”.

Get-ItemProperty HKCU:\spece.it\redakcja\*

powershell registry read example 3
W naszym przykładzie zmiennych i pod-kluczy jest bardzo mało. W praktyce danych może być naprawdę sporo i warto nauczyć się formatować powershell’owe wyniki komend. Formatowaniu poświęciłem kiedyś osobny artykuł, ale dla odświeżenia wiedzy, przypomnę, że możemy na przykład wybrać, które zmienne mają nam się wyświetlić w tabeli. U nas mogą to być na przykład zmienne „imie” i „nazwisko” (w osobnych kolumnach) lub sama zmienna „imie„:

powershell registry read example 5
Przypomnę też o możliwości dopisania opcji „| more”, aby wyświetlać je porcjami (przewijamy spacją).

Po więcej czarów w Powershellu odsyłąm do wspomnianego „specowego” kursu Powershell.


Podobne Tematy:

  • Tomek Anonim

    A co w przypadku gdybyś chciał w kluczu spece.it (tym głównym) wyszukać czy któryś subkey (redakcja) lub jeszcze subsubkeys (001, 002, 003) posiada dane których wartość jest równa jakiemuś stringowi i wyświetlić wtedy pozostałą zawartość tego klucza :) np
    Wiem że istnieje dana z value = spece.it i że jest ona w spece.it ale nie wiem gdzie dokładnie (redakcja, 001, 002, 003,… moze byc wiecej). Chciałbym wyszukać tą konkretną daną i jednocześnie wyswietlić całą zawartość tego klucza w którym sie ta dana znajduje? Próbowalem z REG QUERY ale nie wyswietla mi zawartości klucza, Get-ChildItem nie szuka w subsubkeys (albo coś pominałem).