Windows-Registrierungsdatenbank

Aus Kefk

Wechseln zu: Navigation, Suche

Die Windows-Registrierungsdatenbank, auch bekannt als Registrierung (von englisch Registry), ist seit der ersten Version von Windows NT die zentrale, hierarchische Konfigurationsdatenbank des Betriebssystems Microsoft Windows. Hier werden sowohl Informationen von Windows selbst als auch Informationen von Programmen gespeichert. Mit Windows 95 wurde die Registry auch im Bereich der Consumer-Betriebssysteme eingeführt.

Die Begriffe Registrierungsdatenbank und Registrierdatenbank sind im Deutschen ebenfalls üblich.


Inhaltsverzeichnis

Aufbau und Struktur

Bei der Registrierung handelt es sich nicht um Dokumente, sondern um benutzerdefinierte Optionen, die es dem Betriebssystem und entsprechend angepassten Anwendungsprogrammen erlauben, sich dem Benutzer dynamisch anzupassen. Unter solche Informationen fallen u. a. das Layout eines Programmes (wie z. B. die bevorzugte Fensterposition).

Registrierungs-Einträge werden in so genannten „Schlüsseln“ (engl. „keys“) angelegt, die alle von einigen Hauptschlüsseln abstammen (siehe dazu weiter unten). Das von Microsoft mitgelieferte Werkzeug „RegEdit” lässt sich in der Kommandozeile über den Befehl „regedit“ starten. Allerdings sollte man dabei extrem vorsichtig sein und nur etwas verändern, wenn man sich seiner Sache absolut sicher ist, da man durch unüberlegte Änderungen die Funktionalität des gesamten Betriebssystems beeinträchtigen kann.

Die Registrierung besteht aus zwei Teilen: Der erste Teil umfasst Konfigurationsdaten für die gesamte Windows-Installation, der zweite Teil beinhaltet alle benutzerspezifischen Informationen und Einstellungen. Die in der Registrierungsdatenbank gespeicherten Daten enthalten alle variablen Informationen des Betriebssystems, wie zum Beispiel Größe und Name der Auslagerungsdatei, Einstellungen für den Windows-Explorer, die gesamte COM-Registrierung (Klassen und Typenbibliotheken), Einstellungen für diverse Programme, Treibereinstellungen und die Hardwarekonfiguration.

Übersicht der Schlüssel

Die Registrierungsdatenbank ist in fünf Hauptschlüssel unterteilt:

Übersicht der Hauptschlüssel der Registry
Schlüsselname Abkürzung Berechtigungen (*) Beschreibung
HKEY_CLASSES_ROOT HKCR   Zusammenführung von HKEY_LOCAL_MACHINE\Software\Classes und HKEY_CURRENT_USER\Software\Classes. Hier werden Informationen über die verschiedenen COM-Objekte sowie Dateitypen gespeichert. Darunter fallen die Beschreibung, das Symbol und die verknüpfte Anwendung.
HKEY_CURRENT_USER HKCU Admins: Vollzugriff, User: Vollzugriff (auf eigenen) Verknüpfung auf das Benutzerprofil des aktuell angemeldeten Benutzers unter HKEY_USERS.
HKEY_LOCAL_MACHINE HKLM Admins: Vollzugriff, User: nur Lesen Hier werden von allen Benutzern geteilte Einstellungen und Informationen gespeichert.
HKEY_USERS HKU Admins: Vollzugriff, User: Zugriff nur auf eigenes Enthält den Stamm aller Benutzerprofile auf dem Computer. Hier werden Einstellungen und Informationen gespeichert, die nur für den jeweiligen Windows-Benutzer gelten.
HKEY_CURRENT_CONFIG HKCC Admins: Vollzugriff, User: Keiner Verknüpfung auf das aktuell verwendete Hardwareprofil unter HKEY_LOCAL_MACHINE.
HKEY_DYN_DATA keins (nur Windows 9x, NT) Enthält Laufzeitdaten für den Performance-Monitor
(*) Stark vereinfacht, ohne Ausnahmen (z. B. auf HKCU\Policies hat ein User nur Leserechte) und nur die zwei Standard-Typen „Admins“ (mit Adminrechten) und „User“ (ohne Adminrechte) aufgelistet.

