Przejdź do treści

Rejestr systemowy w Windows 10

5
(9)

Kontynuując serię wpisów poświęconą administrowaniu i bezpieczeństwu Windowsa 10, tym razem powiemy sobie o rejestrze systemowym. Znajomość rejestru jest jedną z podstawowych umiejętności, którą powinien posiadać każdy zajmujący się czynnościami jakkolwiek związanymi z administracją Windowsem 10. Mowa tutaj nie tylko a administratorach środowisk, gdzie jest on wykorzystywany, ale również o pracownikach Help Desk-u czy osobach zajmujących się bezpieczeństwem. To w rejestrze bowiem znajdziemy kluczowe, najbardziej wrażliwe informacje, które są niezbędne do szeroko rozumianego działania systemu.

Choć sam temat rejestru jest niezwykle szeroki, to znajomość podstaw pozwala na dużo lepsze zrozumienie działania samego systemu. Otwiera również szereg możliwości i nowych rozwiązań, które możemy zastosować. W tym wpisie postaram się przedstawić rolę rejestru w systemie oraz omówić jego budowę. Zademonstruję również ręczny i automatyczny sposób na jego edycję, posługując się konkretnymi przykładami. Zapraszam do lektury!

Czym jest rejestr systemowy w Windows 10?

Rejestr systemowy jest jednym z najważniejszych miejsc w całym systemie. Jest to hierarchiczna, specjalna baza danych, która przechowuje większość zapisywanych przez system informacji. Innymi słowy, w rejestrze przechowywane jest wszystko co potrzebne, aby system, sprzęt oraz aplikacje działały poprawnie. Z tego właśnie względu informacje znajdujące się w rejestrze są krytyczne dla poprawności działania całego systemu

O tym, jak wiele niezbędnych do funkcjonowania systemu informacji znajduje się w rejestrze może świadczyć ilość odwołań do niego. System nieustannie korzysta z rejestru, odczytując, zapisując lub zmieniając zawarte w nim informacje. Dzieje się to nawet wtedy, gdy pozornie na urządzeniu zupełnie nic się nie dzieje. Poniżej możecie zobaczyć jak wiele razy system korzysta z informacji zapisanych w rejestrze w trakcie 10 sekund:

Liczba, w stosunku do tak krótkiego czasu, jest ogromna. A to przecież odwołania do rejestru śledzone podczas pisania artykułu, gdy system nie jest specjalnie obciążony. W sytuacjach, gdy system potrzebuje odczytać bardzo dużą ilość danych, ta liczba może istotnie wzrastać. Mowa tutaj np. o bootowaniu systemu, logowaniu użytkownika czy uruchamianiu aplikacji. System odczytuje wtedy z rejestru całą masę informacji dotyczących np. konfiguracji profilu użytkownika, w przypadku logowania.

Gdzie rejestr przechowuje dane?

Mówiłem o tym, że praktycznie wszystkie niezbędne do poprawnego działania systemu informacje są przechowywane w rejestrze. Ale przecież informacje zapisane w rejestrze również muszą się gdzieś na tym dysku znajdować. Informacje zawarte w rejestrze nie są jednak przechowywane jako jedna, kompletna baza danych stanowiąca plik na dysku. Rejestr przechowuje informacje w tzw. „hives” (niestety nie znalazłem żadnego sensownego polskiego tłumaczenia). Są to najprościej mówiąc specjalne pliki na dysku. Ich listę możemy znaleźć w samym rejestrze:

Jak widać, miejsc w których Rejestr przechowuje dane jest wiele. Są one również zlokalizowane w zupełnie różnych miejscach, czy partycjach, w przypadku informacji rozruchowych systemu. W widocznych miejscach przechowywana jest zdecydowana większość, ale nie wszystkie dane, która są zapisywane w rejestrze. Znajdują się w nim również tzw. dane ulotne, które są zapisywane w trakcie pracy systemu, ale nie zostają zapisane na stałe.

Budowa rejestru

Rejestr zbudowany jest w sposób bardzo dla niego charakterystyczny. Najogólniej mówiąc, składa się on z typów elementów – kluczy oraz wpisów. Zacznijmy jednak od samej góry.

