Microsoft Windows NT/Rejestr

Rejestr systemu Windows to centralna baza konfiguracyjna systemu. Jego zadanie jest podobne do funkcji katalogu /etc/ w systemach Linux, Unix. Przechowywane tam są informacje o konfiguracji sprzętowej komputera, konfiguracji systemu, konfiguracji i ustawieniach indywidualnych użytkowników systemu oraz programów, ustawienia lokalne zainstalowanych programów. Rejestr został stworzony w celu zastąpienia używanych wcześniej plików .ini.

Struktura rejestru

edytuj

Rejestr systemu Windows składa się z trzech głównych gałęzi, które są przechowywane w plikach (HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER) oraz kilku, które są aliasami dla poszczególnych kluczy lub są przechowywane w pamięci do czasu wyłączenia komputera, a potem usuwane. W każdej z gałęzi znajdują się klucze, które z kolei mogą zawierać inne klucze i/lub listę wartości.

Rejestr systemu przechowywany jest w systemach Windows w kilku plikach. Dla systemów Windows 95, Windows 98, Windows 98SE są to pliki USER.DAT oraz SYSTEM.DAT. W przypadku nowszych systemów zależności pokazuje poniższa tabela:

Część rejestru Plik
HKEY_CURRENT_USER Ntuser.dat, Ntuser.dat.log
HKEY_LOCAL_MACHINE\SAM Sam, Sam.log, Sam.sav
HKEY_LOCAL_MACHINE\Security Security, Security.log, Security.sav
HKEY_LOCAL_MACHINE\Software Software, Software.log, Software.sav
HKEY_LOCAL_MACHINE\System System, System.alt, System.log, System.sav
HKEY_USERS\.DEFAULT Default, Default.log, Default.sav

Gdzie plik bez rozszerzenia zawiera dane zawarte w poszczególnych częściach rejestru, plik .log zawiera informacje o historii dostępu i historii zmian w poszczególnych kluczach i wartościach, a pliki .alt i .sav są kopią zapasową.

Gałęzie rejestru

edytuj

HKEY_CLASSES_ROOT (HKCR)

edytuj

Gałąź HKEY_CLASSES_ROOT została zachowana jedynie dla zgodności z systemem Windows 3.1. W rzeczywistości jest jedynie wskaźnikiem (aliasem) do klucza HKEY_LOCAL_MACHINE\Software\Classes. Przechowuje informacje o skojarzeniach rozszerzeń plików z programami oraz o identyfikatorach OLE. Nie jest zalecane, aby nowe aplikacje, które działają w kontekście różnych użytkowników lub w sesji 0, używały tego klucza. W zamian należy się odwoływać za pomocą pełnej ścieżki.

HKEY_CURRENT_USER (HKCU)

edytuj

HKEY_CURRENT_USER to alias podklucza gałęzi HKEY_USERS, odnoszącej się do użytkownika właśnie zalogowanego na komputerze. Informacje tu zawarte to między innymi ustawienia pulpitu czy menu Start oraz ustawienia zainstalowanych programów. W tej gałęzi znajdują się również domyślne ścieżki plików tymczasowych TEMP oraz TMP.

HKEY_LOCAL_MACHINE (HKLM)

edytuj

Gałąź HKEY_LOCAL_MACHINE zawiera informacje o konfiguracji komputera, niezależne od tego, który z użytkowników z niego korzysta i jakiego oprogramowania używa. Są w nim również gromadzone dane o wszystkich urządzeniach kiedykolwiek dołączonych do systemu, nawet jeżeli nie są w nim już obecne.

Na przykład:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\00xx zawiera parametry konfiguracyjne wszystkich interfejsów sieciowych obecnych w systemie, wartość NetworkAddress zawiera informację odpowiadającą adresowi MAC danego interfejsu, zmieniając ją możemy ustalić dowolny adres MAC dla konkretnej karty sieciowej, przy czym nie wszystkie karty i sterowniki pozwalają na modyfikowanie adresu fizycznego MAC, zatem w takim przypadku pomimo zmienionej wartości NetworkAddress, rzeczywisty adres karty pozostanie zgodny z fabrycznym.
  • HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices zawiera informacje o znanych woluminach (partycjach) i zamontowanych/odmontowanych dyskach (lub napędach CD/DVD), na przykład[1]:
    • Wartości opisujące zamontowane dyski (np. dysk C:):
      • Wartość \??\Volume{488d8441-e711-11dd-bb15-806d6172696f} zawierająca ciąg bajtów: b8 05 ec 0e 00 e6 10 05 04 00 00 00.
      • Wartość \DosDevices\C: zawierająca ciąg bajtów: b8 05 ec 0e 00 e6 10 05 04 00 00 00.
      • Warto zwrócić uwagę że obie wartości zawierają zawsze taki sam ciąg bajtów.
    • Wartości opisujące odmontowane dyski (niedostępne w systemie):
      • Wartość #{124c806e-e78b-11dd-a0f0-a514a46f5c84} zawierająca ciąg bajtów: b8 05 ec 0e 00 7e 00 00 00 00 00 00.
      • Brak wtedy klucza \DosDevices\X:, a zamiast ciągu \??\Volume w nazwie wartości występuje znak #.