Die in der Tabelle kursiv ausgezeichneten Schlüssel sind nicht real existent, sondern lediglich Verknüpfungen zu anderen Schlüsseln. Die Abkürzung HKEY, welche die Namen der Hauptschlüssel einleitet, steht für „handle to key“. Das „H“ von „HKEY“ steht oft auch für „hive“ (im Sinne eines Bienenstocks oder für das engl. Wort für „Zweig“).

HKEY_CLASSES_ROOT

Unter diesem Hauptschlüssel befindet sich für jeden registrierten Dateityp ein Unterschlüssel. Dieser wiederum kann eine Reihe weiterer Unterschlüssel wie zum Beispiel „ShellEx”, „ShellNew”, „OpenWithList” und viele mehr enthalten. Auch kann dieser Unterschlüssel Werte haben. Ein sehr häufig benutzter Wert ist hierbei „Content Type”, wo der Inhaltstyp der Datei festgelegt wird. Dieser kann zum Beispiel „text/plain” sein, was eine reine Textdatei kennzeichnet, oder zum Beispiel „image/jpeg”, was eine JPEG-Bilddatei kennzeichnen würde. Beim Standardwert des Unterschlüssels steht unter Umständen auch ein Klassenname. Dieser Klassenname kennzeichnet einen weiteren Unterschlüssel von HKCR mit weiteren Informationen. Einer der wichtigsten Unterschlüssel von HKCR ist „CLSID” (Class ID). Hier befinden sich viele Unterschlüssel mit GUIDs der registrierten COM-Klassen und -Typenbibliotheken. Bei einer COM-Klassen gibt es im Normfall entweder den Unterschlüssel „InprocServer32” oder „LocalServer32”, je nachdem, ob es sich um einen In-Process-Server handelt oder nicht. Dieser Unterschlüssel enthält als Standardwert den Dateinamen der COM-Bibliothek, die die Klasse enthält (dies ist meistens eine DLL-Datei). Der Unterschlüssel „ProgID” gibt die Prog-ID der Klasse an (zum Beispiel „ADODB.Recordset”), die beispielsweise in VBScript verwendet wird um eine Instanz der Klasse anzulegen.

HKEY_CURRENT_USER

Der Hauptschlüssel HKEY_CURRENT_USER wird auch als "HKCU" abgekürzt und enthält die benutzerspezifischen Konfigurationsdaten für den aktuell angemeldeten Benutzer. Ein bedeutender Unterschlüssel ist „Software”, welcher benutzerbezogene Anwendungseinstellungen enthält: die installierten Anwendungsprogramme legen ihre Konfiguration – oder zumindest einen Teil davon – in diesem Unterschlüssel ab. Der Unterschlüssel „Software” enthält dabei für jeden Softwarehersteller einen eigenen Unterschlüssel. So gibt es beispielsweise einen Unterschlüssel „Microsoft”, der wiederum einen Unterschlüssel „Windows” besitzt, der wiederum einen Unterschlüssel „CurrentVersion” hat, der wiederum einen Schlüssel „Run” hat. Dieser enthält eine Liste aller Anwendungen, die nach erfolgter Anmeldung des Benutzers ausgeführt werden sollen.

HKEY_LOCAL_MACHINE

Dieser Hauptschlüssel enthält alle computerspezifischen Einstellungen. Er wird auch als "HKLM" abgekürzt. Der Unterschlüssel „Software“ ähnelt von der Struktur her „HKCU”. Auch hier gibt es einen Unterschlüssel „SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, der jedoch alle Anwendungen enthält, die nach dem erfolgreichen Anmelden jedes Benutzers auf diesem Rechner ausgeführt werden.

Zum anderen gibt es Schlüssel wie „SYSTEM“, die die Konfiguration des Betriebssystems als solches enthält, inkl. Geräte-Manager-Einstellungen und die Windows-Dienste-Konfiguration.

HKEY_USERS

Dieser Hauptschlüssel enthält die benutzerspezifischen Konfigurationsdaten aller Benutzer, die sich bisher auf dem System angemeldet haben. Die Konfigurationsdaten werden nur beim Anlegen jedes Benutzers aus HKEY_USERS in den benutzerspezifischen Hauptschlüssel HKEY_CURRENT_USER kopiert.

