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.
!
O bsł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 wyraźna: 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. T abela 18.1 zawiera opis pięciu pozycji głównych.
Tabela 18.1. Pozycje główne Rejestru
Pozycja główna
O pis
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
O pis
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 wskaźnik 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 wskaźnikiem do pozycji
podrzędnych, przechowywanych dla
HKEY_USERS
.
HKEY_USERS
Pozycja zawierająca wskaźnik do
segregatora dla użytkownika aktualnie
zalogowanego do komputera z konsoli
oraz wskaźnik 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
G
Nowa pozycja główna, dodana w Windows
NT 4. Zawiera aktualne dane
o konfiguracji sprzętu, zgodnie z bieżącym
profilem sprzętu. Faktycznie wskazuje
Koncepcja Rejestru
701
Pozycja główna
O pis
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 odnaleźć 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
Danej
O pis
REG_BINARY
Dwójkowy. T ego 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
Danej
O pis
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. T yp
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
Z
Typ wielołańcuchowy. T ego typu wartość
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
.
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).
Rys. 18.1. Nie
można zmieniać
istniejących
wartości typu
REG_FULL_
RESOURCE_
DESCRIPTOR
, ani
tworzyć nowych.
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\hivelis
t
.
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: Ładowanie 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.
!
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.
Rys. 18.3.
REGEDIT.EXE
lepiej obsługuje
funkcję
wyszukiwania niż
REGEDT32.EXE
.
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.
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.
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.
Koncepcja Rejestru
713
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.
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.
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.
Rys. 18.6. Folder
Administrative
Tools ( Narzędzia
do
administrowania)
zawiera skróty do
wielu często
używanych
narzędzi systemu
NT.
714
Rozdział 18
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
T eraz 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.
Rys. 18.7. Skrót
do narzędzia
REGEDT32
w menu
Start.
Koncepcja Rejestru
715
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.
Rys. 18.8. Każda
pozycja główna
( root key)
wyświetlna jest
w jej własnym
oknie.
716
Rozdział 18
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). T ak więc szukając jakiejś wskazówki na dysku CD
T echNet Microsoft-u - na temat wyłączenia procedury tworzenia
pozycji nadzoru drukowania (print audit) - znajdujemy artykuł
Q115841, zatytułowany „T urning 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.
Rys. 18.9. System
NT generuje
pozycje nadzoru
( audit) po każdym
sfinalizowanym
zadaniu
drukowania.
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.
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 T echNet. 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
Rys. 18.10. Okno
z pozycją główną,
powiększone dla
lepszej
czytelności.
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 T echNet
stwierdzono, że należy ją utworzyć. W artykułach tych często
można znaleźć 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.
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.
Rys. 18.11.
Lokalizacja
pozycji
podrzędnej
( subkey)
HKEY_LOCAL_
MACHINE\SYSTE
M\CurrentContro
lSet\
Control\Print\
Providers.
Koncepcja Rejestru
719
6. Kliknąć pozycję
Ev entLog
(protokół zdarzeń), po prawej
stronie okna oraz wybrać
Edit\Delete
lub nacisnąć klawisz
DELET E. 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.
9. W polu
Value
Name
(Nazwa wartości) wpisać EventLog.
10. Przejrzeć listę
Data Type
(T yp 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ą.
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.
Rys. 18.12. Okno
dialogowe Add
Value
wykorzystywane
jest do
podawania nazwy
wartości pozycji
( value entry)
i typu danej - dla
nowej wartości
pozycji.
Rys. 18.13.
W pisanie nazwy
wartości i typu
danej według
artykułu z bazy
wiedzy TechNet
720
Rozdział 18
Ostrzeżenie: Okno DWORD Editor przyjmuje domyślnie notację
szesnastkową.
12. Wpisać 0 (zero) w polu
Data
(Dane), zgodnie ze wskazówkami
artykułu T echNet, 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.
Rysunek 18.14
W oknie
dialogowym
DW ORD Editor
wpisujemy
czterobajtowe
wartości typu
DW ORD.
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 odnaleźć 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. T rzeba ją zmienić na 1f (tj. 31 w notacji
dziesiętnej), zgodnie z rysunkiem 18.16.
3. Kliknąć
OK
. Po prawej stronie okna Edytora Rejestru powinien
pojawić się zapis:
EventLog:REG_DWORD:0x1f
Sprawdźmy 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.
Rys. 18.16.
Przywrócenie
starej wartości
pozycji EventLog,
tzn. ( w notacji
szesnastkowej) 1f.
722
Rozdział 18
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).
Rys. 18.17.
Ustawienie
wartości pozycji
EventLog na 0x1f
nakazuje
spoolerowi
drukarki
generowanie
pozycji nadzoru
drukowania.
Koncepcja Rejestru
723
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
.
T ak 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
. T eraz 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.18.Pozycję
podrzędną można
wyszukać
posługując się
pełną nazwą lub
jej fragmentem.
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
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).
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.
Rys. 18.20.
W ybranie pozycji
podrzędnej
SOFTWARE
.
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.
726
Rozdział 18
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
O pis
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
Rys. 18.22.
Korzystając
z ustawień
Special Access
możemy
precyzyjnie
sterować
zezwoleniami
Koncepcja Rejestru
727
Zezwolenie
O pis
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 NT FS - 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.
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 -
Rys. 18.23. Okno
Registry Key
Auditing
wykorzystywane
jest do określania
nadzoru dla
wybranej pozycji
podrzędnej.
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.
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.
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
.
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.