Rozdział 18
Koncepcja Rejestru
Jeżeli zamierzamy poważnie zająć się administrowaniem serwerem
NT, musimy zapoznać się z Rejestrem - tj. przyjrzeć się bliżej jego
pracy i możliwościom modyfikacji.
W rozdziale niniejszym omówimy Rejestr systemu NT, wraz
z odczytywaniem i modyfikacją danych w nim zapisanych, a także
programy w rodzaju: Registry Editor (Edytor Rejestru) i Windows
NT Diagnostics (Diagnostyka systemu Windows NT).
Uwaga: Baza danych Rejestru systemu NT obejmuje tysiące pozycji.
Najlepszy opis każdego z ustawień zawiera pierwsza książka
w pakiecie Windows NT Resource Kit, pt. Windows NT Resource
Guide.
Baza danych Rejestru systemu Windows NT
Windows NT przechowuje całą informację o swojej konfiguracji
w hierarchicznej bazie danych, zwanej Rejestrem (Registry). Rejestr
zawiera informacje o użytkownikach, aplikacjach, sprzęcie oraz
systemie operacyjnym i pełni funkcje analogiczne do plików typu
.INI, z systemów Windows 3.x. W odniesieniu do nich zapewnia
również bardziej elastyczną ochronę konfiguracji i obsługę wielu
użytkowników.
Efektem niepoprawnych modyfikacji Rejestru będzie niestabilność
systemu operacyjnego lub - w gorszym przypadku - jego całkowita
niezdolność do załadowania się (boot). Chociaż Microsoft publikuje
wiele informacji związanych z obsługą Rejestru, jego modyfikacje
powinny być przeprowadzane tylko przez osoby z odpowiednią
wiedzą i doświadczeniem.
696 Rozdział 18
Ostrzeżenie: Aby wprowadzać zmiany do Rejestru za pomocą
Edytora Rejestru musimy się nim (Edytorem) poprawnie
obsługiwać. Nawet jeśli w pełni rozumie się istotę wprowadzanych
zmian, istnieje możliwość popełnienia błędu wynikającego z faktu,
iż edytor nie kontroluje składni ani poprawności. Dlatego zawsze
powinniśmy mieć mieć na podorędziu aktualny, awaryjny dysk
naprawczy - ERD (Emergency Repair Disk) oraz znać metody
odtworzenia poprzedniej zawartości Rejestru.
Należy też stwierdzić, że odzyskanie prawidłowej zawartości
Rejestru jest znacznie łatwiejsze, niż naprawienie skutków błędnie
wprowadzonych zmian do plików .INI systemów Windows 3.x.
Ponadto, wg wielu opinii, nigdy nie należy wprowadzać zmian
bezpośrednio do Rejestru, gdyż większość z nich można dokonać
innymi, bezpieczniejszymi metodami. Jednak administrator
systemu i sieci musi wiedzieć, jak takie modyfikacje przeprowadzać,
gdyż wiązać się to będzie często z zapewnieniem normalnej jego
pracy.
Uwaga: Wiele osób byłoby zaskoczonych stwierdzeniem, że
w Windows 3.x również znajduje się Rejestr. Jednak odgrywa on
tam znacznie mniejszą rolę, niż to ma miejsce w Windows NT.
Rejestr w Windows 3.x zawiera jedynie informacje o klasach OLE
oraz skojarzenia między rozszerzeniami plików a programami
użytkowymi.
Rola Rejestru w strukturze systemu
Na etapie założeń projektowych Windows NT uwzględniono
potrzebę skuteczniejszego - w stosunku do Windows 3.x -
zarządzania konfiguracją. W rezultacie udostępnione zostały takie
funkcje, których nie mogłyby zapewnić pliki typu .INI:
Jeden zasób danych o konfiguracji. Jeżeli musieliśmy kiedyś
zarządzać systemem Windows 3.x z zainstalowanymi wieloma
pakietami oprogramowania, z pewnością znane są nam
problemy z wyszukiwaniem (skutecznie ukrytych) plików
konfiguracyjnych dla różnych części systemu operacyjnego
i pakietów. Zależnie od aplikacji, informacja mogła się
Koncepcja Rejestru 697
znajdować w SYSTEM.INI, WIN.INI lub we własnym pliku
.INI aplikacji, przechowywanych w katalogach
C:\WINDOWS, C:\WINDOWS\SYSTEM lub nawet we
własnym katalogu aplikacji. Co więcej, dane o konfiguracji dla
danej aplikacji mogły znajdować się nie w jednym, a w kilku
miejscach. Rejestr w NT jest bazą danych rozwiązującą
radykalnie ten problem - aplikacje rejestrują tutaj ustawienia
konfiguracyjne w jednym miejscu.
Obsługa wielu użytkowników w jednym komputerze.
Dysponując tylko plikami .INI trudno jest zapewnić
użytkownikom zindywidualizowane zestawy opcji pracy.
W przypadku danych o konfiguracji, zapisywanych w plikach
typu .INI, wszyscy użytkownicy jednego komputera
zmuszeni byli dane te współdzielić, co miało oczywiście swoje złe
strony. Przyjęta w Windows NT koncepcja ochrony wymaga, by
każdy użytkownik miał przypisany własny (poufny) zestaw
parametrów. Windows NT umożliwia mu to - zarówno dla
funkcji systemu operacyjnego, jak i dla aplikacji.
Precyzyjna ochrona ustawień konfiguracyjnych.
W Windows 3.x wiele różnych parametrów konfiguracyjnych
ustawianych było w jednym pliku .INI. Aby zapewnić im
ochronę lub przynajmniej pewien stopień zarządzania
konfiguracją, należy wybrać jedną z dwóch metod: albo poddać
ochronie cały plik .INI (uniemożliwiając użytkownikom
wprowadzanie w nim zmian) lub nie poddawać go ochronie,
dopuszczając dowolne zmiany. Nie ma poza tym żadnego
stopniowania. Natomiast w przypadku Rejestru każdą pozycję
jego bazy danych można poddać ochronie, stosując tzw.
kontrolną listę dostępu - ACL (Access Control List). Zawiera
ona dokładne prawa dostępu do konkretnych wartości Rejestru,
przyznane dowolnemu użytkownikowi lub grupom. Umożliwia
np. administratorowi przyznawanie gościom dostępu z prawem
tylko do odczytu (read-only), a wyższy poziom dostępu -
użytkownikom z domeny.
Wielopoziomowa hierarchia. Jedno z ograniczeń plików
typu .INI wynika z faktu, iż umożliwiają one jedynie
hierarchię dwupoziomową. W ramach konkretnego pliku .INI
można podać tylko nazwę sekcji (section name) oraz - wewnątrz
698 Rozdział 18
niej - wskazać pozycje (entries). Nie ma żadnej możliwości
zagnieżdżania sekcji. Np. w pliku SYSTEM.INI znajduje się
sekcja [boot], zawierająca kilka pozycji (shell,
network.drv, sterowniki itd). System nie pozwalał nam
utworzyć nowej, podporządkowanej sekcji [boot], a jest to
niestety bardzo duże ograniczenie (zwłaszcza biorąc pod uwagę
rosnącą złożoność oprogramowania). Natomiast w Rejestrze
w Windows NT możemy tworzyć sekcje głęboko zagnieżdżone
i - tym samym - wprowadzać większą systematykę w organizacji
danych o konfiguracji.
Wprowadzenie wielu typów danych. Wszystkie pozycje
w plikach typu .INI można wpisywać tylko jako tekst
złożony ze standardowych znaków ASCII, istotnie ograniczając
ewentualne typy danych w plikach .INI i, w konsekwencji, ich
użyteczność. W przeciwieństwie do Windows 3.x, Rejestr NT
zezwala na używanie wielu typów danych - także binarnych.
Ponadto informacje można przechowywać tutaj w 16-bitowym
formacie Unicode, (zamiast w 8-bitowym ASCII).
Uwaga: Windows NT obsługuje również pliki typu .INI, zwłaszcza
dla programów nie korzystających z Rejestru. W szczególności
obsługa ta dotyczy 16-bitowych aplikacji Windows, gdyż do użycia
Rejestru niezbędny jest interfejs API Win32. Ponieważ Rejestr jest
też wykorzystywany przez Windows 95, Microsoft narzucił wszystkim
programistom - warunkując uzyskanie logo Windows 95 - obsługę
Rejestru (jako miejsca przechowywania informacji w tworzonych
przez nich aplikacjach).
Struktura Rejestru
Baza danych Rejestru ma format hierarchiczny, z pięcioma
głównymi poziomami. Zanim przejdziemy do dalszych rozważań,
wyjaśnimy najważniejsze pojęcia:
Pozycja główna (Root key). Baza danych Rejestru obejmuje
pięć głównych pozycji. Zawierają one informacje związane albo
z konkretnym użytkownikiem, albo z komputerem. Pozycję
główną można porównać z napędami dyskowymi lokalnego
komputera (tzn. c:, d:, e:, f:).
Koncepcja Rejestru 699
Pozycja podrzędna (Subkey). Każda pozycja główna zawiera
jedną lub więcej pozycji podrzędnych. Jeśli potraktować pozycję
główną jak dysk, wtedy pozycja podrzędna byłaby folderem albo
katalogiem. Każda pozycja podrzędna może mieć jedną lub
więcej podporządkowanych jej pozycji podrzędnych -
analogicznie do zagnieżdżonej struktury podkatalogów na dysku
twardym.
Wartość pozycji (Value Entry). Kontynuując analogię
z dyskiem, wartość pozycji można traktować jako plik. Pozycje
główne i podrzędne strukturalizują przechowywane informacje,
a wartości pozycji zawierają konkretne dane. Wartość pozycji
składa się trzech elementów: nazwy, typu danej i wartości
(zostaną one omówione w dalszej części tekstu).
Segregator. Zawiera każdy konkretny zestaw pozycji (razem
z pozycjami podrzędnymi i wartościami pozycji) zawarty
w Rejestrze. Segregator jest przechowywany w jednym pliku,
w katalogu: %SystemRoot%\system32\config, razem
ze związanym z nim plikiem .LOG.
Uwaga: Terminy segregator Rejestru i pozycja główna Rejestru są
często mylone. Tymczasem różnica jest tutaj wyrazna: pozycje
główne są najwyższego poziomu i składają się z jednego lub kilku
segregatorów.
Pozycje główne w Rejestrze
Jak już wspomniano, Rejestr składa się z pięciu pozycji głównych,
z których każda reprezentuje poddrzewo Rejestru jako takiego.
Każda pozycja główna zawiera pozycje podrzędne i wartości, które
zawierają wszystkie dane o konfiguracji dla systemu NT i jego
użytkowników. Tabela 18.1 zawiera opis pięciu pozycji głównych.
Tabela 18.1. Pozycje główne Rejestru
Pozycja główna Opis
HKEY_LOCAL_MACHINE
Pozycja główna zawierająca najciekawsze
informacje - tzn. dane o sprzęcie (np.
typie procesora, architekturze magistral,
700 Rozdział 18
Pozycja główna Opis
karcie grafiki i sprzętowej obsłudze
wejścia/ wyjścia) oraz dotyczące systemu
operacyjnego (np. dane o sterownikach
urządzeń, usługach, ochronie
i zainstalowanym oprogramowaniu).
HKEY_CLASSES_ROOT
Pozycja zbliżona funkcjonalnie do ograni-
czonego rejestru, dostępnego w Windows
3.x. Zawiera ona informacje
o skojarzeniach plików (tzn. skojarzenia
danego rozszerzenia nazwy z aplikacją),
a także działa jako zbiór klas OLE.
Stanowi ona wskaznik do danych
przechowywanych w pozycji podrzędnej
HKEY_LOCAL_MACHINE\SOFTWARE\
Classes.
HKEY_CURRENT_USER
Pozycja zawierająca informacje związane
z profilem użytkownika aktualnie
zalogowanego do konsoli. Zawiera ona
wybrane przez użytkownika opcje
dotyczące systemu operacyjnego oraz
zainstalowanych na tym komputerze
aplikacji. Jest wskaznikiem do pozycji
podrzędnych, przechowywanych dla
HKEY_USERS.
HKEY_USERS
Pozycja zawierająca wskaznik do
segregatora dla użytkownika aktualnie
zalogowanego do komputera z konsoli
oraz wskaznik do segregatora - dla
użytkownika domyślnego. W żadnym
z obu przypadków HKEY_USERS nie
zawiera profili dla tych użytkowników,
którzy logują się zdalnie.
HKEY_CURRENT_CONFI
Nowa pozycja główna, dodana w Windows
G
NT 4. Zawiera aktualne dane
o konfiguracji sprzętu, zgodnie z bieżącym
profilem sprzętu. Faktycznie wskazuje
Koncepcja Rejestru 701
Pozycja główna Opis
ona na te same dane, co pozycja
podrzędna: HKEY_
LOCAL_MACHINE\SYSTEM\Curren
t
ControlSet\Hardware\Profile
s\Current.
Uwaga: Zakres funkcjonalności w Windows NT 4 zmienił się dla
HKEY_USERS. W poprzednich wersjach pozycja ta zawierała
profile dla wszystkich użytkowników, którzy zalogowali się do
komputera z konsoli. Zmiany funkcjonalności tego segregatora są
skutkiem modyfikacji wprowadzonych dla profili użytkowników
w Windows NT, i obecnie jego głównym celem jest zapewnienie
zgodności z tymi programami, które muszą z nim pracować.
Lokalizowanie pozycji w Rejestrze
Kiedy musimy wprowadzić do Rejestru zmianę, musimy znać
ścieżkę do wartości pozycji (tak jak ścieżkę dostępu do zasobu
dyskowego). Ścieżka Rejestru, służąca do lokalizacji zasobu, zawiera
następujące informacje:
nazwę pozycji głównej (root key)
nazwę kolejnych pozycji podrzędnych
nazwę wartości pozycji
Aby np. zlokalizować wartość dla aktualnej maksymalnej wielkości
Rejestru musimy dysponować następującymi informacjami:
nazwą pozycji głównej: HKEY_LOCAL_MACHINE
nazwami wszystkich pozycji podrzędnych:
SYSTEM
CurrentControlSet
Control
nazwą wartości pozycji: RegistrySizeLimit
Ścieżki Rejestru powinniśmy zapisywać następująco:
702 Rozdział 18
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Control\RegistrySizeLimit.
Uwaga: Powyższa wartość pozycji może nie istnieć w systemie. Jeśli
nie istnieje, domyślną maksymalną wielkością Rejestru jest 12 MB.
Pozycja ta może występować w komputerach pracujących pod
nadzorem Windows NT 4, w których system operacyjny został
zmodernizowany (upgraded) ze starszych wersji systemu Windows
NT Server. Może też pojawiać się, gdy zmianę maksymalnej
wielkości Rejestru wprowadzono w Systemowym Panelu Sterowania
(System Control Panel).
Znając powyższą ścieżkę możemy odnalezć wartość pozycji. Dla
każdej wartości pozycji (value entry) określony jest typ danej (data
type) i wartość (value). Jeżeli wartość pozycji już istnieje - aby
sprawdzić jej typ danej możemy skorzystać z Edytora Rejestru
(Registry Editor). Jeśli jednak chcemy utworzyć nową wartość
pozycji, powinniśmy znać ( z góry ) prawidłowy typ danej. Na
przykład typem danej dla RegistrySizeLimit jest
REG_DWORD, a dopuszczalnym zakresem wartości - przedział od
4MB do 102 MB.
Uwaga: Oto bardzo dobry przykład na to, kiedy nie należy
wprowadzać zmian za pomocą Edytora Rejestru. Granicę wielkości
rejestru (czyli Registry Size Limit) można ustawić w Systemowym
Panelu Sterowania (System Control Panel). W Edytorze Rejestru
można wpisać informację błędną, ponieważ nie przeprowadza on
żadnej weryfikacji nowych wartości. Na szczęście podanie tutaj
wartości zbyt dużej nie spowoduje poważnych problemów, zbyt
mała zostanie zignorowana a system automatycznie przyjmie
minimalną (dopuszczalną - 4 MB). Pamiętajmy jednak, że
w przypadku wielu innych wartości pozycji podanie informacji
nieprawidłowej może być przyczyną awarii systemu operacyjnego.
Wartość pozycji ustawia się często według następującego formatu:
name:data type:value
(nazwa:dana typ:wartość)
Koncepcja Rejestru 703
Na przykład jeśli - do zmiany maksymalnej wielkości Rejestru na
20 MB - korzystamy z apletu System Control Panel (Systemowy
Panel Sterowania), pełna informacja dla wartości pozycji
RegistrySize Limit miałaby postać:
RegistrySizeLimit:REG_DWORD:0x1400000
Uwaga: Edytor Rejestru przy wyświetlaniu liczb stosuje domyślnie
notację szesnastkową, o czym informuje przedrostek 0x w liczbie
0x1400000, równej w notacji dziesiętnej 20 971 520 (czyli 20
megabajtom). Pamiętajmy, że 1 megabajt wynosi 1024 razy 1024.
Edytor Rejestru może wyświetlać liczby w notacji dziesiętnej,
szesnastkowej lub dwójkowej.
Windows NT rozpoznaje pięć typów danych dla wartości pozycji
Rejestru.
Tabela 18.2. Typy danych dla wartości pozycji Rejestru
Nazwa Typu Opis
Danej
REG_BINARY
Dwójkowy. Tego typu wartość pozycji zawiera
informację w postaci zrozumiałej dla
komputera. Nigdy nie należy zmieniać
ręcznie tego typu informacji. Wiele wartości
pozycji typu REG_BINARY wiąże się
z systemową konfiguracją sprzętu i występuje
w pozycji podrzędnej:
HKEY_LOCAL_MACHINE\HARDWARE
np.
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\
System\ComponentInformation:
ComponentInformation:REG_BINARY:
00 00 00 00...
REG_DWORD
Podwójne słowo. Reprezentuje liczby długości
do 4 bajtów (tradycyjnie jedno słowo ma
długość dwóch bajtów). Domyślnie dane tego
typu wyświetla się w notacji szesnastkowej,
chociaż można ją zmienić na dwójkową lub
dziesiętną.
HKEY_LOCAL_MACHINE\SYSTEM\Current
704 Rozdział 18
Nazwa Typu Opis
Danej
ControlSet\Control\RegistrySizeLimit
używa typu danych REG_DWORD:
RegistrySizeLimit:REG_DWORD:
0x1400000
REG_SZ
Czytelny tekst. Wartości pozycji tego typu
zawierają tekst w czytelnej postaci; wiążą się
często z opisem lub identyfikacją.
HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\WindowsNT\CurrentVersion\
RegisteredOwner
jest przykładem wartości pozycji, dla której
użyto typu REG_SZ:
RegisteredOwner:REG_SZ:Jan Kowalski
REG_EXPAND_SZ
Rozszerzalny łańcuch danych. Typ
podobny do poprzedniego, z tym wyjątkiem, że
zawiera zmienną systemową, np:
HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\WindowsNT\CurrentVersion\
DevicePath
jest typu REG_EXPAND_SZ, a zdefiniowano ją
jako:
DevicePath:REG_EXPAND_SZ:%SystemRoot
%\Media
Kiedy pozycji tej użyje jakiś program, nie
otrzyma łańcucha:
%SystemRoot%\Media, ale
C:\WINNT\Media (jeżeli Windows NT
zainstalowano w katalogu C:\WINNT).
REG_MULTI_S
Typ wielołańcuchowy. Tego typu wartość
Z
pozycji zawiera listę wartości, oddzielonych
znakami pustymi (NULL). Na przykład:
HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services\EventLog\
Application\Sources
jest typu:
REFG_MULTI_SZ:Sources:REG_MULTI_SZ:
WinsCtrs Winlogon Userenv ....
Koncepcja Rejestru 705
Uwaga: Jest jeszcze szósty typ danych, używany w Rejestrze,
a mianowicie REG_FULL_RESOURCE_DESCRIPTOR. Nie
podano go w tabeli 18.2, ponieważ wartości tego typu nie można
tworzyć ani poddawać edycji. Większość z nich występuje w pozycji
podrzędnej HKEY_LOCAL_MACHINE\HARDWARE. Na przykład:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\Syst
em\Configuration Data,
którą przedstawia rysunek 18.1 (widok Edytora Rejestru), jest typu
REG_FULL_RESOURCE_DESCRIPTOR.
Rys. 18.1. Nie
można zmieniać
istniejących
wartości typu
REG_FULL_
RESOURCE_
DESCRIPTOR, ani
tworzyć nowych.
Uwaga: Maksymalny rozmiar dowolnej wartości pozycji Rejestru
wynosi 1MB.
Segregatory Rejestru
Segregator (hive) jest oddzielnym zestawem pozycji głównych,
podrzędnych i wartości pozycji Rejestru. Każdy segregator
przechowywany jest w oddzielnym pliku, w katalogu
%SystemRoot%\ system32\config - razem ze związanym
z nim (segregatorem) plikiem typu .LOG. Rysunek 18.2
przedstawia okno Explorera dla katalogu
%SystemRoot%\system32\config oraz segregatory
Rejestru i ich pliki protokołów (log files).
706 Rozdział 18
Segregatory Rejestru przedstawiono wraz z ich plikami w tabeli
18.3.
Uwaga: Istnieje wartość pozycji Rejestru (której nie powinno się
zmieniać), wykorzystywana do wskazywania lokalizacji wszystkich
segregatorów Rejestru, a mianowicie: HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\hivelist.
Rys. 18.2.
Każdemu
segregatorowi
Rejestru
odpowiada
pewien plik oraz
związany z nim
plik typu .LOG,
w katalogu
%SystemRoot%\s
ystem32\
config.
Koncepcja Rejestru 707
Tabela 18.3. Segregatory Rejestru i ich pliki
Segregator Rejestru Związane pliki
HKEY_LOCAL_MACHINE\SAM %SystemRoot%\System32\config\SAM
%SystemRoot%\System32\config\SAM.LOG
HKEY_LOCAL_MACHINE\SECURITY %SystemRoot%\System32\config\SECURITY
%SystemRoot%\System32\config\SECURITY.LOG
HKEY_LOCAL_MACHINE\SOFTWARE %SystemRoot%\System32\config\SOFTWARE
%SystemRoot%\System32\config\SOFTWARE.LOG
HKEY_LOCAL_MACHINE\SYSTEM %SystemRoot%\System32\config\SYSTEM
%SystemRoot%\System32\config\SYSTEM.LOG
HKEY_USERS\.DEFAULT %SystemRoot%\System32\config\DEFAULT
%SystemRoot%\System32\config\DEFAULT.LOG
HKEY_CURRENT_USER %SystemRoot%\Profiles\%UserName%\NTUSER.DAT
%SystemRoot%\Profiles\%UserName%\NTUSER.LOG
Uwaga: HKEY_LOCAL_MACHINE\HARDWARE jest pozycją
dynamiczną, generowaną za każdym razem, gdy Windows NT jest
ładowany przez program identyfikacji sprzętu (NTDETECT.COM)
i jądro systemu NT. Chociaż technicznie rzecz ujmując pozycja ta
jest jednym z segregatorów Rejestru, to jednak przechowuje się ją
jako strukturę wewnątrz pamięci operacyjnej systemu, a nie na
dysku. W przypadku awarii żadne cenne dane nie zostaną utracone,
ponieważ pozycja ta jest rekonstruowana za każdym ładowaniem
systemu operacyjnego.
Uwaga: Czasem bardzo trudno jest przypisać pozycje główne
segregatorom Rejestru. Pamiętajmy, że nie wszystkie mają
odpowiadające im segregatory. Wynika to z faktu, iż pozycje
główne: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER
i HKEY_CURRENT_ CONFIG wskazują w rzeczywistości na dane
zachowane w innych segregatorach.
Odporność na awarie w plikach protokołów Rejestru
Każdy segregator (hive) Rejestru posiada odpowiadający mu plik
protokołu (zgodnie z rysunkiem 18.2). Zadaniem plików
708 Rozdział 18
protokołów jest zapewnienie stabilności bazy danych Rejestru -
nawet w sytuacji awarii systemu podczas uaktualniania Rejestru.
Realizując upgrade Rejestru, system NT zapisuje początek procesu
uaktualniania w protokole odpowiedniego segregatora. Proces ten
następnie jest kontynuowany - tzn. zmiana jest zapisywana wraz
z informacją niezbędną do przywrócenia poprzedniego (tj. przed
modyfikacją) stanu. Informacja ta jest zapisywana w protokole dla
każdej, uaktualnianej pozycji Rejestru. Po uaktualnieniu wszystkich
pozycji, zmiana zostaje potwierdzona i zapisana w protokole.
W tym momencie (dopiero w tym) transakcja zostaje zakończona.
Jeśli zanik zasilania lub awaria systemu wystąpi przed zaznaczeniem
transakcji jako zakończonej, to po ponownym załadowaniu
systemu (lub usunięciu awarii), system operacyjny użyje informacji
z pliku protokołu segregatora do przywrócenia bazy stanu
stabilnego.
Uwaga: Wiele osób może opacznie zrozumieć sens powyższego
opisu. Kiedy przeprowadzamy modyfikacje oddziałujące na wiele
pozycji Rejestru, system NT nie zapewni nas, że zostaną one
rzeczywiście wprowadzone. Gwarantuje on jedynie, że albo cała
transakcja zostanie zakończona pomyślnie, albo też w ogóle nie
zostanie wykonana.
Jeśli np. zmodyfikujemy istniejącą pozycję, a zasilanie komputera
zostanie wyłączone w czasie uaktualniania Rejestru, nie otrzymamy
nowej wartości ze starym datownikiem. Jeśli natomiast w trakcie
dodawania kilku użytkowników do listy ACL dla konkretnej wartości
pozycji Rejestru wystąpił zanik zasilania, efektem będzie albo
w ogóle nie uaktualniona lista ACL, albo lista ACL uaktualniona
poprawnie.
Segregator HKEY_LOCAL_MACHINE\SYSTEM odgrywa ważną rolę
w procesie ładowania systemu operacyjnego NT i nie można go
pozostawić (w tym czasie) w stanie niestabilnym. Odpowiednią
ochronę zapewnia utrzymywanie przez system NT drugiej
(zapasowej) jego kopii w pliku o nazwie:
%SystemRoot%\System32\ config\SYSTEM.ALT.
Kiedy wprowadzamy zmiany w Rejestrze, dotyczące segregatora
HKEY_LOCAL_MACHINE\SYSTEM, modyfikacji poddany zostanie
Koncepcja Rejestru 709
najpierw główny segregator systemowy, a następnie segregator
zapasowy. Jeśli w trakcie uaktualniania segregatora zapasowego
zaniknie zasilanie, żadnych zakłóceń nie będzie, a po załadowaniu
system uaktualni segregator zapasowy tak - by stał się on znowu
dokładną kopią głównego segregatora systemowego. Jeżeli jednak
zanik zasilania wystąpi w trakcie uaktualniania głównego
segregatora systemowego, wtedy przy ponownym ładowaniu system
operacyjny rozpoznaje, że segregator ten jest nieprawidłowy
i kontynuuje ładowanie z użyciem segregatora zapasowego (który
jest starszy niż główny systemowy, ale za to stabilny).
Odzyskiwanie Rejestru z użyciem ostatniej, poprawnej
konfiguracji
Większość niezbędnych do uruchomienia informacji system NT
przechowuje w pozycji podrzędnej:
HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet. Jeśli
wprowadzimy (my albo program realizowany
w systemie) nieprawidłowe korekty do jednej z wartości tej pozycji
podrzędnej, wtedy system może nie załadować się lub - jeśli się
załaduje - uniemożliwi zalogowanie się.
W celu uniknięcia takich problemów NT utrzymuje kopie tej
pozycji podrzędnej w pozycjach:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002.
Jeżeli Windows NT nie może załadować się po uruchomieniu,
a podejrzewamy, że ma to coś wspólnego z wprowadzoną ostatnio
do Rejestru zmianą lub zainstalowanym urządzeniem, wtedy
możemy zmusić NT do wykorzystania zapasowej wersji ustawień.
W tym celu trzeba nacisnąć - podczas ładowania - klawisz spacji
(pojawia się komunikat: Press spacebar NOW to invoke Last
Known Good Menu). W rezultacie utracone zostaną wszystkie
zmiany, poczynione w Rejestrze od ostatniego (pomyślnego)
zalogowania dowolnego użytkownika w systemie.
Uwaga: Aadowanie systemu operacyjnego uważać możemy za
pomyślnie zakończone, a informację dotyczącą ostatniej znanej
poprawnej konfiguracji jako uaktualnioną - dopiero po
(skutecznym) zalogowaniu użytkownika do konsoli systemu NT.
710 Rozdział 18
Praca z Edytorem Rejestru
Registry Editor (Edytor Rejestru) jest głównym narzędziem,
znajdującym zastosowanie w bezpośredniej pracy z bazą danych
Rejestru. W rzeczywistości (chyba po to, aby życie nie było za
proste) Microsoft wyposażył Windows NT w dwa różne Edytory
Rejestru: REGEDT32.EXE i REGEDIT.EXE. Naturalnie
możemy używać obu tych narzędzi, niemniej jednak lepszym
rozwiązaniem w Windows NT będzie REGEDT32.EXE.
REGEDIT.EXE jest wersją Edytora z Windows 95. Chociaż
cechuje go kilka interesujących właściwości, posiada także istotne -
zwłaszcza w pracy z NT - ograniczenia.
Uwaga: Już systemy Windows NT 3.5 i 3.51 wyposażone były w dwa
Edytory Rejestru. Oferowały one jednak wersję Edytora, znaną
z systemów Windows 3.x. Jednakże w Windows NT 4 wprowadzono
również Edytor Rejestru, znany z Windows 95, który wygląda
bardzo podobnie do wersji NT-owej, i za pomocą którego można
wykonywać większość potrzebnych czynności. W takiej sytuacji
administrator może mieć kłopoty z odczytaniem jego właściwej
wersji .
Co więcej, po modernizacji (upgrade) do Windows NT 4 -
z Windows 3.x, lub z Windows NT 3.x - pozostaje Edytor Rejestru
w ograniczonej wersji dla Windows 3.x., również o nazwie
REGEDIT.EXE. Jeżeli chcemy dysponować Edytorem w wersji 95,
musimy skopiować go z instalacyjnego dysku NT (kopiując do
katalogu %SystemRoot% pliki REGEDIT.EXE,
REGEDIT.HLP i REGEDIT.CNT).
Wskazówka: Zmiany w bazie danych Rejestru powinniśmy
wprowadzać tylko poprzez REGEDT32.EXE. Nie oznacza to, iż
REGEDIT.EXE nie ma żadnych zastosowań.
Do najważniejszych zalet edytora REGEDIT.EXE zaliczyć
możemy:
Większe możliwości wyszukiwania. Program
REGEDIT.EXE umożliwia wyszukiwanie z wykorzystaniem
Koncepcja Rejestru 711
informacji z pozycji głównej (root key) lub podrzędnej (subkey),
wartości pozycji (value entry) lub nawet danych zawartych
w samej wartości (zgodnie z rysunkiem 18.3). Znacznie
przewyższa to podstawową obsługę funkcji wyszukiwania
programu REGEDT32.EXE, który umożliwia tylko
wyszukiwanie pozycji głównych i podrzędnych.
REGEDT32.EXE nie pozwala nam nam na wyszukiwanie
z użyciem wartości pozycji lub samych wartości danych.
Rys. 18.3.
REGEDIT.EXE
lepiej obsługuje
funkcję
wyszukiwania niż
REGEDT32.EXE.
Kompletny, znany z Windows 95, interfejs użytkownika.
REGEDIT.EXE wykorzystuje w pełni interfejs znany
z Windows 95. Umożliwia on przeglądanie wszystkich pozycji
głównych w jednym oknie (tak jak Explorer) -
w przeciwieństwie do REGEDT32.EXE, z interfejsem w stylu
Windows 3.x, wyświetlającym każdą pozycję główną (root key)
w oddzielnym oknie. Ponadto w programie REGEDIT.EXE
wykorzystuje się prawy klawisz myszy. Prawym klawiszem
myszy możemy kliknąć pozycję podrzędną - aby ją usunąć,
zmienić nazwę i wykonać wiele innych funkcji. Najważniejsze
jednak dla naszej wygody jest to, że kliknięcie pozycji
podrzędnej prawym klawiszem myszy udostępnia opcję Copy
Key Name (Kopiowanie nazwy pozycji), zgodnie z rysunkiem
18.4. Ułatwia ona kopiowanie pozycji podrzędnej do innego
miejsca, wykluczając pomyłki w jej zapisie.
Omawiając REGEDIT.EXE nie możemy pominąć jego
ograniczeń:
Brak interfejsu ochrony. Program REGEDIT.EXE
zaprojektowano do pracy z Windows 95, w którym nie ma
ochrony Rejestru. Dlatego REGEDIT.EXE nie umożliwia
modyfikacji ani przeglądania ustawień ochrony z Windows NT.
Oznacza to również, że nie można konfigurować nadzorowania
(audit) danych Rejestru.
712 Rozdział 18
Brak obsługi typów danych REG_MULT_SZ
i REG_EXPAND_ SZ. Windows 95 nie obsługuje typów
danych REG_MULT_SZ i REG_EXPAND_SZ. Innymi słowy,
stosując REGEDIT.EXE do przeglądania wartości pozycji tych
typów, uzyskamy je jako typ REG_SZ. Oczywiście programu
tego nie można używać do tworzenia wartości pozycji typu
REG_MULT_SZ i REG_ EXPAND_SZ.
Tylko podstawowa obsługa drukowania. Wydruki
generowane przez program REGEDIT.EXE można uznać -
w najlepszym razie - za ,,przeglądowe . Inną jakość zapewnia
tutaj REGEDT32.EXE.
Rys. 18.4. W celu
skopiowania
z pełną kontrolą
literowania
i składni pełnej
nazwy pozycji
podrzędnej
(subkey) możemy
się posłużyć
prawym
klawiszem myszy.
Utworzenie ikony Edytora Rejestru
Wcześniej wspomnieliśmy, że dla żadnej z wersji Edytora Rejestru
ikona nie jest tworzona domyślnie. Edytor Rejestru w wersji dla
Windows 95 uruchamiany jest zapisem: REGEDIT w polu menu
Start\Run, a dla Windows NT - REGEDT32.EXE.
Aby utworzyć ikonę widoczną dla wszystkich użytkowników
logujących się do konsoli serwera NT należy:
1. Kliknąć prawym klawiszem myszy przycisk Start i wybrać Open
All Users (Otwarcie wszystkich użytkowników). Na ekranie
pojawi się okno Explorer-a.
2. Dwukrotnie kliknąć ikonę Programs (rysunek 18.5). Pojawi się
następne okno Explorer-a.
Koncepcja Rejestru 713
Rys. 18.5. All Users
zawiera ikonę
Programs, z często
używanymi
pozycjami menu
Start dla
użytkowników
logujących się do
konsoli systemowej.
3. Dwukrotnie kliknąć ikonę Administrativ e Tools (Narzędzia do
administrowania). Pojawi się okno Explorer-a z istniejącymi
skrótami (shortcut) dla wielu narzędzi do administrowania
w systemie NT, zgodnie z rysunkiem 18.6.
Rys. 18.6. Folder
Administrative
Tools (Narzędzia
do
administrowania)
zawiera skróty do
wielu często
używanych
narzędzi systemu
NT.
4. Z menu File (Plik) wybrać New, a następnie Shortcut (skrót).
Pojawi się okno Create Shortcut (Utworzenie skrótu).
5. W polu Command Line (Linia komend) wpisać REGEDT32,
a następnie kliknąć przycisk Next (Następny). Operację
kończymy wybraniem Finish (Zakończenie).
6. Zamknąć wszystkie okna Explorera.
714 Rozdział 18
Rys. 18.7. Skrót
do narzędzia
REGEDT32 w menu
Start.
Uwaga: Aby utworzyć skrót do Edytora Rejestru w wersji dla
Windows 95, należy powtórzyć powyższą procedurę, w punkcie
piątym wpisując REGEDIT - zamiast REGEDT32.
Praca z Edytorem Rejestru
Teraz rozumiemy już podstawowe pojęcia związane z Rejestrem
(Registry) i możemy rozpocząć kolejny etap rozważań, poświęcony
jego przeglądaniu i modyfikowaniu za pomocą Edytora Rejestru
(Registry Editor).
Uwaga: W podrozdziale ograniczyliśmy się do programu
REGEDT32, ponieważ to za jego pomocą należy Rejestr
redagować.
Otwórzmy edytor REGEDT32, używając skrótu utworzonego
w poprzednim podrozdziale, lub wpisując REGEDT32 - w polu
Start\Run. Edytor po uruchomieniu wyświetla pięć pozycji
głównych (root key), każdą w jej własnym oknie, zgodnie
z rysunkiem 18.8.
Koncepcja Rejestru 715
Rys. 18.8. Każda
pozycja główna
(root key)
wyświetlna jest
w jej własnym
oknie.
Wskazówka: Jeżeli Rejestr ma być tylko przeglądany, bez
wprowadzania zmian, powinniśmy wybrać - dla zabezpieczenia
przed przypadkowymi zmianami - Options\Read Only Mode
(Opcje\ Tryb tylko do odczytu).
Rozważmy teraz przykład ilustrujący pracę z Edytorem Rejestru.
Z reguły znajduje on zastosowanie (poza odczytem lokalizacji
różnych składników i elementów systemu) przy korygowaniu
ustawień domyślnych systemu NT - tj. przy ich adaptowaniu do
potrzeb konkretnego środowiska.
Przy każdym drukowaniu w systemie NT , system domyślnie
generuje pozycje nadzoru (audit) w protokole systemowym (System
Log), zgodnie z rysunkiem 18.9.
716 Rozdział 18
Rys. 18.9. System
NT generuje
pozycje nadzoru
(audit) po każdym
sfinalizowanym
zadaniu
drukowania.
W niektórych środowiskach takie działanie systemu może być
uciążliwe i lepiej je wyłączyć. Cóż, nie ma prostego sposobu na
dokonanie tej zmiany, przynajmniej za pomocą zwykłych narzędzi
do administrowania (takich jak Print Manager czy Printer
Wizards). Tak więc szukając jakiejś wskazówki na dysku CD
TechNet Microsoft-u - na temat wyłączenia procedury tworzenia
pozycji nadzoru drukowania (print audit) - znajdujemy artykuł
Q115841, zatytułowany Turning Off Print Job Logging in the
System Log (Wyłączanie protokołowania zadań drukowania do
protokołu systemowego).
W artykule tym poproszeni zostaniemy o utworzenie nowej
wartości pozycji dla pozycji podrzędnej:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
Print\Providers,
a mianowicie:
EventLog:REG_DWORD:0
Zmianę tę wprowadzimy poniższą procedurą:
Uwaga: Realizacja tej procedury będzie możliwa tylko po
zalogowaniu się do systemu jako użytkownik z lokalnymi prawami
administrowania.
1. Uruchomić Edytor Rejestru.
Koncepcja Rejestru 717
Wskazówka: Zaraz po uruchomieniu edytora REGEDT32.EXE,
pozycje główne (root key) zostają wyświetlone każda w swoim
oknie, przy czym okna są ułożone w kaskadę (patrz rys. 18.8).
W celu polepszenia czytelności należy powiększyć (maximize) do
całego ekranu okno Local Machine (Lokalny komputer),
wyświetlające pozycję HKEY_LOCAL_MACHINE. Widok okna po
powiększeniu przedstawia rysunek 18.10.
Rys. 18.10. Okno
z pozycją główną,
powiększone dla
lepszej
czytelności.
Uwaga: Zdolność do wyświetlania wielu okien dokumentów
w jednym oknie programu, tak jak w przypadku Edytora Rejestru,
nazywa się interfejsem MDI Windows (Multiple Document
Interface).
2. W strukturze drzewiastej Rejestru odszukać wartość pozycji
(value entry), podaną w artykule TechNet. Podwójnie kliknąć
SYSTEM, znajdujący się po lewej stronie pozycji
HKEY_LOCAL_MACHINE, wyświetlanej w oknie Local
Machine (Lokalny komputer). Drzewo należy dalej
przeszukiwać w opisany sposób, aż do znalezienia pozycji
podrzędnej (subkey): HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Print\Providers (zgodnie
z rysunkiem 18.11).
3. Upewnić się, czy pozycja Prov iders po lewej stronie okna
została wybrana. Jeśli tak - pojawi się kilka wartości pozycji
718 Rozdział 18
(entry value) po prawej stronie okna, wraz z szukaną EventLog
(protokół zdarzeń).
4. Nie należy się przejmować tym, że wartość pozycji EventLog
już istnieje, chociaż w artykule z bazy wiedzy TechNet
stwierdzono, że należy ją utworzyć. W artykułach tych często
można znalezć informacje o systemie nie do końca zgodne ze
stanem faktycznym. Poza tym, po dokładniejszym przyjrzeniu
się temu artykułowi stwierdzimy, że jest on nieaktualny
i dotyczy wersji systemu NT w wersji 3.1 (kopia autora nosi datę
19 września 1994). W ten sposób ujawniamy dobitnie praktykę
firmy Microsoft, polegającą na ciągłym aktualizowaniu
domyślnych ustawień Rejestru. Chociaż wspomniany artykuł
istotnie się zdeaktualizował, czynności w nim opisane wciąż
prowadzą do pożądanego efektu.
Rys. 18.11.
Lokalizacja
pozycji
podrzędnej
(subkey)
HKEY_LOCAL_
MACHINE\SYSTE
M\CurrentContro
lSet\
Control\Print\
Providers.
Uwaga: Microsoft ciągle zmienia domyślne ustawienia wartości
w Rejestrze. Niemniej jednak, jeżeli rozumieć będziemy istotę zmian,
wtedy łatwo ustalimy kolejność czynności przy ich wprowadzaniu
do Rejestru.
5. Proponujemy, w ramach ćwiczeń, by Czytelnik usunął istniejącą
wartość pozycji (value entry) i odtworzył ją ponownie. Po
pierwsze należy zanotować aktualną wartość pozycji EventLog
(najprawdopodobniej wynosi ona 0x1f lub 31 w notacji
dziesiętnej). Należy też zanotować jej typ, tzn. REG_DWORD.
Koncepcja Rejestru 719
6. Kliknąć pozycję Ev entLog (protokół zdarzeń), po prawej
stronie okna oraz wybrać Edit\Delete lub nacisnąć klawisz
DELETE. Pojawi się komunikat z ostrzeżeniem, że wartość
pozycji zostanie usunięta.
7. Kliknąć Yes. Wartość pozycji zniknie z listy po prawej stronie.
8. A teraz proponujemy utworzyć nową wartość pozycji. Najpierw
należy się upewnić, że pozycja podrzędna (subkey) Prov iders
jest ciągle podświetlona po lewej stronie okna, a następnie
wybrać Edit\Add Value (Edycja\Dodanie wartości). Pojawi się
okno dialogowe Add Value, zgodnie z rysunkiem 18.12.
Rys. 18.12. Okno
dialogowe Add
Value
wykorzystywane
jest do
podawania nazwy
wartości pozycji
(value entry)
i typu danej - dla
9. W polu Value Name (Nazwa wartości) wpisać EventLog.
nowej wartości
pozycji.
10. Przejrzeć listę Data Type (Typ danej). Widać, że dla wartości
pozycji można wybrać jeden z pięciu typów danych (tabela
18.2). Należy wybrać typ REG_DWORD, zgodnie ze
wskazówkami zawartymi w artykule. Rysunek 18.13 ilustruje
okno dialogowe Add Value z wpisaną informacją.
Rys. 18.13.
W pisanie nazwy
wartości i typu
danej według
artykułu z bazy
wiedzy TechNet
11. Kliknąć OK. Pojawi się okno dialogowe DWORD Editor
(EdytorDWORD), zgodnie z rysunkiem 18.14. Dane można
wpisać w notacji szesnastkowej, dziesiętnej lub dwójkowej.
720 Rozdział 18
Ostrzeżenie: Okno DWORD Editor przyjmuje domyślnie notację
szesnastkową.
Rysunek 18.14
W oknie
dialogowym
DW ORD Editor
wpisujemy
czterobajtowe
wartości typu
DW ORD.
12.Wpisać 0 (zero) w polu Data (Dane), zgodnie ze wskazówkami
artykułu TechNet, i kliknąć OK.
Wartość pozycji (value entry) EventLog - czyli 0 - powinna się
teraz pojawić dla pozycji podrzędnej (subkey): HKEY_LOCAL_
MACHINE\SYSTEM\CurrentControlSet\Control\
Print\Providers (zgodnie z rysunkiem 18.15).
Przekonajmy się teraz, przeładowując system, czy artykuł zawiera
aktualne informacje (skutek modyfikacji nie może być
natychmiastowy, ponieważ większość składników systemu
odczytuje ustawienia konfiguracyjne z Rejestru tylko przy starcie).
Wystarczy też zatrzymać i ponownie uruchomić spooler (program
wpisujący do kolejki) drukarki, bo to właśnie on generował dane do
protokołu zdarzeń. W linii komend należy wpisać komendę : net
stop spooler, a następnie: net start spooler.
Rys. 18.15. Nowo
utworzona
pozycja EventLog
pojawia się po
prawej stronie
okna.
Koncepcja Rejestru 721
Otwórzmy teraz jeden z edytorów (WordPad lub NotePad),
wpiszmy kilka znaków i wydrukujmy tak utworzony dokument.
Sprawdzimy następnie, po otworzeniu Przeglądarki zdarzeń
i wyświetleniu protokołu systemowego (System Log), czy zawiera
on jakąś pozycję dla wysłanego właśnie zadania drukowania? Nie
powinien. A teraz przywróćmy stare ustawienie wartości pozycji
Ev entLog - aby skontrolować, czy nadzorowanie zadań drukowania
zostało przywrócone. W tym celu powinniśmy:
1. Otworzyć edytor REGEDT32 (jeśli został zamknięty)
i odnalezć wartość pozycji Ev entLog.
2. Podwójnie kliknąć wartość pozycji (value entry) Ev entLog.
Pojawi się okno DWORD Editor. Pole Data (Dane) powinno
zawierać wartość 0. Trzeba ją zmienić na 1f (tj. 31 w notacji
dziesiętnej), zgodnie z rysunkiem 18.16.
Rys. 18.16.
Przywrócenie
starej wartości
pozycji EventLog,
tzn. (w notacji
szesnastkowej) 1f.
3. Kliknąć OK. Po prawej stronie okna Edytora Rejestru powinien
pojawić się zapis:
EventLog:REG_DWORD:0x1f
Sprawdzmy jeszcze, czy powyższe czynności spowodowały
przywrócenie nadzorowania zadań drukowania. W tym celu
wpisujemy w linii komend: net stop spooler, a następnie:
net start spooler.
Otwórzmy ponownie jeden z edytorów (WordPad lub NotePad),
wpiszmy kilka znaków i wydrukujmy taki dokument. Następnie
ponownie otwórzmy Przeglądarkę zdarzeń (Event Viewer)
i obejrzyjmy protokół systemowy (System Log). Jeśli nie
zamknęliśmy przedtem Przeglądarki, ekran zostanie uaktualniony
po naciśnięciu klawisza F5. Czy dla wysłanego zadania drukowania
została utworzona pozycja nadzoru zadania drukowania? Powinna -
zgodnie z rysunkiem 18.17.
722 Rozdział 18
Rys. 18.17.
Ustawienie
wartości pozycji
EventLog na 0x1f
nakazuje
spoolerowi
drukarki
generowanie
pozycji nadzoru
drukowania.
Wyszukiwanie informacji w Rejestrze
Znając już podstawowe zasady pracy z Edytorem Rejestru, możemy
przejść do trudniejszych zagadnień. Rejestr jest dużą i złożoną bazą
danych. Wyszukanie żądanej informacji nie zawsze jest łatwe,
zwłaszcza jeśli nie wie się dokładnie, gdzie jej szukać.
Na szczęście edytor REGEDT32 udostępnia, choć prymitywną,
funkcję wyszukiwania.
Uwaga: W przypadku wyszukiwania wartości pozycji (value entry),
dla której nie znamy żadnych rodzicielskich pozycji podrzędnych
(subkey), albo wyszukiwania wartości pozycji, dla której znana jest
tylko jej wartość danych, należy użyć edytora REGEDIT (tzn. wersji
dla Windows 95), ze znacznie bardziej rozbudowaną opcją
wyszukiwania.
W poprzednim przykładzie należało wyszukać pozycję podrzędną
(subkey):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Control\Print\Providers. Zamiast przeszukiwać
strukturę wielu pozycji podrzędnych wystarczyłoby wówczas
skorzystać z opcji View\Find Key (Przeglądanie\Wyszukanie
pozycji).
Po wybraniu View\Find Key pojawi się okno dialogowe Find
(Wyszukiwanie) (rysunek 18.18).
Koncepcja Rejestru 723
Rys.
18.18.Pozycję
podrzędną można
wyszukać
posługując się
pełną nazwą lub
jej fragmentem.
Wskazówka: Komenda wyszukiwania korzysta z aktualnej
lokalizacji w bazie danych Rejestru. Przeszuka ona tylko aktualnie
wybraną pozycję główną (root key) i to tylko od punktu wybranego
(po lewej stronie okna) z tą pozycją. Przeszukanie całej pozycji
głównej będzie możliwe po przewinięciu zawartości okna do góry
i wybraniu nazwy pozycji głównej - np. HKEY_LOCAL_MACHINE.
Tak więc, aby wyszukać pozycję podrzędną:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
Print\Providers, można wybrać View\Find Key i wpisać -
w polu Find w hat (Co wyszukać) - Providers. Przeszukiwanie
przyspieszy wybranie opcji Match w hole w ord only
(wyszukiwanie tylko całych słów). Jeśli nie znamy dokładnej nazwy
pozycji podrzędnej, możemy wpisać jej fragment. Wówczas jednak
nie należy wybierać opcji Match w hole w ord only. Teraz należy
kliknąć przycisk Find Next (Wyszukanie następnej). Jeżeli
przeszukiwanie rozpoczęto od pozycji głównej:
HKEY_LOCAL_MACHINE, to końcowym efektem będzie:
HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Windows\Current\Version\Telephony
\ Providers - niestety, nie jest to dokładnie to, czegośmy
szukali. Znów więc kliknijmy Find Next; tym razem otrzymamy
oczekiwaną pozycję podrzędną (zgodnie z rysunkiem 18.19).
Rys. 18.19. Opcji
Find można użyć
do szybkiego
wyszukania
pozycji
podrzędnej
(subkey).
724 Rozdział 18
Ochrona i nadzór danych w Rejestrze
W ramach systemu ochrony Windows NT można, w sposób
selektywny, sterować dostępem do konkretnych wartości pozycji
w Rejestrze (Registry).
Uwaga: Do tworzenia i edycji ustawień ochrony Rejestru trzeba
używać REGEDT32. Edytor REGEDIT dla Windows 95 nie
obsługuje systemu ochrony Windows NT.
Ochrona pozycji głównych, pozycji podrzędnych i wartości pozycji
Rejestru jest udostępniona niezależnie od systemu plików,
stosowanego do przechowywania bazy danych Rejestru.
Uwaga: Ochronę można zapewnić danym Rejestru nawet wówczas,
gdy jego pliki znajdują się w partycji FAT.
Ostrzeżenie: Jeżeli pliki systemu NT znajdują się w partycji FAT,
dowolny z nich może być usunięty przez każdego, kto zaloguje się
do konsoli systemowej. W szczególności, chociaż nie można
zmodyfikować ani usunąć poszczególnych pozycji Rejestru, istnieje
możliwość usunięcia całych jego segregatorów.
Przydzielanie zezwoleń z użyciem Edytora Rejestru ma przebieg
podobny do analogicznej operacji w programach Menedżer plików
lub Explorer. Aby wyświetlić zezwolenia dla pozycji podrzędnej
należy:
1. Uruchomić Edytor Rejestru (REGEDT32.EXE).
2. Wybrać Window s\ HKEY_LOCAL_MACHINE - w oknie
Local Machine (Lokalny komputer), aby okno pozycji głównej
HKEY_LOCAL_MACHINE pojawiło się na pierwszym planie.
3. Kliknąć pozycję podrzędną SOFTWARE (zgodnie z rysunkiem
18.20).
Koncepcja Rejestru 725
Rys. 18.20.
W ybranie pozycji
podrzędnej
SOFTWARE.
4. Wybrać Security\ Permissions (Ochrona\Zezwolenia). Pojawi
się okno Registry Key Permissions (Zezwolenia dla pozycji
Rejestru), które ilustruje rysunek 18.21. Dla każdego
użytkownika lub grupy z listy ACL, zezwolenia można ustawić na
Read (odczyt), Full Control (pełna kontrola) lub Special
Access (specjalny dostęp). (Zezwolenia z zestawu Special
Access przedstawia rysunek 18.22).
Rys. 18.21. Okno
Registry Key
Permissions jest
podobne do okien
narzędzi File
Manager-a i NT
Explorer-a,
służących do
ustawiania
zezwoleń ochrony.
Uwaga: Zezwolenia można ustawiać jedynie dla pozycji głównych
i podrzędnych Rejestru. W odniesieniu do poszczególnych wartości
pozycji możliwości takiej nie ma.
726 Rozdział 18
Rys. 18.22.
Korzystając
z ustawień
Special Access
możemy
precyzyjnie
sterować
zezwoleniami
5. Aby wprowadzić użytkowników lub grupy do listy ACL
korzystamy z funkcji Add (Dodanie); istniejące pozycje kontroli
dostępu - ACE (Existing Control Entries) - w skrócie pozycje
ACE - usuwamy z listy za pomocą przycisku Remov e
(Usunięcie).
6.Jeżeli zmiany mają zostać wprowadzone dla pozostałych pozycji
w poddrzewie Rejestru, powinniśmy wybrać opcję Replace
Permission on Existing Subkeys.
Ostrzeżenie: Wprowadzenie zmian do zezwoleń ochrony dla pozycji
podrzędnych (subkey) Rejestru może spowodować awarię systemu
lub inne nieprzewidziane problemy.
7. Kliknąć OK po przeprowadzeniu wszystkich żądanych zmian.
Dla pozycji podrzędnych w Rejestrze można ustawić jeden
z dziesięciu precyzyjnych poziomów specjalnego dostępu (Special
Access).
Tabela 18.4. Zezwolenia specjalnego dostępu (Special Access) do
ochrony Rejestru.
Zezwolenie Opis
Query Value Użytkownik (lub grupa) może odczytać
ustawienie wartości pozycji (value entry) dla
pozycji podrzędnej (subkey).
Set Value Użytkownik (lub grupa) może ustawić
wartość pozycji (value entry) dla pozycji
Koncepcja Rejestru 727
Zezwolenie Opis
podrzędnej (subkey).
Create Subkey Użytkownik (lub grupa) może utworzyć
nową pozycję_podrzędną (subkey) dla
aktualnie wybranej w Rejestrze
pozycji_podrzędnej (subkey).
Enumerate Subkeys Użytkownik (lub grupa) może poddać
identyfikacji wszystkie pozycje podrzędne
(subkey) dla aktualnie wybranej pozycji
podrzędnej (subkey).
Notify Użytkownik (lub grupa) może odbierać
zawiadomienia nadzoru (audit notification),
generowane z poziomu aktualnej pozycji
podrzędnej (subkey).
Create Link Użytkownik (lub grupa) może utworzyć
dowiązanie symboliczne (symbolic link) do
wybranej pozycji podrzędnej (subkey).
Delete Użytkownik (lub grupa) może usunąć
wybraną pozycję podrzędną (subkey).
Write DAC Użytkownik (lub grupa) może
zmodyfikować listę precyzyjnej kontroli
dostępu - DAC (Discretionary Access
Control) dla wybranej pozycji podrzędnej
(subkey).
Write Owner Użytkownik (lub grupa) może stać się
właścicielem wybranej pozycji podrzędnej
(subkey).
Read Control Użytkownik (lub grupa) może odczytać
dane ochrony związane z wybraną pozycją
podrzędną (subkey).
Nadzorowanie pozycji Rejestru
Edytor Rejestru, a dokładniej program REGEDT32.EXE,
umożliwia również kojarzenie nadzorowania z pewnymi pozycjami
728 Rozdział 18
podrzędnymi (subkey). Procedura jest tutaj podobna do aktywacji
nadzorowania partycji NTFS - za pomocą File Manager-a lub NT
Explorer-a.
Uwaga: Nadzorowanie pozycji podrzędnych (subkey) Rejestru
wymaga nadzorowania dostępu do obiektów i plików (File and
Object Access), zgodnie ze strategią nadzorowania w Menedżerze
użytkowników dla Domen (User Manager for Domains).
Posługując się Edytorem Rejestru do wyboru pozycji podrzędnej,
możemy - do określenia nadzoru dla tej pozycji podrzędnej -
wybrać opcję Security\Auditing. Pojawi się okno Registry Key
Auditing (Nadzorowanie pozycji Rejestru), zgodnie z rysunkiem
18.23.
Wybierając opcję Audit Permission on Existing Subkeys
(Zezwolenia nadzoru dla istniejącej pozycji podrzędnej), właściwości
nadzoru podane w tym oknie zostaną również ustawione dla
wszystkich pozycji podrzędnych, rozpoczynających się od wybranej
pozycji podrzędnej.
Rys. 18.23. Okno
Registry Key
Auditing
wykorzystywane
jest do określania
nadzoru dla
wybranej pozycji
podrzędnej.
Opcja Add (Dodanie) znajduje zastosowanie przy wyznaczaniu
użytkowników i grup z bazy danych kont lokalnej domeny lub
z dowolnych domen upoważnionych (trusted domain). Po dodaniu
wszystkich użytkowników i grup do nadzoru w liście, można -
Koncepcja Rejestru 729
klikając konkretną pozycję lub zaznaczając zdarzenia na liście
znaczników (zgodnie z rysunkiem 18.24) - określić zdarzenia do
nadzorowania dla każdego użytkownika lub grupy.
Rys. 18.24. Przy
użyciu tych opcji,
dla każdego
użytkownika
systemu zostaną
wygenerowane
zdarzenia
nadzoru, gdy
uzyska on dostęp
do pozycji
podrzędnej:
HKEY_LOCAL_
MACHINE\
SYSTEM.
Ostrzeżenie: W przypadku niektórych aplikacji dostęp do Rejestru
realizowany jest bardzo często. Nadzorowanie odpowiadających
temu pozycji podrzędnych mogłoby spowodować dodatkowe,
istotne obciążenie systemu redukujące jego wydajność (pomijając
już fakt szybkiego zapełnienia Protokołu ochrony (Security Log)).
Zdalna praca z Edytorem Rejestru
Jedną z największych zalet Edytora Rejestru, a zarazem całego
systemu Windows NT , stanowi możliwość uzyskania zdalnego
dostępu do bazy danych Rejestru i jej zdalnej edycji. Pracując
z Edytorem (tj. Programem REGEDT32.EXE), z komputera
działającego w NT możemy połączyć się z innym, odległym
systemem Windows NT .
W edytorze REGEDT32.EXE należy w tym celu wybrać opcję
Registry\Select Computer (Rejestr\Wybór komputera). Pojawi się
okno przeglądowe, w którym możemy wybrać komputer zdalny (tj.
taki, którego Rejestr ma być przejrzany) lub wpisać - w polu
Computer - nazwę komputera.
730 Rozdział 18
Po wykonaniu tych czynności jesteśmy połączeni z pozycjami
głównymi (root key) komputera zdalnego, tzn. z: HKEY_LOCAL_
MACHINE i HKEY_USERS.
Uwaga: Pamiętajmy, że inne pozycje główne (root key) są tylko
dowiązaniami (link) do innych pozycji podrzędnych (subkey),
należących do pozycji głównej: HKEY_LOCAL_MACHINE, albo
HKEY_USERS.
Po zakończeniu przeglądania lub modyfikowania Rejestru zdalnego
komputera powinniśmy wybrać opcję Registry\Close (Rejestr\
Zamknięcie) - w celu zamknięcia sesji na odległym systemie
Windows NT.
Uwaga: Gdy łączymy się z Rejestrem zdalnego systemu NT,
przyznaje się nam zezwolenie- zgodnie z naszym kontem
użytkownika i przywilejami, jakie temu kontu przyznano w tym
systemie odległym.
Wyszukiwarka
Podobne podstrony:
19 Rozdział 18Dom Nocy 09 Przeznaczona rozdział 18 19 TŁUMACZENIE OFICJALNEP C and Kristin Cast Dom Nocy Ujawniona (Revealed) rozdział 18rozdzial (18)rozdzial 18Rozdział 18 Rozwój społeczny i rozwój osobowości w okresie późnej dorosłościRozdział 18 Pechowi goście18 Pechowi goście18 Pechowi gośWings of the wicked rozdział 18Pan Wolodyjowski Rozdzial 18makro 19 rozdziałRozdział 18rozdzial (18)rozdzial (18)więcej podobnych podstron