Von .ini zur Registry

Bevor sich das Konzept der Registry durchgesetzt hatte, wurden Parameter in separaten Dateien für jedes einzelne Programm in dessen Verzeichnis gespeichert. Einige Programmierer verwenden diese Technik bis heute oft aus Gewohnheit, zum Zwecke der Portierbarkeit von Software oder aufgrund der Tatsache, dass sie die Windows-Registry nicht "zumüllen" wollen. Diese Dateien haben häufig das Dateiendungskürzel .ini. Diese Dateien lassen sich unproblematisch mit jedem Texteditor öffnen und verwalten, und müssen nicht einer riesigen, hierarchischen Struktur, wie sie in der Registry existiert, folgen.

Vor- und Nachteile

Vorteile gegenüber INI und XML-Dateien

  • Sehr performant - Da es eine indizierte Datenbank ist und z. B. Zahlen als Zahlen und nicht als Textstrings gespeichert werden, ist das Auslesen und das Speichern wesentlich schneller als das Speichern in eine INI-Datei oder eine XML-Datei.
  • Schritte sind einfach zu erklären für den Computerunversierten - Dadurch, dass der Aufruf und die Schlüsselnamen global auf der Welt gleich sind, es also völlig unabhängig von Sprache des Betriebssystems, Art (inkl. NT und 9x-Serien), Ort der Windows-Installation und Upgrade-Pfad ist, ist eine eindeutige Beschreibung zur Vorgehensweise möglich. Diesen Vorteil hat keine andere Methode, da es alleine bei der Suche der INI- oder XML-Datei sehr viele Fallunterscheidungen gibt, und dann noch das Format mit den Abschnitten einigermassen verstanden werden muss. Zudem kann man dem Computerunversierten eine .REG-Datei machen, die ihm genau das ausführt, bei Doppelklick.
  • Klare Trennung zwischen Computer- („HKEY_LOCAL_MACHINE“) und Benutzereinstellungen („HKEY_CURRENT_USER“), durch Default-Sicherheitseinstellungen auch korrekt implementiert.
  • Für Administratoren können Teilinformationen leicht „ausgerollt“ werden, durch Einsatz von .REG und .ADM-Dateien. Beides ist sehr performant und überschreibt dabei keine explizit angegebenen Informationen. Für INI- und XML-Dateien gibt es keine solche Tools bei Windows. Durch Dritthersteller ist es aber auch bei diesen relativ einfach möglich, solche "Rollouts" durchzuführen.
  • Wenn eine Software die Registry sauber einsetzt, funktionieren alle Features von Windows sauber, wie z. B. die servergespeicherten Profile (Benutzer hat überall in der Firma die gleichen Einstellungen) und Benutzerrechte (Benutzer kann dann seine Einstellungen ändern, nicht aber Systemeinstellungen).
  • Es ist einfach skriptbar, auch das Übernehmen von Einstellungen von einem PC zum nächsten ist automatisiert mittels Batchdateien möglich (mittels einem „regedit /e“-Befehl zum Exportieren und einem „regedit /s“-Befehl zum Importieren), welche dann auf jedem Windows-Betriebssystem ab Windows 95 und Windows NT 4.0 ohne Beachtung von Installationspfad, Betriebssystemssprache, etc. funktionieren.
  • Änderungen an Schlüsseln und Werten, die von Programmen gemacht werden, kann mittels Tools wie RegMon „live“ aufgezeichnet werden. Ebenso kann das Auslesen eines Schlüssels mit diesem Tool jederzeit mitverfolgt werden. Dies ist zur Diagnose, aber auch zur netzwerkweiten automatischen Vorgabe von Einstellungen sehr nützlich. Bei INI- und XML-Dateien wäre ein Vergleich von Vorher- und Nachherzustand notwendig, also das vorherige Speichern der Vorversion der Datei, um herauszufinden, was sich geändert hat, da ein entsprechendes Live-Tool wie FileMon nur die Tatsache feststellen kann, dass die Datei (und welche) verändert wurde.
  • Der größte Vorteil der Registry ist, dass verschiedene Programme auf dieselben Registry-Einträge zugreifen können. Dadurch kann die Kommunikation zwischen verschiedenen Programmen stark vereinfacht werden.

