Aktualizacja 02.11.2022: informacje o lokalizacjach pliku rejestru - sekcja Budowa rejestru.
Systemy Windows przed Windows 98 przechowywały konfigurację systemu operacyjnego i zainstalowanych aplikacji w plikach .ini
. Były one jednak niewygodne, nieporęczne i mogły zostać łatwo uszkodzone lub usunięte.
Rejestr systemu Windows
Scentralizowana, hierarchiczna baza danych przechowująca informacje potrzebne do konfiguracji systemu dla jednego lub wielu użytkowników, aplikacji oraz urządzeń.
Rejestr zawiera informacje, do których system Windows odnosi się cały czas podczas pracy, np. profile każdego z użytkowników, konfiguracje aplikacji zainstalowanych na komputerze, typy plików i ich ikonki czy wreszcie informacje o sprzęcie obecnym w komputerze i o tym, jakie porty są używane. Dostęp do rejestru został nieco ograniczony, aby niedoświadczeni użytkownicy nie uszkodzili systemu operacyjnego - choćby przez nieumiejętne wprowadzenie zmian czy usunięcie "niepotrzebnych" kluczy.
Informacje do rejestru dodaje:
- sam system - w zakresie instalacji sprzętu czy konfiguracji systemu,
- instalatory aplikacji i same aplikacje - w zakresie własnej konfiguracji.
Dzięki temu eliminuje się ingerencję użytkownika, co wprost ogranicza ilość uszkodzeń komputera spowodowanych nieprawidłową konfiguracją (por. PEBCAK).
Dostęp do rejestru jest możliwy poprzez narzędzie Edytor rejestru (lub wywołanie bezpośrednie programu regedit
.exe
(dodawanie .exe
do nazwy pliku nie jest obowiązkowe, system sam rozpozna, o jaki plik chodzi)).
Budowa rejestru i główne klucze
Rejestr składa się z kluczy, podkluczy i wartości, które są fizyczne zapisane w chronionych plikach systemu operacyjnego (z wyjątkiem klucza HKEY_CURRENT_USER
):
- standardowa lokalizacja plików rejestru to
%SystemRoot%\System32\config
, - ustawienia użytkowników są przechowywane w lokalizacji
%UserProfile%\ntuser.dat
, - ustawienia aplikacji domyślnych danego użytkownika (gdy np. wybierzemy, że pliki PDF na naszym koncie ma otwierać Foxit Reader zamiast Adobe Readera, choć u wszystkich innych to ten drugi domyślnie je otwiera) są przechowywane w lokalizacji
%UserProfile%\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
.
Klucze są obiektami-kontenerami przechowującymi podklucze i wartości. Wartości rejestru to "trójki" nazwa - typ - wartość.
Istnieje pięć kluczy najwyższego poziomu. Nazywamy je kluczami głównymi, kluczami wstępnie zdefiniowanymi albo podstawowymi gałęziami rejestru. Wyróżniamy następujące klucze:
HKEY_CURRENT_USER
(częsty skrót:HKCU
) - zawiera kopię konfiguracji aktualnie zalogowanego użytkownika: ścieżki do folderów, kolory ekranu czy ustawienia panelu sterowania;HKEY_USERS
(częsty skrót:HKU
) - zawiera informacje o wszystkich aktywnych profilach użytkowników w systemie;HKEY_CURRENT_USER
jest jego podkluczem;HKEY_LOCAL_MACHINE
(częsty skrót:HKLM
) - zawiera informacje o konfiguracji komputera oraz oprogramowania;HKEY_CLASSES_ROOT
(częsty skrót:HKCR
) - jest podkluczem kluczaHKEY_LOCAL_MACHINE\Software
; zawiera informacje o tym, którego programu należy użyć do obsługi wybranego typu pliku (np. jakim programem otworzyć plik.pdf
), przy czym informacje te mogą zostać "przykryte" przez ustawienia poszczególnych użytkowników zawarte w kluczuHKEY_CURRENT_USER\Software\Classes
(ale tylko dla tego konkretnego użytkownika);HKEY_CURRENT_CONFIG
- zawiera informacje o profilu sprzętowym używanym przez system operacyjny podczas uruchamiania.
Aby podać, w którym miejscu znajduje się jakaś wartość, podajemy ścieżkę - jak w systemie plików, np. HKEY_LOCAL_MACHINE\Hardware\DESCRIPTION\System
. Możemy także podać bezpośrednią ścieżkę do wartości rejestru, np. HKEY_LOCAL_MACHINE\Hardware\DESCRIPTION\System\SystemBiosVersion
.
Typy wartości w rejestrze
Wartości w rejestrze mają swój typ - pewien zestaw możliwych do przyjęcia wartości. Możemy wskazać ich wiele, wśród których najczęstszymi będą te wymienione poniżej.
Typ | Nazwa | Opis danych |
REG_BINARY | Wartość binarna | "Surowe" dane binarne. Najczęściej używane do przechowywania informacji sprzętowych. W Edytorze rejestru są wyświetlane w postaci heksadecymalnej. |
REG_DWORD | Wartość DWORD (podwójne słowo) | Dane prezentowane przez liczbę 4-bajtową (32-bitowa liczba całkowita). Wiele parametrów urządzeń czy usług używa tego typu wartości. Edytor rejestru prezentuje je binarnie, decymalnie lub heksadecymalnie. |
REG_QWORD | Wartość QWORD (czterosłowo) | Dane prezentowane przez liczbę 8-bajtową (64-bitowa liczba całkowita). |
REG_EXPAND_SZ | Rozszerzalny ciąg znaków | Ciąg znaków o zmiennej długości. |
REG_SZ | Ciąg znaków | Ciąg znaków stałej długości. |
REG_NONE | None | Dane bez wyszczególnionego typu. Edytor rejestru przedstawi je heksadecymalnie. |
Wykonanie kopii zapasowej rejestru
Przed wprowadzeniem jakichkolwiek zmian w rejestrze, należy wykonać jego kopię. Jeśli dokładnie wiemy, jakie zmiany wprowadzamy, możemy ograniczyć kopię wyłącznie do zmienianych danych. Dzięki temu będziemy mogli przywrócić stan rejestru sprzed rozpoczęcia pracy.
Kopię rejestru wykonamy przy użyciu menu Plik\Eksportuj
. Możemy także kliknąć prawym klawiszem na wybrany klucz i z menu kontekstowego wybrać opcję Eksportuj.
Programy wspomagające czyszczenie rejestru
Domyślnie w systemie przyjmuje się zasadę, że ten, kto tworzy klucze i wartości, odpowiada za nie. Często jednak zdarza się, że gdy usuwamy aplikację, jej deinstalator pozostawia w rejestrze niepotrzebne już dane. Spowalnia to pracę systemu, ponieważ musi on analizować dane, które nie są już do niczego potrzebne.
Gdy komputer zostanie pomyślnie uruchomiony, raz dziennie narzędzie Kontroler rejestru systemu Windows (scanreg.exe
) tworzy kopię zapasową plików systemowych oraz informacji o konfiguracji rejestru (w tym informacji o koncie użytkownika, powiązaniach protokołów, ustawieniach programów i preferencjach użytkownika). Po uruchomieniu automatycznie skanuje rejestr systemu w poszukiwaniu błędnych wpisów i pustych bloków danych. Jeśli wykryje błędny wpis, to automatycznie odtworzy kopię zapasową z poprzedniego dnia. Jest to jednoznaczne z wywołaniem polecenia scanreg /autorun
z wiersza polecenia. Jeśli nie jest dostępna żadna kopia zapasowa, narzędzie Kontroler rejestru systemu Windows podejmuje próbę naprawy rejestru. Jest to jednoznaczne z wywołaniem polecenia scanreg /fix
z wiersza polecenia. Jeśli rejestr zawiera ponad 500 KB pustych bloków danych, to wtedy narzędzie Kontroler rejestru systemu Windows automatycznie optymalizuje rejestr.
Możemy także skorzystać z programów firm trzecich, które mają np. bazy danych zawierające informacje o najczęściej "porzucanych" kluczach i wartościach, i mogą zaproponować ich usunięcie. Możemy skorzystać z programu RegCleaner czy CCleaner.
Świetny artykuł. Gratulacje
super artykuł bardzo przydatne informacje