W wypadku, gdy zmieniona zostanie litera przypisana dyskowi systemowemu (np. dysk C - systemowy - będzie zamontowany jako D), modyfikując litery dysków w nazwach kluczy zaczynających się od \DosDevices\ można naprawić system. Modyfikacje można dokonać także w wypadku nieuruchamiającego się sytemu Windows, posługując się innym systemem, np. LiveCD i aplikacją edytującą rejestr, posiadającą funkcjonalność edycji rejestru bezpośrednio jako plików, odpowiadającym konkretnym gałęziom, na dysku systemowym (niekoniecznie C:) w katalogu \Windows\System32\config.

HKEY_USERS (HKU)

edytuj

GałąźHKEY_USERS zawiera indywidualne ustawienia dla każdego z zalogowanych użytkowników komputera. Tutaj umieszczone są klucze z gałęzi HKEY_CURRENT_USER

HKEY_CURRENT_CONFIG (HKCC)

edytuj

HKEY_CURRENT_CONFIG przechowuje informacje o różnicach między bieżącą a standardową konfiguracją sprzętową. Jest to wskaźnik do HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current.

Ustawienia Autostartu w Rejestrze systemu Windows

edytuj

W obecnych wersjach systemu Windows istnieją cztery klucze,[2] w których mogą być zawarte informacje o automatycznym uruchamianiu programów:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - uruchamia po zalogowaniu się do bieżącego profilu użytkownika.
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce - j.w., ale wpis jest kasowany przed wywołaniem komendy, więc program jest uruchamiany tylko raz.[3]
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run - uruchamia niezależnie od tego, kto się zaloguje.
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce - j.w., ale wpis jest kasowany przed wywołaniem komendy, więc program jest uruchamiany tylko raz.[3]

Programy do edycji rejestru

edytuj

regedit

edytuj

Jest to podstawowe i oficjalne narzędzie do pracy z rejestrem, wydane przez firmę Microsoft, dostarczany wraz z systemem operacyjnym (Windows 95 i nowsze). Program standardowo znajduje się w katalogu z zainstalowanym systemem Windows (standardowo C:\Windows). Jego uruchomienie następuje poprzez bezpośredni dostęp do programu w katalogu gdzie został umieszczony lub poprzez wywołanie go za pomocą okienka Uruchom:

  1. Nacisnąć kombinację klawiszy Windows+R
  2. Wpisać w polu tekstowym słowo regedit
  3. Nacisnąć przycisk OK

Program Regedit działa w dwóch trybach: w środowisku graficznym GUI oraz w trybie zwanym wierszem poleceń lub trybem konsoli.

chntpw

edytuj

Edytor rejestru przeznaczony na wybrane dystrybucje Linuxa. Posiada on jedynie tryb tekstowy, uruchamiany z poziomu terminala. Program jest dostępny także do instalacji na płycie CD lub pendrivie, pozwalający na uruchomienie edytora bezpośrednio przez BIOS (wersja bootowalna).

Kopia zapasowa

edytuj

Przed rozpoczęciem edycji kluczy i wartości w rejestrze zalecane jest utworzenie kopii zapasowej całości rejestru. Dokonuje się tego poprzez wybranie opcji Plik -> Eksportuj... w Edytorze Rejestru, a następnie należy wybrać pole Wszystko w dolnej części okna i zapisać kopię zapasową w wybranej lokalizacji.

System Windows, począwszy od wersji Millennium, posiada opcję Przywracanie systemu, która w przypadku awarii systemu pozwala na przywrócenie wcześniejszego, pozbawionego błędów rejestru.

  1. Poniższe nazwy i wartości są przykładowe i mogą się różnić między komputerami
  2. Kiedyś istniały jeszcze dwa klucze: RunServices i RunServicesOnce, służące do uruchamiania usług systemu Windows. Obecnie tę funkcję pełnią odpowiednie wartości zdefiniowane w podkluczach klucza HKLM\System\CurrentControlSet\Services
  3. 3,0 3,1 W przypadku, kiedy na początku ścieżki do programu jest wykrzyknik, wpis jest kasowany po uruchomieniu programu