Nachteile

  • Die Registry ist proprietär. Das Übertragen von Anwendungseinstellungen von Windows zu anderen Betriebssystemen ist daher nur möglich, wenn z. B. der Programmautor eine Import-/Exportfunktion der Einstellungen anbietet.
  • Die Struktur der Registry ist nicht stark genug ausgeprägt. So ist es für Programme (durch die Default-Rechte des Benutzers) problemlos möglich, alle Teile der Registry zu modifizieren (auch Systemeinstellungen und Einstellungen von Benutzern, die gar nicht angemeldet sind).
  • Es ist nicht möglich, eine ausführlichere Dokumentation der von einer Anwendung verwendeten Werte direkt zu hinterlegen. Dies müsste in einem losgelösten Dokument (z. B. als README-Textdatei oder als HTML-Datei) geschehen, wenn der Autor die möglichen Werte dokumentieren will. In INI-Dateien kann dies durch als Kommentar markierte Zeilen (Semikolon als erstes Zeichen der Zeile) direkt „vor Ort“ geschehen.
  • Das Zugreifen auf die Registrierung eines nicht laufenden Systems ist mühsam. Das erschwert z. B. das Reparieren einer Windows-Installation mit einer Boot-CD oder einem parallel installierten Windows-Betriebssystem (s. u.).
  • Eine sehr starke System-Bindung – das heisst, jedes Programm, welches seine Daten (wie beispielsweise Nutzer-Einstellungen) in der Windows-Registrierung speichert, ist damit automatisch vom jeweiligen Rechner abhängig, was eine Portierung von einem Rechner auf einen anderen (z.B. neueren) Rechner sowie auch von einem Betriebssystem zu einem anderen Betriebssystem sehr stark erschwert und zum Teil sogar unmöglich macht (siehe auch Softwaremigration).
  • Es besteht allgemeinhin auch das Problem, dass durch starke Benutzung der Registry (das Eintragen von vielen Werten) das System unnötig schwer belastet werden kann. Dadurch kann das System insgesamt (bei zu wenig Arbeitsspeicher) langsamer und (bei fehlerhafter Implementierung) instabiler werden, da die Registry vollständig im Hauptspeicher gehalten wird und Windows im laufenden Betrieb sehr viele Zugriffe auf diese ausführt. Viele Softwareentwickler, welche bereits vor der Einführung der Registry zu programmieren angefangen haben, versuchen deshalb, die Registry nur dann zu nutzen, wenn dies wirklich erforderlich ist.

Zugriff auf die Registrierungsdatenbank eines nicht laufenden Systems

Der Zugriff von einem parallel installierten Windows-Betriebssystem auf die Registrierung einer anderen Installation ist, dank dem bei Windows mitgelieferten Tool "RegEdit" relativ einfach möglich:

  • regedit starten (regedt32 bei Windows NT und 2000)
  • Schlüssel HKEY_LOCAL_MACHINE auswählen
  • Im Menü Datei Struktur laden wählen (dieser Menüpunkt ist nur anwählbar, wenn HKEY_LOCAL_MACHINE oder HKEY_USERS direkt angewählt sind)
  • Die gewünschte Datei aus dem Verzeichnis system32\config des anderen Betriebssystemes auswählen, z.B. „software“ für Zugriff auf HKEY_LOCAL_MACHINE\Software
  • Eine Bezeichnung angeben, z. B. Software2; die Bezeichnung wird als neuer Schlüssel unter HKLM verwendet und darf daher nicht einem vorhandenen, wie „software“ oder „system“ entsprechen
  • Zugriff auf die Einstellungen via „HKEY_LOCAL_MACHINE\Software2“ (in diesem Beispiel)

Die so geladene Struktur ist im ganzen System verfügbar, also ein tatsächlicher Bestandteil der Registrierung, nicht nur des Registrierungseditors. Sie muss ebenso manuell wieder entladen werden.

Bearbeiten der Rechte in der Registrierungsdatenbank

Nicht nur die Einträge in der Windows-Registrierungsdatenbank, sondern auch die mit den Einträgen gekoppelten Rechte sind bedeutsam.

