Artykuły >>
Projekty >>
Downloads >>
Serwis >>
Mając dwadzieścia lat myślałem tylko o kochaniu. Potem kochałem już tylko myśleć. Albert Einstein
/ LHP / artykuly
Rejestr Windows

Wstęp

Rejestr systemu Windows to miejsce gdzie system przechowuje informacje o poszczególnych programach, sprzęcie, sterownikach, jak również indywidualne ustawienia interfejsu i innych podzespołów. Większość instalowanych przez Ciebie programów zostawia tam mnóstwo wpisów (tzw. kluczy i wartości), umożliwiających im prawidłowe funkcjonowanie, przechowywanie ustawień użytkownika, czy w końcu integracje z systemem operacyjnym (rejestracja nowych rozszerzeń plików i odpowiadającym ich aplikacji). Informacje są przechowywane w bazie danych (Rejestrze) o strukturze drzewa składające się z kluczy i ich podkluczy, gałęzi oraz wpisów wartości (patrz Tabela 1.1). Do ich edycji służy systemowy program regedit.exe zwany "Edytorem rejestru" - to zaawansowane narzędzie, służące do wyświetlania i zmieniania ustawień Rejestru systemu. Chociaż Edytor rejestru pozwala na sprawdzanie i modyfikowanie ustawień Rejestru, zwykle nie jest to konieczne, a dokonywanie nieprawidłowych zmian może uszkodzić system. Zaawansowany użytkownik, który jest przygotowany do edytowania i przywracania Rejestru, może korzystać z Edytora rejestru bez obaw i wykonywać przy jego użyciu takie zadania, jak usuwanie podwójnych wpisów czy usuwanie wpisów odinstalowanych lub usuniętych programów, które nie zostały usunięte przez programy deinstalacyjne (niestety bardzo często się to zdarza).

Tabela 1.1 - Główne klucze rejestru
Pełna nazwa klucza Skrót nazwy
HKEY_CLASSES_ROOT HKCR
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC

O ile w systemach z rodziny Windows 9x rejestr był zlokalizowany w dwóch plikach: SYSTEM.DAT i USER.DAT o tyle w systemach z rodziny NT (jak Windows XP) jest już nieco gorzej. W tych systemach pliki w których przechowywany jest rejestr porozrzucane są po całej partycji systemowej (Tabela 1.2).

Tabela 1.2 - Pliki w których przechowywany jest rejestr w systemach rodziny NT
Nazwy plików Opis zawartości
system,system.sav,system.log HKLM\SYSTEM
sam,sam.log HKLM\SECURITY\SAM
software,software.sav,software.log HKLM\SOFTWARE, HKCR
security,security.log HKLM\SECURITY
default HKU\.DEFAULT
C:\Documents and settings\<Nazwa użytkownika>\ntuser.dat i ntuser.dat.log HKCU, HKU\<identyfikator użytkownika (SID)>

Musisz pamiętać, że zmieniając zawartość rejestru zawsze narażasz na szwank system, dlatego chcąc zmodyfikować jakiś klucz zawsze powinienneś zadbać o wykonanie kopii rejestru (na wszelki wypadek). Za chwilę dowiesz się jak to zrobić.
Nie należy dokonywać edycji Rejestru o ile nie jest to konieczne ponieważ czasem nawet najmniejszy błąd może uniemożliwić poprawne funkcjonowanie systemu. Jeśli tak się stało będziesz zmuszony skorzystać z opcji przywracania systemu (jeśli jesteś użytkownikiem Windows Me,NT,XP) lub opcji przywracania rejestru w systemach (Windows 9x). Aby przywrócić kopię rejestru z czasów gdy system jeszcze poprawnie się uruchamiał należy w linii komend DOS'a wpisać polecenie: scanreg /restore Wykonanie tej procedury przywróci Rejestr do stanu, w jakim znajdował się w momencie ostatniego prawidłowego uruchomienia komputera.

Zmniejszanie objętości rejestru

