Autor: PIOTR PALUSIŃSKI
Artykuł został opublikowany w IT-FAQ nr. 2/2005.
Podstawy Rejestru Windows 2000\XP\2003 - część I
Rejestr – słowo, które, niektórych przyprawia o ból głowy, natomiast dla zwykłego administratora jest
standardowym elementem pozwalającym na dowolną modyfikację parametrów systemu. Niniejszy artykuł ma na
celu przybliżenie struktury i działania rejestru oraz właściwej jego modyfikacji pozwalającej w bardziej efektywny
sposób zarządzać elementami systemu operacyjnego. Struktura rejestru jest bardzo złożona i zawiera wiele
elementów, które są pogrupowane według przeznaczenia na klucze i podklucze a te z kolei zawierają wpisy wraz z
ustawieniami i opisem danych elementów systemu. Wiele ustawień Windows nie da się zmodyfikować bez integracji
w rejestr. Rejestr Windows jest centralną, hierarchiczną bazą danych zawierającą ustawienia urządzeń, systemu i
użytkowników. Informacje te są niezbędne do normalnej pracy systemu. Profile użytkowników, ustawienia aplikacji
zainstalowanych na komputerze, informacje o sprzęcie i konfiguracji poszczególnych podzespołów komputera są
nieodzowną częścią rejestru. Uruchamiając program REGEDIT wchodzimy w serce systemu, które można
przeglądać i modyfikować według własnych potrzeb. Na pierwszy rzut oka nic ciekawego tam nie ma, jedynie, co
widać, to kilka ikonek oznaczonych jako HKEY-xxx. HKEY jest nazwą Microsoftu określającą wskaźnik uchwytu
(ang. handle) i klucza (ang. key). Kluczami są foldery widoczne w edytorze rejestru. Sama struktura rejestru
przypomina strukturę plików i folderów na dysku. Ta z pozoru skomplikowana baza danych zawiera wszystkie
informacje na temat konfiguracji komputera, połączeń sieciowych oraz sesji użytkowników. Zrozumienie ich oraz
umiejętne wykorzystanie jest podstawą optymalnego ustawienia wydajności pracy Windows.
Rys. 1: Hierarchiczna struktura rejestru i plików systemowych Windows
Przed powstaniem Rejestru systemy operacyjne Microsoftu wykorzystywały zwykłe pliki tekstowe do
przechowywania informacji o ustawieniach systemu, które były zapisane w plikach Autoexec.bat i Config.sys.
Rejestr ujrzał po raz pierwszy światło dzienne wraz z wprowadzeniem na rynek systemu Windows 3.1. Był to jeden
plik, którego rozmiar podlegał ograniczeniu do 64 kB. Wadą rejestru Windows 3.1 była słaba synchronizacja
zawartości z aktualnym stanem aplikacji, czcionek, sterowników i innych elementów ładowanych do pamięci.
Prawdopodobnie największym problemem był fakt, że większość programistów po prostu nie korzystała z rejestru,
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
1 of 9
2010-03-04 18:17
nadal polegając na plikach.INI. Następną ewolucją rejestru było wprowadzenie na rynek Windows NT. Rejestr nie
zawierał już ograniczenia 64 kB i mógł rozrastać się w sposób wykładniczy. Zrezygnowano również z pojedynczego
pliku rejestru na rzecz wielu plików, zachowujących jednak pojedynczą strukturę hierarchiczną. Microsoft zaczął
również gorąco zachęcać programistów do porzucenia korzystania z plików.INI na rzecz rejestru. Systemy Windows
95/98/Me podobnie ja Windows NT przyniosły ze sobą znaczące zmiany w strukturze rejestru. Pliki, w których są
przechowywane informacje o ustawieniach systemu oraz użytkownika są zapisane w USER.DAT, SYSTEM.DAT
oraz (jeżeli wykorzystywany jest edytor założeń systemowych) CONFIG.POL i dodatkowo w Windows Milenium
CLASSES.DAT. Dlaczego rejestr w systemach Windows 95/98/Me jest przechowywany w dwóch plikach
(USER.DAT i SYSTEM.DAT) zamiast w jednym ?. Istnieje ku temu ważny powód. Wiele osób korzysta ze
środowiska sieciowego, w związku, z czym mogą "przesiadać" się z komputera na komputer pomiędzy różnymi
stanowiskami w firmowej (domowej) sieci. Dzięki dwóm plikom Windows może przechowywać plik SYSTEM.DAT
na
komputerze, do którego ten plik się odnosi, a plik USER.DAT na serwerze sieciowym. W przypadku, gdy
użytkownik loguje się do komputera działającego w sieci, Windows odwołuje się do serwera sieciowego, lokalizuje
plik USER.DAT i stosuje przechowywane w nim ustawienia dotyczące użytkownika. W rezultacie ustawienia
użytkownika "podążają" za nim w sieci pozwalając w wygodny sposób korzystać z nich na dowolnym komputerze.
Rejestr systemów Windows 95/98/Me zawiera bazę danych ASCII pobraną z plików SYSTEM.DAT i USER.DAT i
(jeżeli został przygotowany) pliku CONFIG.POL. Pliki te zapisane są w postaci nieczytelnej dla człowieka, dlatego
ich zawartość można oglądać i modyfikować tylko za pośrednictwem edytora rejestru (lub Panelu sterowania) oraz,
w przypadku pliku CONFIG.POL, edytora założeń systemowych.
Nazwa pliku
Opis
SYSTEM.DAT
zawiera ustawienia specyficzne dla komputera i ściśle powiązane
ze sprzętem.
USER.DAT
zawiera informacje specyficzne dla użytkowników pobrane z ich
profili, dotyczące między innymi praw użytkowników, ustawień pulpitu itp.
CONFIG.POL
zawiera informacje założeń systemowych oraz ustawień użytkownika. Przykładowo
można utworzyć założenia określające, jakie zmiany mogą zostać dokonane przez
użytkownika w ustawieniach wyświetlania lub wspólnych urządzeń. Informacje o
założeniach systemowych zastępują
informacje w plikach USER.DAT i SYSTEM.DAT (Plik CONFIG.POL nie jest
wymagany do instalacji Windows).
Tabela.1: Pliki rejestru systemów Windows 95/98/Me
Niektóre informacje zawarte w Rejestrze są przechowywane na dysku, podczas gdy inne są początkowo
umieszczane w pamięci RAM, przez co mogą dynamicznie odzwierciedlać zmiany konfiguracji. Na przykład przy
modyfikacji konfiguracji dysku optycznego Plug and Play, zmiana zostanie naniesiona natychmiastowo w rejestrze.
Rejestr nie zawiera informacji o konfiguracji aplikacji Windows 3.x. Dzieje się tak, dlatego, że aplikacje
zaprojektowane dla starszej wersji Windows nie mają elementów znajdujących się w rejestrze. Aplikacje Win16
zostały zaprojektowane do współpracy z plikami WIN.INI i SYSTEM.INI, a także z własnymi plikami.INI. Rejestr
nie zawiera również żadnych informacji specyficznych dla plików DOS-owych. Plik .PIF aplikacji DOS-owej, w
żaden sposób nie odnosi się to do Rejestru.
Pomimo tego, że rejestr jest wspólny dla systemów Windows, począwszy od 9x a skończywszy na Windows 2003
Server, różni się nieznacznie w zależności od wersji systemu. Rejestr systemów Windows NT/2000/XP/2003 jest
bardzo zbliżony, gdyż systemy te są oparte na podobnym jądrze, jednak różnica w stosunku do systemów Windows
9x/ME jest znacząca. Na skutek wprowadzenia nowych funkcji po raz pierwszy zastosowanych w systemie
Windows XP i rozszerzeń wprowadzonych w jego jądrze w rejestrze pojawiły się nowe klucze i wpisy. Nie jest to
zaskoczeniem, ponieważ użycie wszystkich nowych funkcji musi znaleźć odzwierciedlenie w rejestrze. Rejestr
systemów Windows NT/2000/XP/2003 jest zbudowany z wielu składników, które są przechowywane w kilku
różnych plikach na komputerze. Pliki te nazywane są hives i umieszczane są w folderach \Windows\System32
\Config i \Documents and Setting\nazwa_użytkownika. Podczas korzystania z edytora rejestru rejestr jest
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
2 of 9
2010-03-04 18:17
wyświetlany jako pojedyncza struktura hierarchiczna, która wygląda podobnie jak drzewo folderów w oknie
Eksploratora Windows. Wcześniejsze wersje Windows zawierały dwa edytory rejestru Regedit.exe oraz
Regedt32.exe. W obecnej wersji okienek funkcje edytora rejestru Regedt32.exe zostały włączone do Regedit.exe
(wersja 5.1). Stary Regedt32.exe pozwalał na modyfikację ustawień uprawnień powiązanych z kluczami rejestru.
Edytując rejestr w Windows XP/2003 nie musimy przełączać się do Regedt32.exe w celu ustawienia uprawnień.
Jedyną czynnością, którą musimy wykonać to kliknąć prawym klawiszem na wybranej wartości i z podręcznego
menu wybrać polecenie Uprawnienia. W 64-bitowych wersjach systemu Windows XP oraz Server 2003 rejestr jest
podzielony na klucze 32 i 64–bitowe. Większość kluczy 32–bitowych ma te same nazwy, co ich 64–bitowe
odpowiedniki i na odwrót. Jeśli używamy 64-bitowej wersji systemu Windows XP, rejestr będzie zawierał zarówno
klucze 64-bitowe, jak i 32-bitowe. Jednak domyślnie po uruchomieniu Regedit.exe w 64 bitowej wersji systemu
Windows wyświetlane będą jedynie klucze 64-bitowe. Jeśli chcemy używać edytora, który będzie wyświetlał klucze
32-bitowe, najpierw sprawdzamy, czy nie jest uruchomiony 64-bitowy edytor Rejestru– Regedit32.exe. Wersję
32-bitową otrzymamy wpisując w menu Start/uruchom %systemroot%\syswow64\regedit. Syswow32 („wow” to
skrót od „Windows on Windows”) jest dostępny już od jakiegoś czasu w 32-bitowych systemach Microsoftu i jest
wykorzystywany do uruchamiania 16-bitowych programów w środowisku 32-bitowym. Natomiast Syswow64
tworzy środowisko dla aplikacji 32-bitowych w 64-bitowym systemie operacyjnym. W 64–bitowej wersji edytora
rejestru klucze 32–bitowe wyświetlane są w następującym węźle (HKEY_LOCAL_MACHINE\Software
\WOW6432).
Budowa rejestru
W skład rejestru wchodzi pięć głównych kluczy, które zawierają szereg podkluczy. Klucz wraz ze swoimi
podkluczmi nazywany jest gałęzią. Rejestr jest przechowywany na dysku w kilku oddzielnych plikach gałęzi.
Podczas uruchamiania systemu lub przy logowaniu użytkownika, pliki te są łączone w jedną całość i tworzą rejestr.
Umiejscowienie plików gałęzi w systemie możemy sprawdzić poprzez wyedytowanie rejestru i przejście do gałęzi
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\HiveList
Rys. 2: Klucz HiveList
Każdy wpis wartości tego podklucza HiveList zawierają lokalizację katalogu Rejestru (jako nazwa wpisu wartości)
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
3 of 9
2010-03-04 18:17
oraz fizyczną lokalizację katalogu (jako wartość wpisu wartości). W tym podkluczu znajdziemy sześć podstawowych
wpisów wartości:
Hardware – wpis ten odpowiada podkluczowi HKLM\Hardware. Nie ma wartości, ponieważ nie jest zapisany na
dysku.
SAM – wpis ten odpowiada podkluczowi HKLM\SAM
Security – wpis ten odpowiada podkluczowi HKLM\SECURITY
Software – wpis ten odpowiada podkluczowi HKLM\Software
System – wpis ten odpowiada podkluczowi HKLM\System
.Default – wpis ten odpowiada podkluczowi HKU\.Default
Dla każdego użytkownika w systemie tworzony jest również dodatkowy wpis wartości, który wskazuje plik
NTUSER.DAT w folderze użytkownika Documents and Settings.
Warto zauważyć, że łańcuchy będące wartościami wpisów posiadają specyficzny format danych. Np.
\Control\HiveList pokazany na rysunku 2, ma wartość \REGISTRY\Machine\System. Format różni się od
normalnie stosowanego (na przykład HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER). Co to
oznacza?.
Wszystkie systemy Windows oparte na technologii NT, włącznie z systemem Windows 2000/XP/2003, są
zorientowane obiektowo. Oznacza to, że manipulują kilkoma typami obiektów, w tym urządzeniami,
portami, zdarzeniami, katalogami i łączami symbolicznymi. Klucze rejestru są obiektami specjalnego typu.
Wstępnie zdefiniowany klucz jest obiektem typy Key o nazwie REGISTRY. W dokumentacji pakietu DDK
(Device Driver Kit) nazwy wszystkich kluczy rejestru zaczynają się od łańcucha \REGISTRY (na przykład
\Registry\Machine\CurrentControlSet\Services). A zatem uchwyt HKEY_LOCAL_MACHINE jest
kluczem o nazwie REGISTRY\Machine, natomiast uchwyt HKEY_CURRENT_USER kluczem o nazwie
\REGISTRY\User.
Gałąź rejestru Pliki wspomagające
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_CURRENT_CONFIG
system, system.alt*, system.log, system.sav
HKEY_USERS\.DEFAULT
default, default.log, default.sav
HKEY_CURRENT_USER
ntuser.dat, ntuser.dat.log
Pliki nie powiązane z kluczami
userdiff, userdiff.log, userdifr**, userdifr.log**
Tabela 2: Klucze rejestru i pliki
* - Pliki, które wyeliminowano w systemie Windows XP/2003
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
4 of 9
2010-03-04 18:17
** - Pliki, które pojawiły się w systemie Windows XP/2003
Wszystkie te pliki, z wyjątkiem HKEY_CURRENT_USER, są przechowywane w %systemroot%\System32
\Config. Pliki HKEY_CURRENT_USER są przechowywane w %systemroot%\Documents and Settins\Nazwa
użytkownika.
Gałąź HKEY_CURRENT_USER jest obsługiwana przez plik ntuser.dat i ntuser.dat.log. Plik ntuser.dat zawiera
profile użytkowników, natomiast plik ntuser.dat.log uwzględnia wszystkie zmiany dokonane w pliku ntuser.dat.
Opis rozszerzeń plików tworzących rejestr
Brak rozszerzenia – jeśli plik nie ma rozszerzenia, to jest pełną kopią danych katalogu.
.alt – pliki o tym rozszerzeniu zawierają kopię zapasową katalogu HKEY_LOCAL_MACHINE\System. Jest to
jedyny katalog, który korzysta z tego rozszerzenia. W systemie Windows XP/2003 pliki .alt zostały wyeliminowane,
ponieważ kod rejestru został przebudowany w celu zaoferowania lepszych algorytmów zwiększających szybkość
przetwarzania zapytań, poprawiających stabilność i obsługujących większe rejestry.
.log – plik, w którym zapisane są transakcje danego katalogu, przechowujący dokonane zmiany.
.sav – plik zawiera kopie plików gałęzi rejestru stworzonych w chwili wykonywania części instalacji opartej na trybie
tekstowym. Istnieją pliki .sav dla następujących gałęzi rejestru: \Software, \System, \SAM, \Security, \.Default.
Systemy Windows NT/2000/XP/2003 wykonują kopie zapasowe gałęzi rejestru w trakcie instalacji. Procedura
instalacyjna składa się z dwóch etapów opartych na trybie tekstowym i graficznym interfejsie użytkownika. Po
zakończeniu etapu opartego na trybie tekstowym program instalacyjny zapisuje do plików .sav kopię zapasową
gałęzi rejestru. Ma to na celu zabezpieczenie gałęzi przed awariami, które mogą mieć miejsce w trakcie
przeprowadzenia części instalacji opartej na graficznym interfejsie użytkownika. Jeśli do takiej awarii dojdzie,
graficzny program instalacyjny zostanie uruchomiony po ponownej inicjalizacji systemu i pliki .sav posłużą do
odbudowania gałęzi rejestru.
Pliki userdiff, userdiff.log, userdifr, userdifr.log – przechowywane w katalogu %systemroot%\system32\config nie
są powiązane z żadną gałęzią. Pliki te stosowane są przy aktualizacji profili użytkowników istniejących w
poprzednich wersjach systemu Windows NT. Aktualizacja ma na celu dostosowanie profili do wymagań systemów
Windows NT/2000/XP i 2003.
SID
Konta komputerów, konta użytkowników, grupy i inne obiekty związane z nimi, identyfikowane są przez
tzw. identyfikator zabezpieczeń (SID – Security Identyfier). W przypadku kont domenowych SID dla
obiektu zabezpieczeń, tworzony jest poprzez połączenie identyfikatora zabezpieczeń domeny z
względnym identyfikatorem zabezpieczeń (Relative Identyfier – RID) danego konta. Za każdym razem
Windows lub usługa Active Directory generuje podstawowe zabezpieczenia i ich SID. Identyfikatory
zabezpieczeń są unikalne w zakresie swojego działania
i nie są wykorzystywane ponownie. Windows XP/2003, podobnie jak starsze systemy Windows NT/2000 –
automatycznie tworzy profil użytkownika, po pierwszym zalogowaniu w systemie. W celu zachowania takiego
profilu system tworzy nowy zagnieżdżony katalog w %ProfilePath% o nazwie konta logującego się użytkownika.
Ścieżka tego katalogu zostaje zapisana w rejestrze systemu i powiązana z identyfikatorem SID użytkownika. Jeśli na
przykład użytkownik jkowalski loguje się po raz pierwszy w systemie Windows 2000/XP/2003, zostaje utworzony
katalog o nazwie %SystemDrive%\Documents and Settings\jkowalski przechowujący nowy profil użytkownika.
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
5 of 9
2010-03-04 18:17
Systemy operacyjne Windows NT/2000/XP/2003 identyfikują użytkowników i grupy za pomocą
identyfikatorów zabezpieczeń SID. Identyfikatory SID są dość długie i niepowtarzalne w przypadku
każdego użytkownika (nawet dla kont użytkowników innych systemów). Jeśli zostanie usunięte konto
użytkownika z lokalnego komputera lub należącego do domeny, a następnie utworzone zostanie nowe
konto o takiej samej nazwie, system wygeneruje dla niego nowy Identyfikator SID. Nie jest możliwe
istnienie dwóch jednakowych identyfikatorów SID. Identyfikator SID ma format S-1-XXXXX
1
-
YYYYY
2
-.......RID, gdzie S-1 jest identyfikatorem SID wersji 1, XXXXX numerem uprawnienia, YYYYY
n
numerami uprawnień podrzędnych, natomiast RID identyfikatorem względnym. Warto zauważyć, że
identyfikator RID nie jest unikatowy w przypadku każdego komputera.
Warto też zwrócić uwagę na to, że wielu użytkowników systemów Windows NT/2000/XP/2003 (nawet ci
doświadczeni) często sądzi, że system identyfikuje każdego za pomocą nazwy konta i hasła. Tak nie jest.
Użytkownik w systemie jest w unikalny sposób identyfikowany za pomocą identyfikatora SID. Także
profile użytkownika są identyfikowane poprzez powiązanie z nimi identyfikatory SID (rysunek 7)
W skład typowego SID wchodzi kilka komponentów (w zależności od tego czy jest on lokalny czy należy do
domeny). Typowy SID zawiera:
– wartość – wartość struktury SID wykorzystywanej przez dany identyfikator; przyjmuje wartość 1 w przypadku
systemów Windows NT/2000/XP/2003,
– uwierzytelnianie identyfikatora – identyfikuje najwyższy poziom hierarchii uwierzytelniania, wydający
identyfikatory dla danego typu obiektów zabezpieczeń,
– dalsze źródła uwierzytelniania – bardzo istotne informacje zawarte są w serii identyfikującej kolejne źródła
uwierzytelniania. Oprócz ostatniego segmentu wszystkie pozostałe są tzw. identyfikatorem domeny. Ostatni z
wpisów identyfikuje konkretne konto w danej domenie (tzw. RID – względny identyfikator zabezpieczeń).
Przykład SID’a:
S-1-5-21-853487356-9182462398-816432819-1105
Podczas instalacji systemu lub domeny tworzone są tzw. dobrze znane identyfikatory zabezpieczeń. Tabela 3
zawiera dobrze znane identyfikatory zabezpieczeń występujące w Windows NT/2000/XP/2003.
SID
Nazwa konta, grupy lub zabezpieczenia
S-1-0
Null Authority (Puste)
S-1-0-0
Nobody (Nikt)
S-1-1
World Authority
S-1-1-0
Everyone (Wszyscy)
S-1-2
Local Authority
S-1-3
Creator Authority
S-1-3-0
Creator Owner (Twórca – Właścicel)
S-1-3-1
Creator Group (Grupa twórcy)
S-1-3-2
Creator Owner Server (Serwer twórcy – Windows
NT)
S-1-3-3
Creator Group Server (Serwer grupy twórców
–Windows NT)
S-1-4
Nonunique Authority
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
6 of 9
2010-03-04 18:17
S-1-5
NT authority (Uwierzytelnianie NT)
S-1-5-1
Dialup
S-1-5-2
Network (Sieć)
S-1-5-3
Batch (Wsadowy)
S-1-5-4
Interactive (Interaktywny)
S-1-5—5-X-Y
Logon Session (Sesja logowania) – X i Y identyfikuje
sesję
S-1-5-6
Service (Usługa)
S-1-5-7
Anonymous (Anonimowy)
S-1-5-9
Enterprise Controllers (Kontroler przedsiębiorstwa)
S-1-5-10
Principal Self
S-1-5-11
Authenticated Users (Użytkownicy uwierzytelniani)
S-1-5-12
Restricted Code (Windows XP)
S-1-5-13
Terminal Server Users (Użytkownicy serwera
terminali – Windows 2000)
S-1-5-18
Local System (System lokalny)
S-1-5-SID domeny-500
Administrator
S-1-5-SID domeny-501
Guest (Gość)
S-1-5-SID domeny-502
KRBTGT (Windows 2000)
S-1-5-SID domeny-512
Domain Admins (Administratorzy domeny)
S-1-5-SID domeny-513
Domains Users (Użytkownicy domeny)
S-1-5-SID domeny-514
Domain Guest (Goście domeny)
S-1-5-SID domeny-515
Domain Computers (Komputery domeny)
S-1-5-SID domeny-516
Domain Controllers (Kontrolery domeny – Windows
2000)
S-1-5-SID domeny-517
Cert Publisher (Wydawcy certyfikatów – Windows
2000)
S-1-5-root SID domeny-518
Schema Admins (Administratorzy schematu –
Windows 2000)
S-1-5-root SID domeny-519
Enterprise Admins (Administratorzy przedsiębiorstwa
– Windows 2000)
S-1-5-SID domeny-520
Group Policy Creators (Twórca zasady grupy –
Windows 2000)
S-1-5-SID domeny-553
RAS and IAS Server (Servery RAS i IAS – Windows
2000)
S-1-5-32-544
Administrators (Administratorzy)
S-1-5-32-545
Users (Użytkownicy)
S-1-5-32-546
Guests (Goście)
S-1-5-32-547
Power Users (Użytkownicy zaawansowani)
S-1-5-32-548
Account Operators (Operatorzy kodu)
S-1-5-32-549
Server Operators (Operatorzy serwerów)
S-1-5-32-550
Print Operators (Operatorzy wydruku)
S-1-5-32-551
Backup Operators (Operatorzy kopii zapasowych)
S-1-5-32-552
Replicators (Windows NT)
S-1-6
Seite Server Authority
S-1-7
Internet Site Authority
S-1-8
Exchange Authority
S-1-9
Resource Manager Authority
Tabela 3: Dobrze znane identyfikatory zabezpieczeń
GUID
Globally Unique Identyfiers (Globalnie unikalny identyfikator) jest to 128 bitowa 16 bajtowa wartość, generowana
w sposób rozpoznawany przez wszystkie komputery w sieci z unikalnego identyfikatora urządzenia, aktualnej daty i
czasu oraz kolejnego numeru. GUID identyfikuje określone urządzenie, obiekt lub komponent systemowy.
Identyfikatory są zapisywane w notacji szesnastkowej 8-4-4-4-12 (cyfry 0-9, litery A-F). Przykład GUID
reprezentujący kosz, który widzimy na pulpicie:
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
7 of 9
2010-03-04 18:17
{645FF040-5081-101B-9F08-00AA002F954E}
GUID są unikalne w skali globalnej, co powoduje, że nadają się idealnie do identyfikowania takich obiektów jak
komputery, urządzenia oraz komponenty wchodzące w skład systemu.
Przy użyciu wpisu ClassGUID instalator definiuje klasę komponentu, który zostanie zainstalowany. Z każda klasą
instalacji urządzeń jest powiązany globalny unikalny identyfikator GUID. Identyfikator GUID klasy instalacji
urządzeń definiuje klucz rejestru HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class
\IdentyfikatorGUIDklasy, w którym dla każdego urządzenia standardowej klasy instalacji jest tworzony nowy
podklucz.
Identyfikator GUID można generować przy użyciu narzędzia Uuiddgen.exe. Bardziej szczegółowe informacje na
temat tego narzędzia zawarto w dodatkowych dokumentach Platform SDK (Software Development Kit) lub na
stronie http://msdn.mirosoft.com/library/default.asp?
Struktura rejestru
Prawie 99 % wpisów znajdujących się w rejestrze jest zapisanych w postaci szesnastkowej (heksadecymalnej).
Podstawowa znajomość konwersji liczb z postaci szesnastkowej na dziesiętną lub binarną, a także ich kombinacji,
jest bardzo pomocna przy edycji rejestru.
Konwertując liczby pomiędzy rożnymi systemami, zawsze warto skorzystać z gotowych narzędzi. Jednym z takich
narzędzi jest Windos’owy kalkulator, który po przełączeniu na widok naukowy, daje możliwość konwersji liczb na
różne systemy notacji.
Struktura rejestru jest analogiczna do struktury plików systemowych. Klucze w rejestrze ułożone są w hierarchii
drzewiastej, która wygląda jak lista plików. Główne składniki tego drzewa to:
Poddrzewa – dowolny węzeł w drzewie oraz wszystkie wybrane połączone węzły pochodne. W strukturze rejestru
poddrzewa są węzłami podstawowymi, które zawierają klucze, podklucze i wpisy wartości.
Klucze – klucz odpowiada folderowi widocznemu w oknie eksploratora Windows. Klucz może zawierać wpisy
podkluczy i wartości.
Podklucze – są to klucze wewnątrz kluczy. W strukturze Rejestru podklucze są elementami podrzędnymi w
stosunku do poddrzew i kluczy. Klucze i podklucze są podobne do nagłówków sekcji w plikach z rozszerzeniem .ini,
z tą różnicą, że podklucze mogą wykonywać funkcje.
Wpisy wartości – ciąg danych, który pojawia się w prawym oknie edytora rejestru i definiuje wartości
zaznaczonego klucza. Wpis wartości ma trzy części: nazwę, typ danych i wartość. To właśnie wpisy wartości mogą
być edytowane za pomocą edytora rejestru.
.............................
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
8 of 9
2010-03-04 18:17
Rys. 3: Struktura rejestru
W skład rejestru wchodzi 5 kluczy głównych, które są tzw. kluczami predefiniowanymi zawierającymi podklucze.
Ma to swoją analogię do systemu plików, gdzie znajdują się katalogi główne (np. Windows), w skład, których
wchodzą podkatalogi i pliki. W Tabeli 4 zostały przedstawione najważniejsze główne klucze rejestru.
Nazwa
Nazwa skrócona
HKEY_CLASSES_ROOT
HKCR
HKEY_CURRENT_USER
HKCU
HKEY_LOCAL_MACHINE
HKLM
HKEY_USERS
HKU
HKEY_CURRENT_CONFIG
HKCC
Tabela 4: Główne klucze rejestru
Klucze
Klucze (keys) możemy porównać z folderami na dysku. Edytor rejestru używa nawet tych samych ikon do
oznaczania kluczy, które w Windows Exploratorze określają foldery. Nazwa klucza jest ograniczona do 260 (ANSI)
lub 16386 (Unicode) znaków. Dozwolone jest używanie wszystkich znaków ASCII z wyjątkiem backslash (\),
gwiazdki (*) oraz znaku zapytania (?). Dodatkowo Windows rezerwuje wszystkie nazwy zaczynające się od kropki
dla swojego użytku. Klucze mogą występować również jako klucze łączone (linked keys). Jednym z przykładów
kluczy łączonych jest HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\. Każdy z profili sprzętowych
(Hardware Profiles) zawiera podklucze xxxx, zaczynające się od 0000, a wszystkie podklucze xxxx, są połączone z
podkluczem Current i głównym kluczem HKCC.
Rjestr
http://fuhperfekt.republika.pl/rejestr1/rejestr1.html
9 of 9
2010-03-04 18:17