Eine Fehlermeldung wie: „Ein Ereignis konnte keinen Abonnenten aufrufen.“, mit der Fehlernummer 0x80040201 beim Aufruf von „msiexec /regserver“ oder die Fehlermeldung „Zugriff verweigert“ mit der Fehlernummer 0x80070005 beim Versuch Software zu installieren können darauf hindeuten, dass die Zugriffsrechte auf die Registrierungsdatenbank unzureichend gesetzt sind.

Zur Überprüfung können die Programme regedit und regmon eingesetzt werden. Zum Bearbeiten bzw. Korrigieren der Rechte kann neben regedit auch das SubInACL-Werkzeug eingesetzt werden.

Ein Beispiel:

Eine Software wie ein ServicePack oder Programmpaket kann nicht installiert werden. Das Logfile des Setups der Software oder ein PopUp-Fenster mit „Zugriff verweigert“ deutet darauf hin, dass es am WindowsInstaller (MSI) liegt.

WindowsInstaller-KB893803-v2-x86.exe /passive /norestart /log:c:\msifile.log macht das Problem deutlich:

DoRegistryUpdates:UpdSpInstallFromInfSection Failed for MSI.Reg.Install: 0x5

Also kann der WindowsInstaller nicht korrekt in die Registry schreiben.

Abhilfe könnte das SubInACL tool schaffen.

  • Download das SubInACL tool von Microsoft. Installation mit der alten

MSI-Version: D:\dump\ms> msiexec /i subinacl.msi

In einem cmd tippe:

  • D:\dump\ms> cd /d „%ProgramFiles%\Windows Resource Kits\Tools“
  • C:\Programme\Windows Resource Kits\Tools> notepad reset.cmd

um im Install-Verzeichnis reset.cmd zu erzeugen mit folgendem Inhalt:

  • subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f
  • subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f
  • subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f
  • subinacl /subdirectories %SystemDrive% /grant=administrators=f
  • subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=system=f
  • subinacl /subkeyreg HKEY_CURRENT_USER /grant=system=f
  • subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=system=f
  • subinacl /subdirectories %SystemDrive% /grant=system=f

Nach Speichern rufe dieses reset.cmd auf und warte einige Minuten. Nach erfolgreichem Abschluss dieses cmd-batchjobs sind alle Rechte in der Windows-Registrierungsdatenbank (sowie auf dem System-Laufwerk) so, dass ein „Zugriff verweigert“-Fehler unwahrscheinlich ist, und eine Installation mit Erfolg abschließt.

Bearbeitungsmöglichkeiten

Die Registry kann mit den Windows-eigenen Registrierungseditoren regedit (bei Windows NT, Windows 2000, Windows XP und Windows Server 2003 auch regedt32) bearbeitet werden oder über das Kommandozeilentool reg, das für Windows 2000 im Resource Kit enthalten ist, seit Windows XP in der Betriebssystem-Installation selbst enthalten ist.

Regedit beinhaltet nur sehr grundsätzliche Funktionen. Man kann Schlüssel und Werte anlegen, bearbeiten und löschen sowie Teile der Registrierung exportieren und wieder importieren. Auf jeden Fall sollte man bei Änderungen in der Registrierungsdatenbank vorsichtig sein, da man unter Umständen die Konfiguration soweit instabil machen kann, dass das Betriebssystem nicht mehr gestartet werden kann. Man kann dann nur unter erheblichem Aufwand versuchen, entweder die zuletzt als funktionierend bekannte Konfiguration zu verwenden oder eine eventuell vorhandene Sicherung wiederherzustellen. Diese Aufforderung zur Vorsicht ist allerdings auch nicht zu übertrieben zu nehmen, da nur sehr wenige Schlüssel dies auslösen können, die praktisch ausschliesslich im HKEY_LOCAL_MACHINE\\System-Hive zu finden sind.