To, co początkowo widzimy w rejestrze, to 5 tzw. kluczy głównych (ang. rootkeys):

W każdym z kluczy głównych znajduje się wiele innych. Takie pogrupowanie pozwala na podzielenie ich ze względu na ich przeznaczenie. Spośród pięciu głównych kluczy z pewnością należy wyróżnić dwa najważniejsze i najczęściej wykorzystywane:

  • HKEY_LOCAL_MACHINE (HKLM) – klucz, który zawiera wszystkie informacje o konfiguracji komputera
  • HKEY_CURRENT_USER (HKCU) – klucz zawierający informacje dotyczące profilu aktualnie zalogowanego użytkownika, jego konfigurację, preferencje itp.

oprócz tego mamy jeszcze trzy pozostałe klucze”

  • HKEY_CLASSES_ROOT (HKCR) – który zawiera powiązania plików z aplikacjami i znajduje się w rejestrze głównie ze względu na kompatybilność wsteczną
  • HKEY_USERS (HKU) – który zawiera ustawienia profili wszystkich, aktualnie zalogowanych użytkowników, jak również niektórych kont systemowych
  • HKEY_CURRENT_CONFIG (HKCC) – zawierający ustawienia aktualnego profilu sprzętowego, które obecnie możemy również odnaleźć w ramach klucza HKLM.

Jak wspominałem, każdy z kluczy głównych zawiera również mnóstwo innych kluczy. Klucze można w pewien sposób porównać do folderów, choć trzeba jasno podkreślić, że w praktyce nimi nie są. Podobnie jednak jak foldery, tworzą pewną strukturę i przechowują wewnątrz inne obiekty (w tym przypadku wpisy):

Jeżeli chodzi o wpisy – to one zawierają konkretne informacje. Trzymając się poprzedniej analogii możemy porównać je do plików, które znajdują się wewnątrz „folderu”. Choć bardziej precyzyjnie byłoby je chyba porównać do zmiennych. Tak czy inaczej, każdy wpis posiada swoją nazwę, określony typ przechowywanych danych oraz wartość. Typy wpisów w rejestrze są również bardzo dla niego charakterystyczne. Wśród najpopularniejszych zdecydowanie należałoby wymienić:

  • REG_SZ – czyli odpowiednik typu „string” z wielu języków programowania czy języków skryptowych. Służy do przechowywania tekstu/ciągu znaków
  • REG_DWORD – czyli liczba 32-bitowa
  • REG_BINARY – czyli dane binarne

Powyższe typy stanowią zdecydowaną większość typów, które spotkamy w rejestrze. O pozostałych typach możecie przeczytać tutaj.

Backup rejestru

Z uwagi na to, że w rejestrze przechowywane są niezwykle wrażliwe dane, do ich edycji należy podejść w odpowiednią ostrożnością. Dokonując zmian w rejestrze nie trudno o solidne namieszanie w naszym systemie. Dlatego edytując rejestr musimy przede wszystkim zabezpieczyć się przed potencjalnymi negatywnymi skutkami wprowadzonych zmian. Z tego względu każdorazowo powinniśmy zadbać o wykonanie backup-u, z którego będziemy mogli przywrócić poprzednie ustawienia.

Backup rejestru możemy wykonać w kontekście wybranego klucza lub całego rejestru. Aby wykonać backup wybranego klucza wystarczy kliknąć na niego PPM, a następnie wybrać opcję Export:

Chcąc z kolei wykonać backup całego rejestru, należy przejść w lewym górnym rogu do File, a następnie odnaleźć opcję Export:

W obu przypadkach wygenerowany zostanie plik o rozszerzeniu .reg. Jest to plik o charakterystycznej budowie, który zawiera informacje na temat wybranych przez nas kluczy i wpisów. Odczytując je z pliku, system jest w stanie odtworzyć wcześniejsze ustawienia. Mowa tutaj oczywiście o przywracaniu backupu. W przypadku, gdy wprowadzone przez nas zmiany w rejestrze nie działają zgodnie z planem, będziemy musieli przywrócić poprzednie ustawienia. Możemy to zrobić na dwa proste sposoby. Jednym z nich jest przejście do zakładki File w lewym górnym roku, a następnie wybraniu opcji Import:

