Windows NT für Programmierer

Kapitel 8: Die NT-Registry

Überblick

Letzte Änderung: 22.6.98 von B. Tritsch

Zurück zum Inhalt


Registry-Editor

Die NT-Registry ersetzt die noch unter Windows for Workgroups (WfW) und unter Windows 3.1 gebräuchlichen .ini-Dateien mit ihrer fast unüberschaubaren Vielzahl an einstellbaren Parametern durch ein Datenbanksystem. Dies resultierte aus der Tatsache, daß die ini-Dateien eine Reihe von Nachteilen hatten. So bestanden für sie Limits in der Größe, es gab kein Standardlayout, der Zugriff war vergleichsweise langsam und es gab keinen Netzwerkzugriff. Jedoch gab es schon unter Windows 3.1 (nicht NT!) eine Registry, die zur Verwaltung von Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE) und Datei-Manager-Erweiterungen diente. Für Windows NT wurde diese Registry wesentlich ausgebaut und ist jetzt das Herz des Betriebssystems.

Die Registry sorgt für die Verwaltung von Benutzer-, System- und Anwendungseinstellungen. Die Registry-Unterbäume (Hives) haben feste Namen und Bedeutungen. Hierbei ist jeder Hive als Unterbaum der gesamten Registry aufgebaut, in dem sich verschiedenen Schlüssel befinden. Die Schlüssel sind die einzelnen Einträge, denen wiederum Werte zugewiesen werden können.

Zur besseren Übersichtlichkeit wird einzelnen zentralen Registry-Bereichen spezielle Namen und auch Kurzformen zugeordnet, die für die weitere Dokumentation von Registry-Einträgen Verwendung finden sollen.

Mit Hilfe der Registry-Editoren (Regedt32.exe oder Regedit.exe) können auf einer sehr systemnahen Ebene Änderungen an der Registry-Datenbank vorgenommen werden. Die Datenbank kann jedoch auch damit gesichert und wieder ganz oder teilweise rekonstruiert werden. Vorsicht: Eine winzige Änderung in der Registry kann fatale Folgen haben!

Die Registry besteht aus einer Hierarchie, die wie eine Verzeichnisstruktur gegliedert ist. In einzelnen Verzeichnissen können Daten (sogenannte "Werte") oder Schlüssel ("Keys") abgelegt sein, die wiederum auf weitere Schlüssel verweisen. Für jeden Schlüssel wird zusätzlich ein Standardwert (ohne Bezeichnung) angelegt.

Abbildung 8.1: Der Registry-Editor

Standardmäßig sind alle mit Strukturen assoziierten Dateien im Verzeichnis %SystemRoot%\System32\Config untergebracht. Die Einstellung für alle Benutzer befindet sich in einem Verzeichnis namens All Users, die für die jeweiligen benutzerspezifischen Daten in einem entsprechend benannten Unterverzeichnis von %SystemRoot%\Profiles. Die Daten des Default Users dienen als Vorlage zum Erzeugen eines Profils für einen Benutzer, der sich zum ersten mal anmeldet.

Registrierungsstruktur Dateiname
HKEY_LOCAL_MACHINES\SAM Sam, Sam.log, Sam.sav
HKEY_LOCAL_MACHINES\Security Security, Security.log, Security.sav
HKEY_LOCAL_MACHINES\Software Software, Software.log, Software.sav
HKEY_LOCAL_MACHINES\System System, System.alt, System.log, System.log
HKEY_CURRENT_CONFIG System, System.alt, System.log, System.log
HKEY_USERS\.DEFAULT Default, Default.log, Default.sav
(nicht mit einer Struktur assoziiert) Userdiff, Userdiff.log
HKEY_CURRENT_USER Ntuser.dat, Ntuser.dat.log (in den benutzerspezifischen Unterverzeichnissen)

Die Mehrzahl der 32-Bit-Applikationen hinterlassen während ihrer Installation eine Reihe von Einträgen in der Registry (z.B. ca. 70.000 Einträge bei der Installation von MS-Office 97 Professional). Diese finden sich entweder im Hive HKLM für systemglobale Informationen oder im Hive HKCU für benutzerspezifische Informationen. Aus diesem Grund ist die Kontrolle der Registry eine wesentliche Voraussetzung für die Verwaltung von Benutzereinstellungen und Anwendungen.

Haben die Hives HKLM (= All Users) und HKCU (= benutzerspezifische Daten) gleiche Schlüssel, enthalten jedoch abweichende Werte, dann haben die Werte aus HKCU Vorrang. Bei der Installation einer Applikation für alle Benutzer eines NT-Systems ist darauf zu achten, daß die applikationsspezifischen Einträge in die Registry für alle Benutzer (HKLM) eingetragen werden, und nicht für den installierenden Benutzer alleine (HKCU). Dies wird aber dadurch erschwert, daß in der Regel keine Anwenderkontrolle über das Ziel von Registry-Einträgen durch vom Hersteller mitgelieferte Installationsskripts besteht.

Das Speichern und Wiederherstellen von Registry-Einträgen läßt sich mit der GUI-Version von Regedit.exe durchführen. Es gibt hierfür jedoch auch Kommandozeilen-Optionen:

Ein Beispiel für eine .REG-Datei sieht folgendermaßen aus:

REGEDIT4
;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PStat]
"Type" = dword:00000001
"Start" = dword:00000001
"ErrorControl" = dword:00000001
;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PStat\Performance]
"Close" = "CloseP5PerformanceData"
"Collect" = "CollectP5PerformanceData"
"Library" = "p5ctrs.dll"
"Open" = "OpenP5PerformanceData"
;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\p5ctrs]
"EventMessageFile" = "%SystemRoot%\\system32\\p5ctrs.dll"
"TypesSupported" = dword:00000007

Das Sichern und Restaurieren von Registry-Strukturen kann mit den Programmen Regback.exe, Regrest.exe und Regini.exe aus dem Resource Kit geschehen.

Das Resource-Kit-Werkzeug TweakUI gehört zu den sogenannten "Power Toys" und erlaubt die Feineinstellung der Benutzerschnittstelle von Windows NT 4.0 und Windows 95. Hierzu wird ein neues Icon in die Systemsteuerung installiert, über das die TweakUI-Funktionalitäten erreichbar sind. Im Grunde erlaubt TweakUI einen dirketen Zugriff auf jene Registry-Einträge, die im Alltag oft gebraucht werden. Damit stellt es eines jener "Bequemlichkeits"-Werkzeuge dar, die oftmals im Resource Kit zu finden sind und auf die ein Administrator nach einer Weile nicht mehr verzichten möchte.

Abbildung 8.2: Das Resource Kit Werkzeug TweakUI

Zum nächsten Kapitel