Cesta do hlubin Windows aneb lesk a bída registru systému, 1. část

Registr patří mezi často omílané a v mnoha pádech skloňované komponenty operačního systému Windows. Pojďme v první části dvoudílného seriálu poodhalit roušku tajemství, kterou je zahalen, a proniknout do tajů jeho struktury.

Mezi nedílné součásti systému Windows patří registr, jehož kořeny sahají až do dob vzniku Windows 95. Stručně řečeno, jedná se o databázi sloužící k ukládání informací a nastavení jak celého systému, tak jednotlivých uživatelů, jejich aplikací atd. Vždy, když uživatel provede nějakou změnu v systému (například nainstaluje novou aplikaci, přidá nebo naopak odebere nějaký hardware), odpovídajícím způsobem se upraví také registr.

Kontrola je důležitá

Umístění registru na disku počítače se liší v závislosti na používané verzi systému Windows. Příznivci verzí 95 a 98 jej mohou nalézt v souborech SYSTEM.DAT a USER.DAT přímo v adresáři Windows, avšak pozdější verze ukládají informace do souborů v adresáři C:\%WINDIR%\system32\config\, kde %WINDIR% je instalační adresář Windows. Objevíte-li ve svém uživatelském profilu navíc soubor NTUSER.DAT, pak i ten patří do hrstky souborů registru.

Registr má svou vnitřní hierarchickou strukturu, která do značné míry usnadňuje práci s ním. Neoddiskutovatelnou pravdou ovšem stále zůstává, že pro nepříliš pokročilé uživatele se ruční editace může stát noční můrou, na jejímž konci není radostné probuzení, nýbrž v nejhorším případě i reinstalace celého systému. Proto byste při změnách jednotlivých položek měli vždy raději dvakrát zkontrolovat, zda upravujete skutečně to, co jste chtěli.

Základní klíče registru

Prvky registru připomínají klasickou stromovou strukturu (například jako adresáře či složky) a lze je rozdělit na klíče, podklíče a jednotlivé hodnoty. Základní klíče mají následující názvy a význam:

  • HKEY_CLASSES_ROOT. Jedná se o podklíč klíče HKEY_LOCAL_MACHINE\Software a obsahuje především informace o tom, s jakou aplikací jsou které soubory asociovány.
  • HKEY_CURRENT_USER. Obsahuje informace o nastavení pro právě přihlášeného uživatele, například konfiguraci jednotlivých aplikací, seznam některých programů, které se spouštějí ihned po přihlášení, nastavení Ovládacích panelů apod.
  • HKEY_LOCAL_MACHINE. Sdružuje informace o konfiguraci počítače, a to pro všechny uživatele. Jedná se například o nastavení hardwaru, jednotlivých diskových jednotek apod.
  • HKEY_USERS. Obsahuje nastavení jednotlivých uživatelů, včetně takzvané Default varianty, která se použije při prvním přihlášení nového uživatele.
  • HKEY_CURRENT_CONFIG. Obsahuje konfigurační informace o právě používaném hardwarovém profilu.

Jednotlivé hodnoty

Ukládané hodnoty se řadí do tří hlavních typů, a sice STRING, DWORD a BINARY. Prvně jmenovaný typ STRING slouží pro ukládání textových řetězců a poznáte ho snadno tak, že veškeré od něj odvozené typy končí dvojicí písmen SZ.

Hodnoty STRING lze při jemnějším dělení ještě rozdělit na REG_SZ, REG_EXPAND_SZ a REG_MULTI_SZ:

  • REG_SZ. Představuje nejjednodušší řetězec s pevnou délkou a v systémech Windows 95/98/ME také jediný používaný.
  • REG_EXPAND_SZ. Jedná se o rozšiřitelnou řetězcovou hodnotu, která může obsahovat i proměnné uzavřené dvojicí znaků %, takže například %UserName% je proměnná uchovávající jméno přihlášeného uživatele. Systémové proměnné včetně jejich hodnot můžete spravovat na příkazovém řádku pomocí příkazu set nebo v grafické verzi Start / Nastavení / Ovládací panely / Systém / Upřesnit / Proměnné prostředí.

Význam některých proměnných
Proměnná Význam Příklad hodnoty
CD Aktuální adresář C:\gnupg
COMPUTERNAME Název počítače MUJ_KOMPIK
HOMEPATH Úplná cesta k domovskému adresáři právě přihlášeného uživatele \Documents and Settings\Ctenar
OS Typ operačního systému Windows_NT
USERNAME Uživatelské jméno právě přihlášeného uživatele Ctenar
WINDIR Instalační adresář Windows C:\WINNT

  • REG_MULTI_SZ. Jedná se o vícenásobný řetězec, nejčastěji se tento typ používá pro seznamy. Jednotlivé položky mohou být odděleny například mezerami nebo čárkami.