Es gibt auch Programme, mit denen sich gezielt bestimmte Einstellungen in der Registrierung bearbeiten lassen. Ein Beispiel wäre ein Bestandteil von Windows, nämlich das Programm zum Bearbeiten von Dateitypen. Von Microsoft selbst gibt es zum Beispiel das Gratis-Tool „Tweak UI”, mit dem sich bestimmte Einstellungen, die in der Registrierungsdatenbank gespeichert werden, verändern lassen. Dort lässt sich zum Beispiel das von Unix-Konsolen her bekannte und beliebte Autovervollständigen mit der Tab-Taste aktivieren. Natürlich gibt es auch Programme, die sich um den Schutz der Registrierungsdatenbanken vor zerstörerischen Programmen und Spyware kümmern. Eines davon kommt selbst von Microsoft und heißt Windows Defender. Es warnt, falls ein Programm versucht, bestimmte Teile der Registrierungsdatenbank zu verändern.

Von Drittherstellern werden teilweise auch kommerzielle Produkte angeboten, die ein Bearbeiten der Registry einfacher machen sollen, indem sie beispielsweise zu bearbeitende Schlüssel nach Kategorien ordnen.

Es ist auch möglich bereits existierende Registrierungs-Benutzerprofile nachträglich anzupassen. Dies ist jedoch ein recht aufwendiges Unterfangen, da die Unterordner unter „HKEY_USERS“ passend bearbeitet werden müssten. Es gibt auch die Möglichkeit die Profile zu „laden“ und dann zu bearbeiten. Ein Ändern der Einstellungen des Systembenutzers (ab Windows 2000) unter „HKEY_USERS\.DEFAULT“ gilt auch nur für diesen und hilft hier nicht weiter. Ein Ändern des „Default-Profiles“ für neue Benutzer hilft hier auch nicht. Allerdings kann ein Administrator ein Loginskript für die Benutzer definieren, wo die gewünschten Änderungen dann beim nächsten Login angewandt werden. Das Einstellen eines Loginskripts ist dabei für jeden (gewünschten) Benutzer vorzunehmen, manuell oder durch ein entsprechendes Tool, das dieses unterstützt.

Seit dem Erscheinen der Windows PowerShell gibt es eine weitere sehr einfache Möglichkeit die Registry zu verwalten. Dabei kann man auf die Registry direkt über die Konsole oder durch ein Shellskript wie auf ein herkömmliches Laufwerk zugreifen. Dazu gibt man beispielsweise cd HKLM: ein, um auf den Hauptschlüssel HKEY_LOCAL_MACHINE zugreifen zu können. Zu den Unterschlüsseln gelangt man ebenfalls über den Befehl cd oder in der Langform Set-Location. Der Befehl Get-ItemProperty . zeigt alle Eigenschaften (Registry-Einträge), die für den aktuellen Registryschlüssel gespeichert sind. Auf diese Weise lassen sich beispielsweise durch Eingabe der folgenden Befehlsfolge in der PowerShell alle Einträge des Run-Schlüssels anzeigen:

cd HKLM:
cd software\microsoft\windows\currentversion\run
Get-ItemProperty .

REGEDIT versus REGEDT32

REGEDT32 ist der ursprüngliche Registry Editor auf Win32-basierten Betriebssystemen und war unter Windows NT 3.x-Versionen als einziger vorhanden. REGEDIT kam mit Windows 95 dazu, auf der Win9x-Produktlinie war er zudem der einzige mitgelieferte. Windows NT 4.0 und Windows 2000 liefern als einzige Betriebssysteme beide mit. Ab Windows XP wurde REGEDT32 fallen gelassen, d. h. der Aufruf von „regedt32“ startet „regedit“, da ab Windows XP REGEDIT alle Funktionen enthält und REGEDT32 somit obsolet geworden ist.

REGEDIT konnte vor der Windows XP-Version keine Berechtigungen einstellen, zudem konnte er einige Datentypen nicht editieren. REGEDT32 hatte diese Funktionen von Anfang an, hatte aber deutlich geringeren Komfort:

  • Mehrere Fenster, für jeden Hive eins
  • Suchfunktion nur auf den aktuell angewählten Hive anwendbar
  • Keine Kontextmenüs
  • Rechte Anzeige sehr kryptisch, da nicht in Spalten aufgeteilt
  • Allgemein Menüs und Oberfläche sehr viel technischer, demnach kryptischer

Speicherorte auf der Festplatte

Die Daten der Registry werden in mehreren Dateien, sogenannten Hives, in einem speziellen Datenbank-Format auf der Festplatte gespeichert.