Jak wspomniano wcześniej, instalatory programów, sterowniki, czy wreszcie same programy - wszystkie zostawiają w rejestrze ślady po swoim użytkowaniu. Przykładowo instalatory zapisują tam często informacje takie jak ścieżka w której została zainstalowana aplikacja, jej wersja, ścieżka do aplikacji deinstalującej, ścieżka do pliku z raportem instalacji - wszystko dlatego aby użytkownik mógł łatwo usunąć program przez aplet "Dodaj/Usuń programy" Panelu sterowania.
Nierzadko, producenci oprogramowania, tworząc kompilację instalacji nie dodają do niej informacji o tym gdzie program zapisuje swoje ustawienia w rejestrze systemu, przez co później, przy deinstalacji programu, aplikacja deinstalująca nie usunie tych wpisów.
Paradoksalnie, nawet jeśli twórca instalatora doda taką informacje do kompilacji instalacyjnej, przy usuwaniu aplikacji, często z winy samych użytkowników, w rejestrze pozostają nichciane wpisy skutecznie zwiększając jego objętość. Co złego robią użytkownicy? Tu pojawia się odpowiedź na pytanie - dlaczego należy korzystać z deinstalatora aplikacji (jeśli jest on dołączony)?
Użytkownicy którzy usuwają programy, usuwając po prostu folder w którym są przechowywane nie dają możliwości programowi deinstalacyjnemu na usunięcie niepotrzebnych już wpisów w rejestrze, przez co objętość rejestru rośnie, w miarę użytkowania systemu, skutecznie go spowalniając.
Nasuwa się pytanie, co możemy zrobić by zmniejszyć objętość rejestru? Zarówno użytkownicy którzy korzystają z deinstalatorów, jak i Ci drudzy, korzystający z klawisza Delete, mają problem ;) Przy czym ci pierwsi mają mniejszy problem niż Ci drudzy ;)
Sprawdźmy więc jak duży jest twój rejestr. Aby to uczynić będziemy musieli zrobić jego obraz (kopię) i zapisać ją na dysk. Do tego celu potrzebna nam będzie systemowa konsola (wiersz poleceń), lub okienko "Uruchom". Wpisujemy takie oto magiczne polecenie (które będzie objaśnione w dalszej części artykułu: regedit /e c:\kopia.reg Po wykonaniu tego polecenia, na dysku C: zostanie zapisana kopia rejestru w postaci pliku z rozszerzeniem .reg. Teraz łatwo już sprawdzić ile zajmuje nasz rejestr. Taaak... u mnie 92MB. Pora go oczyścić! Jest mnóstwo programów do oczyszczania rejestru, osobiście korzystam z usług aplikacji EasyCleaner firmy ToniArts, jednak wbrew powszechnej opinii nie jest ona najlepsza pod względem skuteczności. Powiem więcej, jest jedną z najmniej skutecznych aplikacji w swojej dziedzinie - ma jednak kilka innych opcji do których przywykłem (jak obrazowanie objętości katalogów i plików na dysku w postaci wykresu kołowego, bardzo przydatna rzecz). Aplikacje tego typu usuwają nieużywane gałęzie pozostawione przez odinstalowane programy, kodeki czy sterowniki, ścieżki do ostatnio otwieranych dokumentów, listy ostatnio wpisywanych poleceń, itp... .
Poniżej lista kilku aplikacji spisujących się nieco lepiej niż popularny EasyCleaner:

  • RegVac (shareware) - w pełni funkcjonalna wersja shareware niezwykle denerwującego programu RegVac wydającego mnóstwo dźwięków przy wyszukiwaniu zbędnych wpisów. Progam jest jednak skuteczny, znalazł blisko 13 razy więcej śmieci niż EasyCleaner

Eksport i import rejestru do/z pliku

Tabela 1.3 - Parametry programu regedit.exe
Parametr Opis
regedit /e c:\kopia.reg Exportuje rejestr do pliku
regedit /c c:\kopia.reg Importuje rejestr z pliku.

Tak, należą się małe wyjaśnienia. Otóż parametry dodane do instrukcji regedit odpowiadają określonym czynnościom:

Parametr Instrukcja (do parametru) Czynność /e	Ścieżka docelowa określająca katalog i nazwę pliku kopii rejestru

Może ona być następująca: C:\Rejestry\7.10.2001.reg, gdzie '7.10.2001' to data jego stworzenia (Ja tak właśnie nazywam kopie, ponieważ łatwiej jest mi określić kiedy została stworzona i jakie zawiera informacje). Może to być na przykład inna nazwa (byle bez spacji - dotyczy systemów Win9x - spacje utrudniają przywrócenie rejestru spod systemu DOS), np. 'moja_kopia.reg'. Parametr /e dodaje się do słówka regedit by zapisać kopię rejestru (wyeksportować) do innego pliku. Po tym parametrze następuje ścieżka do pliku, który będzie stworzony.
/c Parametr ten importuje wyeksportowaną wcześniej kopię rejestru. Możemy go użyć np. regedit /c C:\Rejestry\7.10.2001.reg, co oznacza import pliku określonego przez ścieżkę do rejestru. Parametr /c dodaje się do słówka regedit by odczytać zapisaną wcześniej kopię rejestru. Po tym parametrze następuje ścieżka do pliku, który będzie odczytany.
Podsumowując powyższą tabelę - możemy powiedzieć że: dodanie parametru /e do słówka regedit spowoduje zapisanie kopii rejestru w danym katalogu, natomiast dodanie parametru /c spowoduje wczytanie kopii rejestru z danej lokalizacji i wprowadzenie informacji do rejestru.
W szczególnych przypadkach, gdy Rejestr jest tak uszkodzony, że nie można uruchomić środowiska graficznego, można uruchomić Edytor Rejestru pod kontrolą MS-DOS. Nie jest on, co prawda, wygodny, ale pozwala wyeksportować dane, poprawić je w edytorze tekstu i zaimportować z powrotem. Dla zabezpieczenia się przed popełnionymi wcześniej błędami moża skorzystać nawet z opcji utworzenia Rejestru od nowa.
Składnia polecenia uruchamiającego Edytor pod DOS-em jest następująca:
regedit [/L:system] [/R:user] pliki dołączane regedit [/L:system] [/R:user] /E nowy_plik.reg [klucz] regedit [/L:system] [/R:user] /C nowy_rejestr.reg Poszczególne parametry oznaczają: /L:system - położenie pliku SYSTEM.DAT, /R:user - położenie pliku USER.DAT, pliki dołączane - pliki, których zawartość chcemy dołączyć do Rejestru, /E nowy_plik.reg - nazwa pliku, do którego Rejestr ma być wyeksportowany, klucz - klucz, który ma być wyeksportowany (pominięcie powoduje eksport całości), /C nowy_rejestr.reg - plik, z którego nowy Rejestr ma być utworzony.

Naprawa błędów rejestru w systemach rodziny Windows 9x

Komenda: scanreg /fix załatwia za nas kupę roboty, mianowicie uruchamia program, który skanuje rejestr i naprawia w nim błędy. Dokładniej mówiąc - sprawdza strukturę rejestru i w razie konieczności przebudowuje go. Program usuwa błędne zapisy i puste bloki danych, co w znacznym stopniu oddziałuje na objętość rejestru, a także na szybkość działania systemu Windows.

Sztuczki z Rejestrem

Windows przechowuje w rejestrze mnóstwo danych, również dane które nie są dostępne (w celu modyfikacji) z poziomu interfejsu systemu. W rejestrze zmienić można wszystko do czego mamy dostęp (Tak! Tu również musimy mieć dostęp do gałęzi aby coś w niej zmienić). Podam teraz kilka przykładów ciekawych modyfikacji pozwalających np. zablokować dostęp właściwości ekranu, a nawet edytora rejestru. Uruchom edytor rejestru (Start/Uruchom lub wciśnij klawisz Windows+R) i wpisz "regedit". Pamiętaj, że aby zmienić jakieś ustawienie systemu przeważnie wystarczy zmienić wartość z 0 na 1. Poniższe wskazówki dotyczą systemów z rodziny Win9x, jednak niektóre z nich powinny zadziałać na systemach z rodziny NT.
Jeśli nie jesteś użytkownikiem systemu Windows 9x, przejdź do zakończenia artykułu w celu uzyskania informacji o umiejscowieniu poszczególnych opcji w rejestrze.

(U siebie nie znalazłem poniższego klucza (Win 98 SE).)

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System

NoDispCPL -- wyłączenie dostępu do właściwości ekranu.
NoDispBackgroundPage -- wyłączenie dostępu do zakładki właściwości ekranu Tło.
NoDispScrSavPage -- wyłączenie dostępu do zakładki właściwości ekranu Wygaszacz ekranu
NoDispAppearancePage -- wyłączenie dostępu do zakładki właściwości ekranu Wygląd.
NoDispSettingsPage -- wyłączenie dostępu do zakładki właściwości ekranu Ustawienia.
NoSecCPL -- wyłączenie dostępu do arkusza właściwości Hasła.
NoPwdPage -- wyłączenie dostępu do zakładki Zmień hasło arkusza Hasła.
NoAdminPage -- wyłączenie dostępu do zakładki Zdalne administrowanie arkusza Hasła.
NoProfilePage -- wyłączenie dostępu do zakładki Profile użytkownika arkusza Hasła.
NoDevMgrPage -- wyłączenie dostępu do zakładki Menedżer urządzeń arkusza System.
NoConfigPage -- wyłączenie dostępu do zakładki Profile sprzętu arkusza System.
NoFileSysPage -- wyłączenie dostępu do arkusza właściwości System plików.
NoVirtMemPage -- wyłączenie dostępu do arkusza właściwości Pamięć wirtualna.
DisableRegistryTools -- wyłączenie dostępu do Edytora Rejestru (UWAGA!!! Jeśli wyłączysz sobie dostęp do rejestru, później trudno będzie zmienić z powrotem tę wartość).


HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Network

NoNetSetup -- wyłączenie dostępu do właściwości sieci.
NoNetSetupIDPage -- wyłączenie dostępu do zakładki właściwości sieci Identyfikacja.
NoNetSetupSecurityPage -- wyłączenie dostępu do zakładki właściwości sieci Kontrola dostępu.
NoFileSharingControl -- brak kontroli nad współużytkowaniem plików.
NoPrintSharingControl -- brak kontroli nad współużytkowaniem drukarek.
NoEntireNetwork -- brak folderu Cała sieć
NoWorkgroupContents -- brak składników grup roboczych w Otoczeniu sieciowym.


HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

NoPrinterTabs -- ukrycie zakładek Ogólne i Szczegóły arkusza właściwości drukarki.
NoDeletePrinter -- brak możliwości usuwania drukarek.
NoAddPrinter -- brak możliwości dodawania drukarek.
NoStartMenuSubFolders -- ukrywa podfoldery menu Start.
NoRun -- brak polecenia Uruchom
NoSetFolders -- brak polecenia Ustawienia w menu Start.
NoSetTaskbar -- brak właściwości paska zadań.
NoFind -- brak polecenia Znajdź.
NoDrives -- brak dostępu do dysków lokalnych (uaktywnienie wymaga podania wartości binarnej zawierającej tyle jedynek, ile kolejnych liter dysków ma zostać ukrytych).
NoNetHood -- brak dostępu do otoczenia sieciowego.
NoDesktop -- brak pulpitu.
NoClose -- brak możliwości zamknięcia Windows.
NoSaveSettings -- wyłączone zachowywanie ustawień przy wyjściu.
RestrictRun (klucz) -- lista dozwolonych aplikacji.

Linki do innych artykułów o tej tematyce

Zakończenie

Systemowy rejestr to olbrzymia baza danych, w której trudno się połapać. Mam nadzieję jednak, że ten artykuł nieco rozjaśnił Wam jego postrzeganie. Obiecałem jeszcze skarb dla użytkowników, którzy nie odnaleźli dla siebie wskazówk w poprzednim paragrafie. Otóż, dawno temu znalazłem cyfrowy przewodnik po rejestrze systemowym (Registry Guide for Windows), opublikowany przez Microsoft. Chciałbym się nim z Wami podzielić. Zarówno użytkownicy systemów rodziny Win 9x jak i systemów z rodziny NT znajdą tam wszystie udokumentowane możliwości modyfikacji zachowania systemu. Prawdziwy skarb!

Dodawanie nowego komentarza
Komentarz
nick:
e-mail (nie będzie widoczny):
Anty-spam (zaznacz):
Komentarze czytelników
Brak komentarzy
Nie ma jeszcze żadnych komentarzy. Jeśli chcesz, wyraź pierwszy swoje zdanie na temat tego artykułu.

Łukasz "Lukas" Wyporek
lukas.home.page@gmail.com

Dexter
Czytelniku! Pomóż
rozruszać dyskusję!