Jak již sám název napovídá, typ BINARY slouží k ukládání binárních dat. Ta jsou zobrazována jako řada po sobě jdoucích dvojic čísel v šestnáctkové soustavě, tedy každá dvojice může nabývat 256 různých hodnot. Důvod zobrazování v šestnáctkové soustavě je nasnadě – zápis čísla ve dvojkové soustavě je příliš dlouhý a díky jediné dvojici v šestnáctkové soustavě lze přehledně reprezentovat 8 bitů najednou.

Také typ DWORD dovoluje ukládat binární data, nicméně oproti popisovaným hodnotám BINARY se v některých vlastnostech odlišuje. Hodnoty typu DWORD mají například omezenou maximální délku, která činí 32 bitů, a ve standardním editoru registru mohou být zobrazeny také desítkově či šestnáctkově.

Pro spuštění Editoru registru, který je dodáván společně se systémem Windows, stačí v nabídce Start / Spustit zadat regedit.exe a potvrdit klávesou Enter. Příznivci grafického rozhraní Windows 98 mohou namísto regedit.exe použít regedt32.exe, přičemž některé rozdíly mezi oběma programy závisejí na verzi použitého operačního systému a shrnuje je následující tabulka.

Některé rozdíly mezi regedit.exe a regedt32.exe
Windows NT/2000
regedit.exe Dovoluje importovat soubory registru (*.reg)
Podporuje rozšířené vyhledávání (klíče, hodnoty, data)
Nachází se v adresáři %WINDIR%
regedt32.exe Používá grafické rozhraní systému Windows 3.11
Nedovoluje importovat soubor registru (*.reg)
Umožňuje vyhledávat pouze názvy klíčů
Nachází se v adresáři %WINDIR%\System32
Windows XP/2003
regedit.exe Nabízí více funkcí než regedit.exe ve Windows NT/2000
regedt32.exe Pouze spouští regedit.exe

Jednoduché ovládání programu

V levé části Editoru registru se nachází stromová struktura reprezentující umístění jednotlivých klíčů, vpravo pak odpovídající data, včetně zobrazení typu a názvu. U hodnot typu DWORD dochází k zobrazení jak v šestnáctkovém formátu, tak v normální desítkové soustavě. Ovládání celého programu je jednoduché a nepotřebuje další vysvětlování.

Ve výše uvedené tabulce byly zmíněny soubory registru, tedy soubory typu *.reg, které dovolují snadno a jednoduše provádět hned několik změn v registru najednou. Jedná se o prostý textový soubor, jehož obsah může vypadat například takto:

REGEDIT4
[HKEY_CURRENT_USER\Testovaci klic]
"Nova hodnota 1"="Toto je textovy retezec"
"Nova hodnota 2"=hex:00,00,0a,32
"Nova hodnota 3"=dword:00000a32

První řádek signalizuje, že se jedná o soubor registru, další řádek pak vytvoří podklíč Testovaci klic v klíči HKEY_CURRENT_USER. Tři následující řádky postupně vytvoří textovou hodnotu s názvem Nova hodnota 1, binární hodnotu s názvem Nova hodnota 2 a konečně hodnotu typu DWORD s názvem Nova hodnota 3. U textové hodnoty se navíc přesněji jedná o typ REG_SZ.

Odstranění existující položky lze jednoduše provést přidáním symbolu ‘-‘ za rovnítko, takže například:

"Nova hodnota 1"=–

zajistí odebrání hodnoty s názvem Nova hodnota 1 z aktuálního klíče. Podobně také při odstraňování celého klíče se používá symbolu ‘-‘, tentokrát ovšem umístěného mezi levou hranatou závorku a název klíče, tedy:

[-HKEY_CURRENT_USER\Testovaci klic]

způsobí vymazání klíče HKEY_CURRENT_USER\Testovaci klic, a to včetně všech jeho případných podklíčů a hodnot v nich obsažených!

Pokud máte vytvořený textový soubor v právě popisovaném formátu, stačí jej uložit s příponou .reg a otevřít v libovolném správci souborů. Po potvrzení přidání nových informací vám bude oznámen úspěch či neúspěch tohoto snažení.

Na řádcích úvodního dílu našeho seriálu byla osvětlena struktura registru systému včetně způsobu základní modifikace. Příští pokračování se již zaměří přímo na programy, usnadňující jeho správu a nabízející širší spektrum možností úprav než Editor registru, který je součástí Windows.

Diskuze (41) Další článek: Nová verze Kerio MailServeru opravuje bezpečnostní chyby

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,