Alternatywnie, możemy po prostu uruchomić plik .reg klikają na niego. W większości przypadków ten sposób również pozwoli na przywrócenie wcześniejszych ustawień.

Edycja rejestru

Rejestr możemy oczywiście edytować bezpośrednio za pomocą edytora rejestru. Możemy wyszukać go w menu start lub uruchomić za pomocą polecenia regedit:

Edytor rejestru jest oczywiście narzędziem, które pozwala nam na jego bezpośrednią edycję. Warto jednak zdawać sobie sprawę z tego, że wiele ustawień w rejestrze możemy zmienić za pomocą innych narzędzi. Z racji tego, że rejestr przechowuje wiele informacji konfiguracyjnych, przez co wprowadzenie takich zmian, spowoduje jednocześnie edycję odpowiednich kluczy i wpisów w rejestrze. Mowa tutaj również o podstawowych narzędziach konfiguracyjnych, takich jak Panel Sterowania czy GPO.

Wprowadzone tam zmiany w wielu przypadkach pozwolą nam na edycję rejestru w sposób bezpieczny. Oznacza to, że tak wprowadzone zmiany będzie można cofnąć w zasadzie w każdej chwili. Przykładem jest tutaj powrót do opcji Not configured przy w zasadzie większości ustawień w GPO. Resztę zmian wykona za nas system, co daje nam dużo wyższy poziom bezpieczeństwa. To, na które klucze w rejestrze oddziałowuje dana zmiana w GPO możecie sprawdzić tutaj. A o samych zmianach w GPO możecie przeczytać w kilku innych wpisach na Blogu.

Jeżeli jednak zdecydowaliśmy się na wprowadzenie zmian w rejestrze bezpośrednio oraz przygotowaliśmy backup (i najlepiej maszynę wirtualną na potrzeby testów), możemy przejść do demonstracji kilku przykładowych zmian, których możemy dokonać w rejestrze.

Blokada wybranej aplikacji

Jednym z przykładów może być np. blokada możliwości uruchomienia konkretnych aplikacji. Możemy to osiągnąć odnajdując klucz HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer. Zablokowanie możliwości uruchamiania konkretnych aplikacji pozwoli na zademonstrowanie tworzenia zarówno klucza, jak i wpisu.

Zacznijmy od utworzenia samego wpisu. Klikając PPM na pustą przestrzeń rozpoczniemy od wybrania typu wpisu. W tym przypadku będziemy potrzebowali liczby, więc wybieramy New->DWORD value:

Określając nazwę wpisu, wpisujemy DisallowRun:

A następnie klikając dwukrotnie na utworzony wpis nadajemy mu wartość „1”:

Następnie, aby określić programy, których zablokowanie nas interesuje, tworzymy nowy klucz. W tym celu ponownie klikamy PPM na pustą przestrzeń i wybieramy New->Key:

Dla utworzonego klucza określamy identyczną nazwę, jak w przypadku tworzonego przed chwilą wpisu:

Wewnątrz utworzonego klucza dodajemy kolejne wpisy. Tym razem wykorzystamy wartości typu string (REG_SZ), dzięki którym określimy nazwy plików, których uruchomienie ma być zablokowane. Oczywiście tworzymy je w analogiczny sposób, jak wpis tworzony przed momentem:

W tym momencie nasza przykładowa konfiguracja jest gotowa. Użytkownik, za pomocą którego wprowadzaliśmy zmiany, próbując uruchomić wybrane programy zobaczy następujący komunikat:

lub wyszukana w menu start odpowiednia aplikacja, nie będzie w ogóle reagowała na próby jej uruchomienia.

Dodanie notki prawnej

Oprócz tworzenia nowych kluczy czy wpisów, możemy naturalnie edytować również te istniejące. Załóżmy, że tym razem chcemy dodać notkę prawną, która będzie wyświetlana użytkownikom zanim będą mieli oni możliwość zalogowania się do systemu.

