Registrierungsdatenbank

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Systemregistrierung)
Wechseln zu: Navigation, Suche
Registrierungsdatenbank
Logo der Registrierungsdatenbank
Entwickler Microsoft
Aktuelle Version siehe Microsoft Windows
Betriebssystem Windows

Die Windows-Registrierungsdatenbank (auch Windows-Registry oder Windows-Registrierdatenbank) 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 Microsoft Windows 3.1 wurde die Windows-Registry 1992 auch im Bereich der Consumer-Betriebssysteme eingeführt. Während unter den frühen Windowssystemen hauptsächlich Dateierweiterungen gespeichert wurden, handelt es sich bei der Registry seit Windows 95 und Windows NT 4.0 um eine umfassende Datenbank für die Verwaltung des Systems und aller integrierten Systemdienste und -prozesse. Die Registry bietet auch die Möglichkeit, dort die Einstellungen der installierten Anwendungen zentral abzulegen.

Aufbau und Struktur[Bearbeiten]

Registrierungs-Einträge werden in einer Baumstruktur in so genannten „Schlüsseln“ (engl. keys) angelegt, die alle von einigen Hauptschlüsseln abstammen.[1]

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[Bearbeiten]

Auf oberster Ebene ist die Registry eines Arbeitsplatzes in wenige Haupt- bzw. Wurzelschlüssel gegliedert, deren Bezeichnung – pro Windows-Version – fest vorgegeben ist:

Übersicht der Hauptschlüssel der Registry
Schlüsselname Abkürzung Berechtigungen* Beschreibung
HKEY_CLASSES_ROOT HKCR   Informationen über die verschiedenen COM-Objekte sowie Dateitypen. Darunter fallen die Beschreibung, das Symbol und die verknüpfte Anwendung.
Zusammenführung von Unterschlüsseln in HKEY_LOCAL_MACHINE\Software\Classes und HKEY_CURRENT_USER\Software\Classes
HKEY_CURRENT_USER HKCU Admins: Vollzugriff, User: Vollzugriff (auf eigenen) Benutzerprofil des aktuell angemeldeten Benutzers,
Verknüpfung mit Unterschlüssel von 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 aktuell verwendetes Hardwareprofil,
Verknüpfung mit Unterschlüssel von HKEY_LOCAL_MACHINE.
nur Windows 9x, NT:
HKEY_DYN_DATA
keine 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“.

Schlüssel HKEY_CLASSES_ROOT[Bearbeiten]

Unter diesem Hauptschlüssel – kurz „HKCR“ – 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 „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 JFIF-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-Klasse gibt es im Normalfall 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.

Schlüssel HKEY_CURRENT_USER[Bearbeiten]

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”, er enthält benutzerbezogene Anwendungseinstellungen: viele installierte Anwendungsprogramme legen Teile ihrer Konfiguration 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 ausgeführt werden sollen, nachdem der Benutzer sich angemeldet hat.

Schlüssel HKEY_LOCAL_MACHINE[Bearbeiten]

Dieser Hauptschlüssel „HKLM“ enthält alle computerspezifischen Einstellungen. Der Unterschlüssel „SOFTWARE“ ähnelt von der Struktur her dem Unterschlüssel „Software” in „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.

Schlüssel HKEY_USERS[Bearbeiten]

Dieser Hauptschlüssel enthält die benutzerspezifischen Konfigurationsdaten aller Benutzer, die sich gegenwärtig an dem System angemeldet haben. Die Konfigurationsdaten werden nur beim Anmelden des Benutzers aus HKEY_USERS in den benutzerspezifischen Hauptschlüssel HKEY_CURRENT_USER kopiert. Die Namen der Benutzer sind durch eine Security Identifier angegeben. Im Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ werden die Namen aufgelistet.

Speicherort[Bearbeiten]

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

Exportformat[Bearbeiten]

