Rejestr - struktura, informacje ogólne
Z pewnością niejednokrotnie spotkałeś się z pojęciem rejestru, jego edycji oraz z zaleceniami by bez potrzeby w niego nie ingerować. Czym on tak naprawdę jest?! Otóż jest to swego rodzaju baza danych, której zadaniem jest przechowywanie informacji odnośnie konfiguracji systemu, zainstalowanych aplikacji i sprzętu, znajdujących się w komputerze użytkownika. Element ten został ukryty przez twórców Windows XP, po to by osoba korzystająca z systemu nieświadomie nie uszkodziła środowiska operacyjnego - nieumiejętnie edytując rejestr i zmieniając wartości przypadkowych kluczy.
Instalując nowe oprogramowanie, sprzęt, lub nawet dokonując zmian w konfiguracji systemu, zapisuje on to automatycznie w poszczególnych kluczach rejestru, dzięki czemu ingerencja użytkownika nie jest wymagana, a co za tym idzie możliwość uszkodzenia go przez osoby nie mające pojęcia o edycji rejestru maleje wręcz do zera. Bywa również tak, że czasami praca bezpośrednio z rejestrem jest rozwiązaniem, może nie najprostszym, ale zdecydowanie najszybszym - dlatego też Windows XP oferuje bardzo przydatne narzędzie do jego modyfikacji. Mowa tutaj o Edytorze rejestru.
Struktura rejestru
Przed rozpoczęciem edycji rejestru, dobrze jest zaznajomić się z strukturą tejże specyficznej bazy danych. Otóż modyfikowanie poszczególnych wpisów (kluczy) umożliwia wspomniany już Edytor rejestru.
Uruchomić go możemy, klikając Start, Uruchom... i wpisując w polu tekstowym modułu, który się pojawi polecenie regedit, następnie klikając przycisk Ok, lub zatwierdzając wprowadzone polecenie klawiszem Enter. Po wykonaniu tejże operacji naszym oczom ukaże się okno Edytora rejestru.
Jak zapewne łatwo zauważyć, rejestr składa się z pięciu kluczy głównych, zwanych także kluczami predefiniowanymi:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
Klucze główne zawierają swoje podklucze, definiowane także pojęciem kluczy, te natomiast posiadać mogą kolejne podklucze powodując dowolnie długie zagłębienie. Posiadają one zawsze przynajmniej jedną wartość, którą określa się jako wartość domyślna, lecz jednak nie jest to regułą, bo zdarza się, iż klucze posiadają także różnego typu inne wartości dodatkowe. W prawej części Edytora rejestru, użytkownik może uzyskać informacji na temat nazwy, typu danych i ich powiązań z wartościami.
Pojęciem gałęzi określać będziemy klucz główny wraz z jego wszystkimi podkluczami. Co ciekawe, cały rejestr przechowywany jest w komputerze w kilku oddzielnych plikach gałęzi. Podczas uruchamiania systemu ładowane są pewne gałęzie, a następnie łączone w jedną spójną część, zwaną rejestrem. Chcąc sprawdzić, gdzie fizycznie znajdują się pliki gałęzi, otwieramy klucz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist.
Na uwagę zasługuje fakt, iż gałąź \REGISTRY\MACHINE\HARDWARE nie posiada powiązanego fizycznie pliku w komputerze, co oznacza, że jest ona odpowiedzialna za zapisywanie konfiguracji sprzętu, wraz z każdym uruchomieniem systemu tworzona jest od nowa.
Przeglądając poszczególne klucze rejestru niejednokrotnie natknąć się można na tzw. pliki ukryte powiązane z każdym z plików gałęzi. Charakteryzują je rozszerzenia .alt oraz .log, pierwsze z nich to pliki transakcyjne, przechowujące zmiany dokonane pomiędzy poszczególnymi plikami gałęzi. Rozszerzenie .alt natomiast oznacza kopie gałęzi, które wykorzystywane są przez system w momencie wykrycia uszkodzenia któregoś z nich.
Rejestr systemu Windows XP wykorzystuje następujące typy danych:
REG_SZ - jest jednym z najczęściej wykorzystywanych typów danych w rejestrze Windows XP. Końcowe oznaczenie 'SZ' wskazuje ciąg o zmiennej długości zakończony zerami, czyli w momencie modyfikacji tej wartości, edytor automatycznie zakończy wartość bajtem 00. Typ ten używany jest zarówno dla danych numerycznych jak i tekstowych. Domyślne wartości większości kluczy są właśnie tego typu.
REG_MULTI_SZ - typ zawierający grypy ciągów zakończonymi zerami przypisanych do pojedynczych wartości.
REG_EXPAND_SZ - typ, będący ciągiem zakończonym zerami i zawierającym zmienną środowiskową, np. %SystemRoot%.
REG_BINARY - typ zawierający ciąg zer i jedynek.
REG_DWORD - typ danych double word, będący 32-bitową wartością numeryczną.
REG_LINK - typ będącym odnośnikiem do innej części rejestru.
REG_NONE - rzadko używany typ, stosowany w sytuacji gdy istotna jest obecność lub nieobecność wartości, ale dane wartości już nie.
REG_FULL_RESOURCE_DESCRIPTOR, REG_RESOURCE_LIST, REG_RESOURCE_REQUIREMENTS - typy danych zawierające informacje o zasobach potrzebnych i użytych przez składniki systemu.
Tworzenie i przywracanie kopii zapasowej
Należy pamiętać, że wprowadzane modyfikacje są natychmiast wprowadzane do rejestru, oraz że Edytor rejestru nie posiada funkcji pozwalającej na cofnięcie dokonanych zmian.
Jednym z sposobów na ratunek dla systemu, w momencie gdy nasze modyfikacje okażą się niepoprawne jest stworzenie tzw. kopii zapasowej, którą w razie awarii można bez problemu przywrócić. Aby zachować cały rejestr klikamy w Edytorze rejestru Plik, Eksportuj..., a następnie podajemy nazwę oraz lokalizację, gdzie zapisana ma zostać kopia zapasowa. Do wyboru mamy jeden z kilku formatów zapisania kopii, najlepszym rozwiązaniem jest tutaj wybór formatu Pliki rejestru, dzięki czemu zapisany zostaje binarny obraz całości, lub tylko wybranej części. Chcąc wyeksportować pliki rejestru klikamy na klucz prawym przyciskiem myszy w lewej części okna Edytora rejestru i wybieramy w menu kontekstowym Eksportuj, bądź z menu edytora zaznaczamy Plik, a następnie Eksportuj. W momencie, gdy będziemy musieli zaimportować kopię rejestru, w menu w lewej części zaznaczamy ten sam klucz co przy eksporcie i kolejno wybieramy Plik, Importuj..., oraz określamy plik, z którego to klucz zostanie przywrócony. Edytor ostrzeże o próbie nadpisania wybranego klucza i oczekiwał będzie akceptacji wykonania tej operacji.
Innym rozwiązaniem zabezpieczającym użytkownika przed awarią wynikającą z ingerencji w rejestr systemowy jest narzędzie Przywracania systemu, które tworzy co jakiś czas obraz stanu systemu i pozwala na powrót do niego w momencie wystąpienia problemów. Przed rozpoczęciem modyfikacji rejestru, zaleca się stworzenie punktu przywracania systemu, który to umożliwi.
System Windows XP oferuje także użytkownikowi narzędzie Kopia zapasowa, które daje możliwość utworzenia kopii zapasowej stanu systemu. W momencie tworzenia jej, powstaje także duplikat rejestru, który zostaje zapisany na nośniku kopii zapasowych oraz w folderze systemowym %SystemRoot%\Repair. Możliwe jest także korzystanie z innego, kompatybilnego oprogramowania innych producentów. Pozwala to na odbudowanie plików rejestru, w chwili gdy zostaną uszkodzone.
Przeglądanie i edytowanie rejestru
Jak już wspomniane zostało do zarządzania rejestrem w Winodws XP służy Edytor rejestru, daje on możliwość wyszukiwania zarówno poszczególnych kluczy, wartości jak i danych. W celu uruchomienia narzędzia wyszukiwania klikamy Edycja i Znajdź... lub wciskamy kombinację [Ctrl+F] na klawiaturze, a następnie wpisując w polu tekstowym ciąg znaków, w poszukiwaniu którego ma zostać sprawdzony cały rejestr. Z racji tego, iż jest on elementem bardzo rozbudowanym, może to potrwać dłuższą chwile.
Jeśli wykonujemy operacje na danym elemencie, w celu ułatwienia kolejnych jego modyfikacji, możemy umieścić go na liście Ulubionych. Aby tego dokonać wybieramy Ulubione i kolejno Dodaj do ulubionych, poproszeni zostaniemy podanie nazwy dla dodawanego elementu. Jeśli jednak operacje wykonywane są na tym samym kluczu dodawanie go do listy Ulubionych jest tak naprawdę zbędne, gdyż Edytor rejestru automatycznie zapisuje pozycję podczas zamykania sesji pracy z rejestrem i powraca do niej przy kolejnym uruchomieniu.
Modyfikacja danych
Chcąc edytować dane powiązane z jakąś wartością, klikamy dwukrotnie na daną wartość w prawej części okna Edytora rejestru. Efektem tego działania będzie wyświetlenie okna edycji, adekwatnego do typu edytowanych danych, składające się z pól tekstowych: Nazwa wartości oraz Dane wartości.
Dodawanie/usuwanie kluczy
Dodając nowy klucz należy otworzyć podklucz, gdzie chcielibyśmy stworzyć nowy wpis i w lewej części okna edytora zaznaczamy klucz nadrzędny i z menu wybieramy Edycja, Nowy i Klucz. Stworzony przed chwilą element wyświetlony zostanie w Edytorze rejestru jako podświetlony wpis z domyślną nazwą, którą możemy dowolnie edytować. Natomiast by usnąć klucz, zaznaczamy go i klikając Edycja, a następnie Usuń, bądź wciskając klawisz [Delete] na klawiaturze.
Dodawanie/usuwanie wartości
Aby dodać nową wartość wybieramy z menu Edycja, Nowy i określamy typ danych, które chcielibyśmy dodać. Ukaże się ona w prawej części okna Edytora rejestru z ogólną nazwą, którą podobnie jak w przypadku kluczy możemy dowolnie zmieniać. Chcąc wprowadzić dane stworzonej wartości, klikamy na nią dwukrotnie i uzupełniamy pole tekstowe Dane wartości. Proces usuwania wartości ogranicza się do zaznaczenia odpowiedniego pola i kliknięciu na niego prawym przyciskiem myszy, wybraniu z menu kontekstowego opcji Usuń, bądź wciśnięciu klawisza Delete.
Automatyzowanie zmian
Wyeksportowane pliki rejestru .reg z łatwością można otworzyć i modyfikować za pomocą dowolnego edytora nieformatowanego tekstu. Tak więc nic nie stoi na przeszkodzie, żebyśmy używali Notatnika zamiast Edytora rejestru, w którym otwieramy wyeksportowany rejestr, dokonujemy zmian i je zapisujemy, a następnie importujemy plik .reg z powrotem do rejestru. Istnieje także możliwość dodawania do rejestru nowych kluczy, wartości i danych, w tym celu tworzymy nowy plik .reg zawierający nowe wpisy, który importujemy go do rejestru. Ten, alternatywny sposób zarządzania okazuję się bardzo przydatny w momencie, gdy musimy dokonać na kilku komputerach tych samych zmian.
W momencie otworzenia kopii rejestru w postaci pliku .reg za pomocą Notatnika, będziemy mogli zobaczyć następujące informacje:
Linia nagłówka - przy próbie włączenia pliku .reg do rejestru, za pomocą tej linii sprawdzany zostaje plik, czy zawiera on dane rejestru. Dla Windows XP linia ta wygląda następująco: Windows Registry Editor Version 5.00. Wersja 5 tworzy pliki tekstowe Unicode.
Nazwa kluczy - zawiera pełną, w żaden sposób nie skróconą nazwę kluczy, ograniczoną przez nawiasy kwadratowe. Wpis ten przechowuje dokładną ścieżkę od klucza głównego do podrzędnego podklucza.
Wartość domyślna - określone wartości domyślne w pliku .reg oznaczane są znakiem @. W pliku wyeksportowanego rejestru, klucz o wartości domyślnej REG_SZ, zdefiniowany jako MyApp oznaczony zostanie:
"@"="MyApp"
Nazwa wartości - wpisy ujęte w cudzysłów, po których występuje znak równości. W pliku .reg wartości posortowane są w kolejności w jakiej ukazują się one w rejestrze.
Typy danych - informacje występujące bezpośrednio po znaku równości. Identyfikator oddzielony jest od danych za pomocą dwukropka, dla przykładu wartość REG_DWORD równa 00000000, zapisana zostanie następująco:
"Keyname"=dword:00000000
Wartości REG_SZ - zwykłe wartości ciągowe zapisane w cudzysłowie. Co ciekawe ukośnik zapisany jest tutaj podwójnie. Przykładowo ścieżka D:\Lotus\123\Addins\ zapisana zostanie w taki sposób:
"D:\\lotus\\123\\addins\\"
Wartości REG_DWORD - wartość zapisana w postaci liczb szesnastkowych, beż żadnych spacji, przecinków czy prefiksu '0x'.
Wszystkie inne typy danych - pojawiają się jako oddzielone przecinkami listy szesnastkowych bajtów, włączamy tutaj takie typy danych jak: REG_EXPAND_SZ i REG_MULTI_SZ.
Znaki kontynuowania lini - w celu kontynuacji danych z jednego wiersza do drugiego itp. stosuje się ukośnik '\', dzięki czemu wartość zapisana w kilku linijkach jest tak naprawdę jednym ciągiem danych.
Linie odstępu - w celach np. estetycznych możliwe jest stosowanie pustych linii (wierszy), Edytor rejestru przy imporcie pliku .reg, po prostu je pomija.
Komentarze - chcąc dodać komentarz w pliku .reg, zaczynamy wpisywanie od znaku średnika.
Uprawnienia kluczy rejestru
W systemie Windows XP domyślnie pełne prawa do wszystkich kluczy rejestru ma Administrator. Zwykły użytkownik ma dostęp i pełną kontrolę nad kluczami, które sam stworzył, cała reszta rejestru dostępna jest tylko do odczytu. Chcąc zmienić uprawnienia w ten sposób, by móc oprócz możliwości odczytu mieć także możliwość edytowania i usuwania poszczególnych kluczy, uruchamiamy Edytor rejestru, będąc aktualnie zalogowanym jako Administrator. Klikamy prawym przyciskiem myszy na interesującym nas kluczu, a następnie z menu kontekstowego wybieramy opcję Uprawnienia..., naszym oczom ukaże się okno dialogowe, gdzie możemy dowolnie zarządzać dostępem do poszczególnych kluczy.