Możemy to zrobić edytując dwa wpisy znajdujące się w następującym kluczu – HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Znajdziemy tutaj odpowiadające za nią dwa wpisy – legalnoticecaption (odpowiadający za nagłówek) oraz legalnoticetext (odpowiadający za tekst):

Oba wpisy przechowują dane typu string (REG_SZ), a ich edycja jest niezwykle prosta. Analogicznie do nowo tworzonych wpisów wystarczy kliknąć na nie dwukrotnie wprowadzając odpowiednie wartości, np.:

Ta prosta konfiguracja skutkuje wyświetleniem skonfigurowanej następującej notki, która pokaże się tuż przed momentem logowania użytkownika:

W ten prosty sposób, edytując istniejący już w rejestrze klucz, możemy osiągnąć zamierzony efekt

Pliki .reg

Zmiany w rejestrze możemy wprowadzać nie tylko ręcznie, „wyklikując” je w edytorze. Równie dobrze możemy do tego celu wykorzystać pliki o specjalnym rozszerzeniu – .reg. Pliki te mogliśmy spotkać już na etapie przygotowywania „backupu” rejestru, który polega de facto na wyeksportowaniu interesujących nas kluczy oraz wpisów, aby móc potem odczytać je ponownie i wprowadzić odpowiednie zmiany. Pliki te możemy wykorzystać do stworzenia pewnego rodzaju skryptu, automatyzującego wprowadzanie zmian w rejestrze. Może to przyśpieszyć naszą pracę, ograniczając czas potrzebny na „przeklikanie się” przez kolejne klucze w edytorze. Szczególnie, gdy chcemy dokonać takich zmian dużo czy wprowadzić je na wielu urządzeniach.

Pliki .reg mają swoją specyficzną, choć stosunkowo prostą budowę. Możemy przygotować je posługując się choćby zwykłym notatnikiem. Należy jednak pamiętać o zachowaniu charakterystycznej dla nich struktury:

  1. Zwrot Windows Registry Editor Version 5.00, który musi znaleźć się w 1 linijce pliku
  2. Pomiędzy nagłówkiem oraz poszczególnymi kluczami należy zachować linijkę przerwy
  3. W nawiasach kwadratowych umieszczamy „ścieżkę” klucza, który chcemy utworzyć. Jeżeli dany klucz już istnieje, wprowadzenie go tu nie spowoduje błędów w działaniu „skryptu”.
  4. Bezpośrednio pod kluczem umieszczamy wpisy, które powinny się w nim znajdować. Na początku określamy nazwę wpisu, następnie po „=” jego typ oraz wartość

Ta prosta struktura pozwala na odczytanie zapisanych informacji dotyczących kluczy i wpisów oraz utworzenie ich w rejestrze. Na załączonym wyżej obrazku mamy do czynienia z typem DWORD – liczba jest tutaj oczywiście zapisana w systemie szesnastkowym.

Zobaczymy w jaki sposób moglibyśmy przygotować plik .reg dla notki prawnej, którą konfigurowaliśmy przed chwilą:

W tym przypadku mamy do czynienia z wartościami typu string (REG_SZ), więc wystarczy określenie wartości w cudzysłowie. Wpis zapisany w ten sposób automatycznie otrzyma typ REG_SZ.

Aby wprowadzić zmiany w samym rejestrze wystarczy jedynie uruchomić utworzony plik .reg lub zaimportować go w edytorze rejestru. Jeżeli został on utworzony poprawnie, po jego uruchomieniu powinniśmy finalnie zobaczyć następujący komunikat:

Czy ten wpis był dla Ciebie przydatny?

Zostaw ocenę!

Średnia ocena 5 / 5. 9

Nikt nie ocenił jeszcze tego wpisu. Bądź pierwszym, który to zrobi!

Przykro mi, że post nie był dla Ciebie przydatny ...

Podziel się proszę swoją opinią

Twoja opinia jest dla mnie niezwykle ważna

1 komentarz do “Rejestr systemowy w Windows 10”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.