Regdateien sind nicht-aktive Exporte aus der Registry, die in einem Dateiformat (.reg) abgelegt sind. Sie stellen damit eine Schnittstelle zwischen Registry und Dateien dar. Regdateien sind im Textformat und weitgehend vom Menschen lesbar, sofern nur bestimmte Registryschlüsseltypen verwendet werden, insbesondere vom Typ String. Mit dem unten erklärten Werkzeug RegEdit.exe kann man einfach Regdateien exportieren und importieren, auch skriptgesteuert.

Derzeit (2010) gibt es zwei verschiedene Formate von Regdateien, Version 4 und Version 5. Windows 95, seine Verwandten und auch Windows NT 4 unterstützen nur die V4-Regdateien. Alle Betriebssysteme ab Windows 2000 aufwärts verarbeiten nativ die neuere Unicode-basierte Variante, unterstützen aber (bis zumindest Windows 8) die ältere noch.

Manuelle Bearbeitungsmöglichkeiten[Bearbeiten]

Der Standard-Editor RegEdit[Bearbeiten]

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, suchen und löschen sowie Teile der Registrierung exportieren und wieder importieren. Im Allgemeinen ist bei der direkten Manipulation der Registrierungsdatenbank Vorsicht geboten, da hier getätigte Fehler das gesamte System unstartbar zurücklassen können. Das gilt zwar hauptsächlich nur für Schlüssel im Hive HKEY_LOCAL_MACHINE\SYSTEM, und selbst hier nicht für alle; trotzdem können Änderungen von Werten zu unvorhergesehenem Verhalten führen.

Von anderen Herstellern 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. Das ist jedoch ein recht aufwendiges Unterfangen, da die Unterordner unter „HKEY_USERS“ passend bearbeitet werden müssten. Es gibt auch die Möglichkeit, 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.

Änderung der Registry mittels Kommandozeilenparameter per RegEdit und Regdatei[Bearbeiten]

RegEdit lässt sich auch verwenden, um die Registry skriptgesteuert zu verändern. Für Windows 95 gab es leichte Unterschiede, diese werden hier aber mangels Bedeutung nicht spezifiziert.

Exportieren von einzelnen Schlüsseln in eine Regdatei: /e bzw. /E (export).

Beispiel: regedit.exe /e c:\hklm_run.reg  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Mit dem Schalter /e wird in der Regdatei Unicode erzeugt, mit dem Schalter /a ASCII-Code.

Exportieren der kompletten Registry in eine Regdatei (ohne Dialoge, kann sehr lange, sogar im Stundenbereich dauern).

Beispiel: regedit.exe /e c:\komplett.reg

Exportieren von einzelnen Schlüsseln in eine Regdatei älteren Formats (V4) (ohne Dialoge): /a bzw. /A

Beispiel: regedit.exe /a c:\hklm_run.reg  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Importieren einer Regdatei in die Registry (mit Fragedialog):

Beispiel: regedit.exe meinRegfile.reg

Importieren einer Regdatei in die Registry (ohne Dialoge, also still, engl. silent):

Beispiel: regedit.exe /s meinRegfile.reg

Wird dem Schlüssel in der Regdatei ein "-" (Minus) vorangestellt, wird der Eintrag <MeinProgramm> gelöscht.

Beispiel: [-HKEY_CURRENT_USER\Software\<MeinProgramm>]

Wird statts eines Wertes ein "-" angegeben, wird der Wert gelöscht.

Beispiel: "Test"=-

REGEDIT versus REGEDT32[Bearbeiten]

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. Das heißt, der Aufruf von REGEDT32 startet REGEDIT, da ab Windows XP REGEDIT alle Funktionen enthält und REGEDT32 somit obsolet geworden ist.

Vor Windows XP konnte REGEDIT 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 eines
  • 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

Windows PowerShell[Bearbeiten]

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 .

REG.EXE[Bearbeiten]

Ein anderes Windows-eigenes Programm, welches ausschließlich für die Änderung der Registry per Skripten und Batchdateien Verwendung findet, ist REG.EXE. Mit REG.EXE /? erhält man auf der Kommandozeile eine Hilfe für dessen Parameter.

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

In neueren 64-Bit Windows Versionen liegen die Dateien durch das transparente Mappen der Speicherorte für 32-Bit Programme im Verzeichnis %SystemRoot%\Sysnative\config.

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 im Verzeichnis %USERPROFILE%. Bei Windows 9x heißt 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 beispielsweise mit der Wiederherstellungskonsole (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 kopiert wird – diese ist bei Windows-NT-basierten Systemen im Default User-Verzeichnis zu finden. Das ist beispielsweise der Fall, wenn der User gerade erst neu angelegt wurde.

Entwicklungsgeschichte[Bearbeiten]

Vorläufer INI-Konfigurationsdateien[Bearbeiten]

Bevor sich in Windows das Konzept der Registry durchgesetzt hatte, wurden Parameter in Initialisierungsdateien separat für jedes einzelne Programm in dessen Verzeichnis gespeichert. Konfigurationsdateien von älteren Windows-Versionen (bis ca. Windows 3.11) tragen meist das Dateiendungskürzel: .ini, jedoch kommen häufig auch Konfigurationsdateien mit anderen Dateiendungen vor. Sie lassen sich einfach mit jedem Texteditor öffnen und bearbeiten, da es sich um ASCII-Textdateien handelt, die fast beliebig strukturiert sein können.

Einführung der zentralen Konfigurationsdatenbank[Bearbeiten]

Eine zentrale hierarchische Konfigurationsdatenbank, mit einem festdefinierten, hierarchischen Grundaufbau, wurde mit der ersten Version von Windows NT eingeführt, die sogenannte Windows-Registry. Mit Windows 3.x wurde die Windows-Registry auch im Bereich der Consumer-Betriebssysteme eingeführt. Während unter den frühen Windowssystemen hauptsächlich Dateierweiterungen gespeichert wurden, handelt es sich bei der Registry seit Windows 95 und Windows NT 4.0 um eine umfassende Datenbank für die Verwaltung des Systems und aller integrierten Systemdienste und -prozesse. Die Registry bietet auch die Möglichkeit, die Einstellungen der installierten Anwendungen zentral abzulegen.

Bezugnahmen zu einem Bienenstock[Bearbeiten]

Häufig kann man in der Benennung der Teile der Windows-Registrierungsdatenbank irritierende Anspielungen auf einen Bienenstock (oder "Hive", engl. für „Bienenstock“) finden, welche Gerüchten zufolge kurioserweise auf eine Abneigung eines Microsoft-Entwicklers gegen Bienen zurückzuführen sein sollen und keine weitergehende Bedeutung implizieren. So wird bspw. die Bedeutung des „H“ in „HKEY“ häufig mit „hive“ wiedergegeben.[2]

Sparsamere Verwendung seit Windows 2000[Bearbeiten]

Nachdem die Vor- und Nachteile der Registry gegenüber Konfigurationsdatei-Lösungen klarer wurden, setzte sich seit ca. Windows 2000 zunehmend eine zurückhaltendere Verwendung der Registry bei proprietären Anwendungsprogrammen durch. Dies gilt insbesondere für die sogenannte Selbstregistrierung, die von Microsoft seit diesem Zeitpunkt nicht mehr empfohlen wird. Insbesondere programmeigene Konfigurationen und sogenannte „Manifeste“ werden eher in separaten Dateien abgespeichert. Ein Motivationsfall ist Portable Software (USB-Stickware) bei der das Programm eine lokale Konfigurationsdatei im Anwendungspfad verwendet; ein anderer dass Datei-basierendes Konfigurationsmanagement einfacher zu verwenden ist als die potentiell komplexeren Windows-Registry Mechanismen.

Eigenschaften[Bearbeiten]

Die folgende Abwägung gelten für Anwendungsprogramme durch Drittanbieter (ISVs) und den Vor- und Nachteilen einer Einstellungsspeicherung in der Registry (jeweils unter HKLM\Software\.. oder HKCU\Software\..) gegenüber einer zentralen oder programm-spezifischen Konfigurationsdateilösung. Die Vor- und Nachteil der Registry als Betriebssystemkonfigurationsmechanismus für Windows werden hier nicht diskutiert.

Vorteile gegenüber Konfigurationsdateien[Bearbeiten]

  • Die Registry braucht wenig Rechenleistung und ist im Zugriff äußerst schnell. Da es eine indizierte Datenbank ist, können Schlüssel, Unterschlüssel und Werte selbst bei extrem großer Registry extrem schnell gefunden werden (vgl. Suche eines Begriffs im Stichwortverzeichnis eines Buches). Zudem werden beispielsweise Zahlen nicht als Zeichenketten gespeichert sondern als Hardware-nahe binäre Datenwort-Kodierung, was das Auslesen und das Speichern im Vergleich mit Textdateien wesentlich schneller macht.
  • Der größte Vorteil der Registry ist, dass sie einen zentralen Zugriffspunkt im Betriebssystem darstellt, der von Dateipfaden unabhängig ist. Verschiedene Programme können auf dieselben Registry-Einträge zugreifen. Dadurch kann die Kommunikation zwischen verschiedenen Programmen stark vereinfacht werden. Der Installationsort einzelner Programme hat keinen Einfluss und auch Programme finden ihre eigenen Einstellungen noch mit Windows 7 genauso vor wie unter Windows 95, wohingegen sich an den Standardpfaden für Programmeinstellungen recht viel geändert hat. (Gilt nur für Windows, da dies Problem in anderen Systemen durch eine systemübergreifend standardisierte Verzeichnisstruktur gelöst ist, →siehe FHS.)
  • Inkrementelle Änderungen mit Teilinformationen durch REG- und ADM-Dateien können von Administratoren leicht verteilt werden. Beide Dateitypen brauchen wenig Rechenleistung und überschreiben dabei nur explizit angegebene Informationen, sind also potentiell Nebenwirkungsfrei. Für inkrementelle Änderungen an Konfigurationsdateien gibt es, im Gegensatz zu manchen anderen Betriebssystemen, in Windows keine integrierten Tools. Die Ersetzung einer vollständigen Konfigurationsdatei dagegen könnte zu einer unbeabsichtigten, unerwünschten Änderung anderer Einstellungen führen.
  • Gleichzeitige Zugriffe, auch Schreibzugriffe, sind möglich, ohne sich um Sperrmechanismen zu kümmern.
  • Einstellungen für einzelne Benutzer („HKEY_CURRENT_USER“) sind klar getrennt von globalen Computereinstellungen („HKEY_LOCAL_MACHINE“), durch Default-Sicherheitseinstellungen auch korrekt implementiert.
  • Änderungen an Schlüsseln und Werten innerhalb der Registry können mit Tools wie z. B. Process Monitor einfacher überwacht werden als Dateiinhalte, d. h. es gibt hier eine bessere Toolunterstützung. (Gilt nur für Windows, da dies in anderen Betriebssystemen durchaus selbstverständlich ist, →siehe Inotify.) Standardtools für Windows überwachen meist nur Existenz und Eigenschaften von Konfigurationsdateien, aber nicht deren Inhalte. Vergleichen und Zusammenfügen (Merge) mehrerer Varianten ist hingegen mit Dateien einfacher; für Registrierungseinträge wird hierzu meist vorher ein Export in REG-Dateien durchgeführt.

Nachteile[Bearbeiten]

  • Systembindung und Kompatibilität: Die Verwendung der Registry bindet ein Programm an eine spezifische Windows-Installation. Installationen sind auch mit der Einführung einer zentralen Registry (mit Windows 95/NT, OS/2) komplexer geworden. Ein Benutzen einer Anwendungsinstallation auf mehreren Systemen oder die Migration zu einer neuen Betriebssystemversion ist nicht vorgesehen.[3]
  • Portable Software: Auch die portable Lauffähigkeit einer Applikation z. B. auf einem USB-Stick auf variierenden Systemen, setzt voraus, dass die Registry nicht verwendet wurde. Eine Alternative sind virtualisierte Anwendungen, die eine eigene private Variante der Registry verwenden, ohne dass andere Programme beeinflusst werden.
  • Es ist nicht möglich, eine ausführliche Dokumentation direkt in der Registry zu hinterlegen, z.B. die von einer Anwendung verwendeten oder erwarteten Werte. Dies muss 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 das durch als Kommentar markierte Zeilen (generell Semikolon als erstes Zeichen der Zeile) direkt „vor Ort“ geschehen.
  • Auch wenn die Registry sehr effizient ist, ist es nicht wünschenswert, dass zu viele Informationen hineingeschrieben werden, auch weil diese hauptspeichernah verwaltet wird.
  • Die zentrale Registry ist ein Single Point of Failure, ein einziges fehllaufendes Programm kann das Betriebssystem als auch andere Anwendungssoftware negativ beeinflussen, hier verspräche eine Separierung der Anwendungsprogramm-Konfigurationen Vorteile in Hinblick auf Sicherheit, Rückwirkungsfreiheit und Skalierbarkeit.[3] Jedoch ist seit Windows NT das Auftreten eines katastrophalen Ausfalls der Registry durch einen Fehler während eines Registry-Updates durch ein zweistufiges Transaktionslog extrem unwahrscheinlich geworden.[4] Selbst im Falle eines nicht-rekonstruierbaren Registry-Zustandes, besitzt Windows die Fähigkeit die Registry beim Systemstart automatisch zu reparieren oder zumindest neuanzulegen.[4]
  • Die Registry ist proprietär und auch betriebssystemspezifisch aufgebaut. Das Übertragen von Anwendungseinstellungen von Windows zu anderen Betriebssystemen ist daher nur möglich, wenn beispielsweise der Programmautor eine Import-/Exportfunktion der Einstellungen anbietet. Es existieren jedoch funktionale Alternativen der Registry auch für andere Systeme, eine Portierung eines Registry-verwendenden Windowsprogrammes ist also denkbar.[5][6]

Sicherheit[Bearbeiten]

Schutz vor unberechtigten Eingriffen[Bearbeiten]

Da mit der Registry auch Optionen wie das Ausblenden des Taskmanagers oder Komponenten der Systemsteuerung vorgenommen werden können, ist es nützlich, sie vor allem in größeren Netzwerken vor ungewollten Änderungen durch normale Benutzer zu schützen.

Tatsächlich ist ein Standardschutz bereits vorhanden, wenn das empfohlene Einsatzszenario in Firmen verwendet wird, deren Benutzer keine Administrationsrechte haben oder bei denen die Benutzerkontensteuerung (UAC) von Windows Vista oder Windows 7 verwendet wird. Ohne Administrationsrechte hat man nur Leserechte auf HKEY_LOCAL_MACHINE und Schreibrechte nur in HKEY_CURRENT_USER (was die eigenen persönlichen Einstellungen widerspiegelt).

Alternativ können Berechtigungen auch individuell gesetzt werden, etwa mit dem Registry Editor.

Als weiteren Schutz bieten Antivirenprogramme und andere Sicherheitswerkzeuge Zusatzabfragen oder zumindest Meldungen, wenn sich besonders wichtige Einstellungen in der Registry ändern.

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

Stilllegen von RegEdit[Bearbeiten]

Für Administratoren wurde die Möglichkeit implementiert, das Ausführen von RegEdit.exe durch einen Registry-Eintrag im Policies-Bereich bei bestimmten Benutzern zu verhindern. In diesen Bereich kann ein Standard-Benutzer ohne Administratorrechte nicht schreiben, die Einstellung kann beispielsweise 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 der Einsatz eines Standard-Benutzers ohne Administratorrechte der einzig sinnvolle Weg.

Der Schlüssel ist aber auch ein typischer Angriffspunkt für Malware: Verwendet man einen Benutzer mit Administratorrechten bei der täglichen Arbeit am Computer, kann ausgeführte Schadsoftware das Bearbeiten der Registry sehr leicht sperren.

Alternativen[Bearbeiten]

In den meisten unixoiden Betriebssystemen, wie Linux oder Mac OS X, gibt es keine zentrale Konfigurationsdatenbank, sondern zahlreiche zentral abgelegte Konfigurationsdateien.

Jedoch gibt es Projekte die Registry-artige Systeme auch für unixoide Systeme bereitstellen wollen, beispielsweise Elektra[7][8] oder die Gnome-Konfigurationsdatenbank GConf bzw. der Nachfolger DConf. GConf baute im Gegensatz zur Windows-Registry und DConf konsequent auf XML-Dateien auf, was die Möglichkeit bot, die Schlüssel mit jedem Texteditor oder XML-Parser zu lesen und bearbeiten. Ebenso legt Elektra die Schlüssen in Plain-text-Dateien ab, die z. B. mit Editoren wie vi bearbeitet werden können.[9]

Apple setzt bei Mac OS X teilweise auf sogenannte Property Lists, die im XML-, JSON- oder in einem poeritären Binär-Format vorliegen können.[10]

Windows-Registrierungsdatenbank ohne Windows[Bearbeiten]

Das für Linux- und Unix-Systeme verfügbare Win32-API namens Wine enthält eine eigene Implementation der Windows-Registrierungsdatenbank. Wine selbst legt seine eigenen Einstellungen darin ab. Daneben können andere Windows-Programme, die auf Wine laufen, ihre Einstellungen dort eintragen. Für Win32-Anwendungen erscheint die Registrierungsdatenbank genau gleich wie auf einem Windows-NT-System. Im Hintergrund befindet sich aber – anders als bei Windows-NT-Systemen und wie in unixoiden System für Einstellungen üblich – keine Datenbank, sondern einfache ASCII-Textdateien. In den folgenden Dateien im Verzeichnis ~/.wine ist die Registrierungsdatenbank von Wine in Form lesbarer Texte enthalten:[11]

Datei Schlüssel
system.reg HKEY_LOCAL_MACHINE
user.reg HKEY_CURRENT_USER
userdef.reg HKEY_USERS\.Default

Das ReactOS-Projekt, das versucht Windows-NT nachzubauen, übernimmt Teile von Wine, darunter auch die Umsetzung der Windows-Registrierungsdatenbank.[12]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Grundlagen der Windows-Registry netzwelt.de
  2. Raymond Chen: Why is a registry file called a "hive"? (englisch) The Old New Thing. 8. August 2011. Abgerufen am 29. Juli 2011.
  3. a b David Kirk: Windows Registry versus OS X Property List Files. tech-recipes, abgerufen am 28. November 2013.
  4. a b Mark Russinovich, David A. Solomon, Alex Ionescu: Registry Internals. In: Windows internals, 6th ed., Microsoft Press, Redmond, Wash., ISBN 978-0-7356-4873-9 (Zugriff am 2. August 2012).
  5. Interview: Elektra, die Linux Registry auf golem.de (2004)
  6. www/ Software/ Elektra auf Freedesktop.org (engl.)
  7. Interview: Elektra, die Linux Registry auf golem.de (2004)
  8. www/ Software/ Elektra auf Freedesktop.org (engl.)
  9. Interview: Elektra, die Linux Registry auf golem.de (2004)
  10. The plist(5) manual page auf developer.apple.com. Abgerufen am 23. Januar 2014.
  11. Using the Registry and Regedit (englisch)
  12. Using ReactOS Registry format (englisch)