background image

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.

background image

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ę

background image

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

background image

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:).

background image

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,
wartości pozycji zawierają konkretne dane. Wartość pozycji
składa się trzech elementów: nazwy,  typu danej i wartości
(z
ostaną 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,

background image

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

background image

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:

background image

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ść)

background image

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

background image

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

 ....

background image

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

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.

background image

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

.

background image

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

background image

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

background image

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.

background image

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

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

background image

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

.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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

background image

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.

background image

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.

background image

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.

background image

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).

background image

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).

background image

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.

background image

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

background image

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

background image

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.

background image

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

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

.

background image

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.