Die HKEY_LOCAL_MACHINE liegt bei Betriebssystemen der Windows NT-Linie, also auch Windows XP, in den Verzeichnissen %windir%\System32\Config gespeichert. Windows 9x hingegen speichert den Inhalt dieses Teils der Registry in der Datei system.dat

Die HKEY_CURRENT_USER dagegen ist im Benutzerprofilverzeichnis gespeichert, welches also bei servergespeicherten Profilen in einer Windows-Domäne beim Login netzwerkweit mit übertragen wird. Bei NT-Systemen liegt sie als „ntuser.dat“ in „C:\WinNT\Profiles\Benutzername“ bzw. „C:\Dokumente und Einstellungen\Benutzername“ - je nach Version, Sprache, Installationslaufwerk und evtl. Updatepfad. Bei Windows 9x heisst die Datei user.dat, wenn keine Benutzertrennung aktiviert ist.

Da die Unversehrtheit dieser Dateien essentiell für ein funktionierendes System ist, legt Windows automatisch Sicherungskopien dieser Dateien an. Es kann auch eine Kopie aller Daten, die im Registrierungs-Editor gespeichert sind, durch den Benutzer selbst angefertigt werden.

Fehlt eine Datei, die Bestandteil der HKEY_LOCAL_MACHINE ist, und kann auch die Sicherheitskopie nicht geladen werden, kann Windows nicht mehr starten - eine Fehlermeldung ist die Folge. Aus diesem Problem hilft nur eine Neuinstallation, wenn man nicht die Dateien manuell noch irgendwo gesichert hat und z. B. mit der Recovery Console von Windows 2000 und höher zurückspielen kann.

Fehlt die Datei, die den HKEY_CURRENT_USER-Hive enthält, wird eine neue Datei erstellt, indem eine Vorlage mit Standardeinstellungen reinkopiert wird - diese ist bei Windows-NT-basierten Systemen im Default User-Verzeichnis zu finden. Dies ist z. B. der Fall, wenn der User gerade erst neu angelegt wurde.

Sicherheit

Da mit der Registry auch Optionen wie das Ausblenden des Taskmanagers oder Komponenten der Systemsteuerung vorgenommen werden können, ist es nützlich, die Registry z. B. in großen Netzwerken vor ungewollten Änderungen durch normale Benutzer zu schützen. Dies kann durch die Funktion „Berechtigungen” vorgenommen werden.

Tatsächlich ist dies aber schon getan, wenn das empfohlene Einsatzszenario in Firmen verwendet wird, wo Benutzer keine Administrationsrechte haben. Ohne Administrationsrechte hat man nur Leserechte auf HKEY_LOCAL_MACHINE und Schreibrechte nur auf in HKEY_CURRENT_USER (was die eigenen persönlichen Einstellungen widerspiegelt).

Problematisch ist jedoch, dass Windows-Tools selbst z. T. mit sehr langen Schlüsselnamen schlecht umgehen können und Schadprogramme so Einträge verstecken können. Der Registry Editor kann diese z. B. nicht bearbeiten, Windows jedoch schon.

Für Administratoren wurde die Möglichkeit implementiert, das Ausführen von REGEDIT.exe bei bestimmten Usern zu verhindern:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\SystemDisableRegistryTools
= "dword:00000001"

In diesen Bereich (unterhalb „Policies“) kann ein Standarduser ohne Adminrechte nicht schreiben, die Einstellung kann z. B. durch Gruppenrichtlinien gesetzt werden. Das Vorhandensein dieses Keys verhindert selbstverständlich nicht das Verwenden anderer Tools (sonst würde wohl kein Programm mehr laufen). Wenn man verhindern will, dass bestimmte Keys verändert werden, ist daher der Einsatz der Berechtigungen und dem Einsatz eines Standardusers ohne Adminrechte der einzig sinnvolle Weg.

Verwendet man einen Benutzer mit Adminrechten bei der täglichen Arbeit am Computer, kann natürlich unbeabsichtigt ausgeführte Schadsoftware einen sehr leicht aussperren, indem z. B. durch obigen Key der Registry Editor gesperrt wird. Um ihn so wieder „ins Spiel zu bringen“ muss man diesen Eintrag mit einem anderen Programm zum Bearbeiten der Registry löschen.


Weblinks

Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Windows-Registrierungsdatenbank, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge