Dieses Dokument beschreibt den Aufbau von Registrierungsdateien (.reg-Dateien) und wie sie verwendet werden, um die Windows Registry zu ändern.
Allgemeines
Unterdrücken der Hinweismeldungen beim ImportierenAufbau einer Registrierungsdatei
Registrierungsdateien erstellen und bearbeiten
Unterschlüssel oder Werte hinzufügen, Werte ändern
Schlüssel oder Werte löschen
Schlüssel oder Werte umbenennen
Regedit.exe verwendet Registrierungsdateien (.reg-Dateien), um Schlüssel und Werte in die Windows Registry zu importieren oder zu exportieren. Wenn eine Registrierungsdatei importiert wird, wird der Inhalt in die Windows Registry des lokalen Computers übernommen. Der Import kann unter anderem mit einem Doppelklick auf die Datei oder über "Zusammenführen" im Explorer-Kontextmenü erfolgen.
In einem Script kann es sinnvoll sein, wenn die Hinweismeldungen beim Importieren von Registrierungsdateien nicht angezeigt werden. Mit dem Befehlszeilenparameter "/s" können alle Hinweismeldungen deaktiviert werden. Zum Ändern der Registry benötigt das Script Administratorrechte.
regedit.exe /s Pfad\Dateiname.reg
RegistryEditorVersion [Pfad\Schlüssel1] "Name1"="Wert" "Name2"="Datentyp:Wert" [Pfad\Schlüssel2] @="Standardwert" "Name3"="Datentyp:Wert"
In der ersten Zeile wird entweder "Windows Registry Editor Version 5.00" für Windows 2000 und höher oder "REGEDIT4" für Windows 98 und Windows NT 4.0 angegeben. Der "REGEDIT4"-Header wird auch von neueren Windows-Versionen unterstützt.
Vor jedem Schlüssel oder Unterschlüssel sollten Leerzeilen eingefügt werden, um die Datei übersichtlicher und leichter lesbar zu machen.
Der Pfad des Schlüssels muss in eckigen Klammern angegeben werden. Als Trennzeichen für die einzelnen Schlüssel des Pfades wird ein Backslash (\) verwendet. Zum Beispiel:
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shellex\ContextMenuHandlers]
In einer Registrierungsdatei können mehrere Registrierungspfade angegeben werden. Wenn der unterste Schlüssel in der Pfad-Hierarchie nicht in der Registry enthalten ist, wird dieser neu erstellt. Der Inhalt der Registrierungsdatei wird in der Reihenfolge in die Registry eingetragen, in der sie angegeben wurden. Wenn ein Unterschlüssel in einem anderen Unterschlüssel erstellt werden soll, muss diese in der richtigen Reihenfolge angegeben werden.
[HKEY_CURRENT_USER\SOFTWARE\Unterschlüssel1] [HKEY_CURRENT_USER\SOFTWARE\Unterschlüssel1\Unterschlüssel2]
Am Beginn einer zu importierenden Wertangabe steht der Name des Werts. Dieser ist in doppelte Anführungszeichen zu setzen. Existiert ein Wert in der Registry noch nicht, wird dieser automatisch erstellt. Existiert der Wert bereits, wird der bisherige Wert überschrieben. Soll der Standardwert des Schlüssels festgelegt werden, muss als Wertname ein @-Zeichen angegeben werden. Direkt im Anschluss an den Wertnamen folgt ein Gleichzeichen (=).
Nach dem Gleichzeichen folgt der Wert. Enthält der Wert eine normale Zeichenfolge (REG_SZ), wird dieser in doppelte Anführungszeichen gesetzt. Der Datentyp wird nicht zusätzlich angegeben. Bei einem anderen Datentyp muss dieser dem eigentlichen Wert, getrennt mit einem Doppelpunkt, vorangestellt werden.
Datentyp in der Registrierungsdatei | Datentyp der Windows API | Beschreibung |
---|---|---|
hex | REG_BINARY | Binärdaten (identisch mit hex(3)) |
dword | REG_DWORD | Vorzeichenlose 32-Bit-Ganzzahl als Little-Endian (identisch mit hex(4)) |
hex(0) | REG_NONE | Kein Datentyp |
hex(1) | REG_SZ | Null-terminierte UTF-16LE-Zeichenkette |
hex(2) | REG_EXPAND_SZ | Null-terminierte UTF-16LE-Zeichenkette, welche Umgebungsvariablen enthalten kann. |
hex(3) | REG_BINARY | Binärdaten |
hex(4) | REG_DWORD_LITTLE_ENDIAN | Vorzeichenlose 32-Bit-Ganzzahl als Little-Endian |
hex(5) | REG_DWORD_BIG_ENDIAN | Vorzeichenlose 32-Bit-Ganzzahl als Big-Endian |
hex(6) | REG_LINK | |
hex(7) | REG_MULTI_SZ | Mehrere nicht leere Null-terminierte UTF-16LE-Zeichenketten, terminiert mit einem zusätzlichen Null-Zeichen. |
hex(8) | REG_RESOURCE_LIST | |
hex(9) | REG_FULL_RESOURCE_DESCRIPTOR | |
hex(a) | REG_RESOURCE_REQUIREMENTS_LIST | |
hex(b) | REG_QWORD_LITTLE_ENDIAN | 8 Bytes als Hexadezimalwerte, welche eine 64-Bit-Ganzzahl als Little-Endian repräsentieren. |
Für Binärwerte und Quad-Word-Werte muss der Wert in hexadezimaler Schreibweise angegeben werden. Die einzelnen Bytes werden mit einem Beistrich getrennt. Lange Werte können in mehrere Zeilen aufgeteilt werden. Dazu muss am Ende der Zeile ein Backslash angegeben werden. Die nächste Zeile wird mit 2 Leerzeichen eingerückt.
@="Standardwert" "Binärwert"=hex:00,01,02,03,04,05,06,07 "Text"="Wert1" "DWord-Zahl"=dword:0000007b "QWord-Zahl"=hex(b):d2,02,96,49,00,00,00,00 "Text-Expand"=hex(2):54,00,65,00,73,00,74,00,2d,00,54,00,65,00,78,00,74,\ 00,00,00 "Text-Multi"=hex(7):54,00,65,00,73,00,74,00,00,00,54,00,65,00,78,00,74,\ 00,00,00,00,00
Eine Registrierungsdatei sollte am Ende eine Leerzeile enthalten.
Auch wenn unter Windows 10 einige dieser Vorgaben nicht zwingend notwendig sind, sollten sie aus Gründen der Kompatibilität dennoch beachtet werden. Dies betrifft z.B. die Notwendigkeit der Leerzeilen und das Angeben aller Schlüssel in der Hierarchie der zu erstellenden Unterschlüssel.
Gefällt dir meine Webseite, meine Freeware-Programme oder Online-Tools?
Dann spende bitte per PayPal und hilf mit, den Inhalt weiterhin kostenlos anbieten zu können - jeder Betrag ist willkommen!
Vor einer Änderung in der Windows Registry sollte zumindest der betreffende Schlüssel exportiert werden, um den ursprünglichen Zustand wieder herstellen zu können. Dies geschieht über das Hauptmenü "Datei" / "Exportieren" oder über das Kontextmenü des Schlüssels. Verursachen die Änderungen Probleme, kann die Sicherung wieder in die Registry importiert werden.
Die einfachste Möglichkeit ist, die betreffenden Änderungen im Registrierungs-Editor vorzunehmen. Anschließend kann der betreffende Schlüssel in eine Registrierungsdatei exportiert werden. Unnötige Schlüssel oder Werte können mit einem Texteditor aus der Registrierungsdatei entfernt werden.
Um einen Schlüssel zu löschen, muss vor dem Pfad ein Minus-Zeichen (-) gesetzt werden. Um einen Wert zu löschen, muss nach dem Gleichzeichen ein Minus (-) gesetzt werden.
Das folgende Beispiel löscht den Schlüssel "HKEY_LOCAL_MACHINE\Software\MyOldApplication" und den Wert "Version" aus dem Schlüssel "HKEY_LOCAL_MACHINE\Software\MyOldApplication".
[-HKEY_LOCAL_MACHINE\Software\MyOldApplication] [HKEY_LOCAL_MACHINE\Software\MyApplication] "Version"=-
Wie auch beim Ändern von Werten kann der betreffende Schlüssel vorher exportiert werden. Mit einem Texteditor kann dann das Minus-Zeichen einfach eingefügt werden.
Es gibt keine direkte Möglichkeit zum Umbenennen von Schlüsseln und Werten.
Durch das Exportieren der bisherigen Schlüssel und Werte können diese gesichert werden. Mit einem Texteditor werden die betreffenden Schlüssel und Werte kopiert, vor den gesicherten Daten eingefügt und mit einem Minus versehen, um diese zu löschen. Anschließend werden die Namen der Schlüssel und Werte im unteren Teil umbenannt.
Beispiel:[HKEY_CURRENT_USER\SOFTWARE\TEST] "Test"="123" [HKEY_CURRENT_USER\SOFTWARE\MyApplication] "Version"="1" "Year"="2022"Der Schlüssel "TEST" soll in "TestApplication" und der Wert "Year" im Schlüssel "MyApplication" in "RegYear" geändert werden. Nach dem Bearbeiten der Registrierungsdatei sieht diese so aus:
[-HKEY_CURRENT_USER\SOFTWARE\TEST] [HKEY_CURRENT_USER\SOFTWARE\TestApplication] "Test"="123" [HKEY_CURRENT_USER\SOFTWARE\MyApplication] "Year"=- [HKEY_CURRENT_USER\SOFTWARE\MyApplication] "RegYear"="2022"
Der Schlüssel "TEST" wird gelöscht und der Schlüssel "TestApplication" mit dem selben Inhalt wird erstellt. Im Schlüssel "MyApplication" wird der Wert "Year" gelöscht und danach mit dem Namen "RegYear" neu erstellt.
Gefällt dir meine Webseite, meine Freeware-Programme oder Online-Tools?
Dann spende bitte per PayPal und hilf mit, den Inhalt weiterhin kostenlos anbieten zu können - jeder Betrag ist willkommen!