Verteilen von Registrierungsänderungen (Engl. Originaltitel: Distributing Registry Changes) Kathy Ivens Dieser Artikel wurde im Windows 2000-Magazin, Ausgabe April 2001 (englischsprachig), und Windows 2000Magazin, Ausgabe Juli 2001, veröffentlicht. Drei Wege zur Durchführung von Registrierungsänderungen in Systemen im Netzwerk - Sie brauchen nicht einmal Ihren Schreibtisch zu verlassen Immer wenn ich mich zum Verwenden von Registrierungsänderungen im Rahmen der Problembehandlung äußere, wird mir die gleiche Frage gestellt: "Wie können Registrierungsänderungen auf mehreren Computern durchgeführt werden, ohne den Standort jedes einzelnen Computers aufzusuchen?" Registrierungsänderungen können auf drei Arten im Netzwerk verteilt werden: mit importierten Registrierungsdateien (REG), mit dem Programm regini.exe oder über Gruppen- oder Systemrichtlinien. Bevor diese Optionen näher erläutert werden, muss ich jedoch die übliche Warnung aussprechen: Manipulationen an der Registrierung sind gefährlich. Probieren Sie die Vorschläge nur aus, wenn Sie mit der Registrierung vertraut und ein Hauptbenutzer sind. Bevor Sie beginnen, können Sie mithilfe von regedit.exe als Sicherungsmaßnahme einen Schlüssel exportieren. Die exportierte Datei besitzt die Erweiterung REG. Durch Reimportieren der Datei in die Registrierung kann der Schaden schnell behoben werden, wenn die Manipulation des Schlüssels Probleme verursacht. (Auch wenn Sie die Bearbeitung mit regedt32 vorziehen, sollten Sie zunächst regedit öffnen und den Schlüssel exportieren, an dem Sie Änderungen vornehmen möchten. Die Export- und Importfunktionen von regedit sind problemloser verwendbar als die äquivalenten Sicherungsverfahren von regedt32.) Zahlreiche Benutzer- und Computereinschränkungen können über den Gruppenrichtlinien-Editor (GPE in Windows 2000) oder den Systemrichtlinien-Editor (SPE in Windows NT und Windows 9x) angewendet werden. In diesem Artikel wird davon ausgegangen, dass die Änderungen, die Sie durchführen möchten, noch nicht an den Ressourcen vorgenommen wurden und dass Registrierungsänderungen die beste Möglichkeit darstellen. Option 1: Erstellen oder Exportieren von Registrierungsdateien Sie können REG-Dateien verteilen, die Benutzer dann in die Registrierung der Zielcomputer importieren können. Hierfür müssen Sie die REG-Dateien lediglich erstellen (oder mit regedit exportieren und dann bearbeiten) und anschließend verteilen. (Registrierungsdateien haben jedoch einen bedeutenden Mangel: Sie können keine Daten in der Registrierung löschen. Weitere Informationen zu dieser Einschränkung finden Sie in dem Kurzartikel "Nachteile von Registrierungsdateien".) Formatieren Sie den Inhalt von Registrierungsdateien wie folgt: <RegistryEditorVersion> <Leerzeile> [<RegistryPath>] "<DataItemName>"="<Dataype>: <DataValue>" RegistryEditorVersion ist die verwendete Version von regedit.exe. Dieser Eintrag kennzeichnet die Datei als Registrierungsdatei. Regedit fügt diese Information automatisch hinzu, wenn Sie eine REG-Datei exportieren. Wenn Sie eine REG-Datei erstellen, müssen Sie die Informationen jedoch manuell eingeben. Für Windows 2000 ist RegistryEditorVersion der Windows-Registrierungs-Editor, Version 5.00. Für Windows NT 4.0 lautet die Version Regedit4. Leerzeile gibt den Anfang eines neuen Schlüsselpfades an. (Jeder einzelne Schlüssel oder Unterschlüssel ist ein neuer Schlüsselpfad.) Wenn ein Schlüssel exportiert wird, wird in der REG-Datei vor jedem Schlüssel oder Unterschlüssel eine Leerzeile angezeigt. Wenn die REG-Datei mehrere Schlüssel enthält, können Ihnen Leerzeilen bei der Überprüfung und Problembehandlung des Inhalts helfen. (In den Anweisungen von Microsoft ist angegeben, dass die Leerzeile notwendig ist. Als ich beim Erstellen von REG-Dateien unabsichtlich die Leerzeilen vergaß, wurden die Dateien dennoch ordnungsgemäß zusammengeführt.) RegistryPath ist der Pfad des Schlüssels, der die Werte enthält, die Sie importieren. Schließen Sie den Pfad in eckige Klammern ein, und trennen Sie jede Hierarchieebene durch einen umgekehrten Schrägstrich, beispielsweise [HKEY_LOCAL_ MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]. Eine REG-Datei kann mehrere Schlüsselpfade enthalten. Wenn die unterste Ebene der Hierarchie, die Sie in der Pfadanweisung angeben, in der Registrierung nicht vorhanden ist, erstellen Sie einen neuen Unterschlüssel. Der Inhalt von Registrierungsdateien wird in der Reihenfolge an die Registrierung gesendet, in der Sie ihn eingeben. Wenn Sie also einen neuen Schlüssel und einen Unterschlüssel darunter erstellen möchten, stellen Sie sicher, dass Sie die Zeilen in der richtigen Reihenfolge eingeben. (Es gibt jedoch nur einen Grund für die Erstellung neuer Schlüssel: Sie haben Software erstellt, die nach diesen Schlüsseln sucht. Das Erstellen neuer Schlüssel zählt nicht zu den Aufgaben im Rahmen der Systemwartung.) DataItemName ist das Datenelement, das Sie importieren möchten. Wenn ein Datenelement in der Datei in der Registrierung nicht vorhanden ist, fügt die REG-Datei das Element (mit seinem Wert) hinzu. Ist das Datenelement vorhanden, überschreibt der Wert in der REG-Datei den vorhandenen Wert. Der Name des Datenelements wird in Anführungszeichen eingeschlossen. Unmittelbar auf den Namen des Datenelements folgt ein Gleichheitszeichen (=). DataType (d. h. der Datentyp des importierten Elements) folgt direkt auf das Gleichheitszeichen, es sei denn, der Datentyp ist REG_SZ (REG_SZ-Typen sind Zeichenfolgen). Bei allen Datentypen mit Ausnahme von REG_SZ folgt sofort nach dem Datentyp ein Doppelpunkt. Tabelle 1 enthält die Einträge für fünf übliche Datentypen. (Es gibt zwar neun Datentypen, bei den Typen in Tabelle 1 handelt es sich jedoch um die Typen, die für die Systemwartung verwendet werden.) Informationen zu den Datentypen finden Sie in dem Kurzartikel "Datentypen der Registrierung" (siehe unten). Tabelle 1 Datentypeinträge für Registrierungsdateien Datentyp Registrierungsdatei Datentypeintrag REG_BINARY hex REG_DWORD dword REG_EXPAND_SZ hex(2) REG_MULTI_SZ hex(7) REG_SZ Keine DataValue (d. h. der Wert, den Sie importieren möchten) folgt direkt auf den Doppelpunkt und muss im entsprechenden Format vorliegen (d. h. als Zeichenfolge oder im Hexadezimalformat). Verwenden Sie das Hexadezimalformat für binäre Datenelemente. Für den gleichen Schlüsselpfad können mehrere Datenelementzeilen eingegeben werden. Beispielsweise geben die Datenelementzeilen "GroupPolicyRefreshTime"=dword: 00000014 "GroupPolicyRefreshTimeOffset"= dword:0000000f die Hexadezimaleinträge wieder, die diese Datenelemente erfordern: 00000014 ist das hexadezimale Äquivalent von 20, und 0000000f ist das hexadezimale Äquivalent von 15. Wenn Sie nicht mit hexadezimalen oder sonstigen nicht lesbaren Daten vertraut sind, erstellen Sie nur REG-Dateien für Elemente, die weder im binären noch im Hexadezimalformat vorliegen. Die Registrierung enthält keinen booleschen Datentyp (obwohl dies sinnvoll wäre). Der boolesche Datentyp ist normalerweise ein Element vom Typ DWORD (4 Bytes) oder Zeichenfolge (2 Bytes) in der Registrierung. Wenn Sie die REG-Datei zum Ändern von Werten verwenden, überprüfen Sie das Datenelement in der Registrierung, um sicherzustellen, dass der Datentyp übereinstimmt. In der REG-Datei muss nicht die vollständige Zeichenfolge angegeben werden; bei allen numerischen Werten können die führenden Nullen weggelassen werden. Nachteile von Registrierungsdateien Registrierungsdateien (REG) können keine Daten in der Registrierung löschen: Wenn ein ungültiger Schlüssel bzw. ein ungültiges Datenelement vorhanden ist, werden durch das Senden korrekter Informationen nur gültige Informationen zu den ungültigen hinzugefügt. (Werden jedoch neue Werte an ein Datenelement gesendet, ersetzen die neuen Werte die vorhandenen Werte.) Dieser Nachteil betrifft Sie als Administrator, der mithilfe von REG-Dateien Änderungs- und Wartungsaufgaben für Computer und Benutzer durchführt, wahrscheinlich nicht. Die Auswirkungen sind jedoch in der gesamten PC-Welt zu spüren. Softwareprogramme, die REGDateien während des Installationsvorgangs verwenden, verwenden diese auch bei Softwareaktualisierungen. Diese Programme ändern manchmal Registrierungsschlüssel oder Datenelemente, statt lediglich Datenwerte zu ersetzen, und hinterlassen hierdurch alte Registrierungselemente. Zahlreiche Deinstallationsprogramme verwenden REG-Dateien, um Datenwerte auf Null festzulegen oder ignorieren Registrierungsdaten bei der Deinstallation vollständig. Die Registrierung ist dann schließlich mit Elementen angefüllt, die nicht benötigt werden oder Konflikte verursachen. Tools zum Säubern der Registrierung, wie z. B. regclean.exe können hier hilfreich sein. (Regclean kann unter http://support.microsoft.com/support/downloads (englischsprachig) und unter http://www.microsoft.com/downloads/search.asp?LangID=10&LangDIR=DE gedownloadet werden.) Regclean arbeitet jedoch nur mit der Teilstruktur HKEY_CLASSES_ROOT, die fast nie die Quelle größerer Registrierungsprobleme ist. Außerdem ist bekannt, dass das Programm ebenso viele Probleme verursacht wie es löst. Abbildung 1 zeigt ein Beispiel für eine REG-Datei, mit der Sie das Element Dokumente im Startmenü entfernen können. (Wahrscheinlich vermissen nur wenige Benutzer dieses Menüelement oder bemerken gar nicht, dass es nicht mehr angezeigt wird. Wenn Benutzer das Menü Dokumente beibehalten möchten, senden Sie die Datei nicht an diese Personen.) Registrierungsdatentypen Jeder Registrierungseintrag besitzt einen Datentyp, der die spezifische Art der Daten darstellt, die der Eintrag speichern kann. Es gibt zwar neun Datentypen, beim Verwalten der Registrierung werden Sie jedoch wahrscheinlich nur auf folgende Typen treffen. REG_BINARY Einträge mit dem Datentyp REG_BINARY enthalten binäre Ursprungsdaten (d. h. Daten ohne Abschlusszeichen). Dieser Datentyp wird meistens für Informationen zu Hardwarekomponenten verwendet. Registrierungs-Editoren können die Daten, die Sie bearbeiten können, im Binär- oder Hexadezimalformat anzeigen. Doppelklicken Sie in regedit auf einen Eintrag vom Typ REG_BINARY, um seinen Inhalt im Binärformat anzuzeigen. Wählen Sie in regedt32 den Eintrag aus, und wählen Sie dann in der Menüleiste Ansicht, Binäre Daten anzeigen aus, um ein Fenster zu öffnen, in dem die Daten im Binärformat angezeigt werden. (Wenn Sie in der Menüleiste zunächst Bearbeiten und dann Binärwert auswählen, wird der BinärEditor geöffnet. Der Inhalt wird im Hexadezimalformat angezeigt.) REG_DWORD Der Datentyp REG_DWORD ist ein Doppelwort: zwei 16-Bit-Wörter, aus denen sich der 32-Bit-Wert zusammensetzt. REG_DWORD ist der häufigste Datentyp in der Registrierung. Sie finden Einträge dieses Typs, die Gerätetreiberdaten, boolesche Werte, Mengenangaben (z. B. die Anzahl von Sekunden, die verstreichen kann, bevor etwas geschieht oder nicht geschieht) sowie weitere Informationen enthalten. Registrierungs-Editoren zeigen Einträge vom Typ REG_DWORD im Hexadezimalformat an. Wenn Sie eine Änderung vornehmen müssen, können Sie jedoch je nach Eintrag zum Dezimal- oder Binärformat wechseln. Daten im Hexadezimalformat kann ich nicht "im Kopf" umwandeln. Wenn ich also eine Zahl, wie z. B. ein Zeitlimitintervall ändern möchte, muss ich das Format entsprechend anpassen, um die Aufgabe durchzuführen. REG_EXPAND_SZ Der Eintragstyp REG_EXPAND_SZ bezieht sich auf Einträge, die eine oder mehrere Variablen enthalten, die ein Betriebssystemdienst oder eine Anwendung auflösen müssen. Bei den Variablen handelt es sich um die gleichen Variablen, die in Batchdateien und Skripts verwendet werden (z. B. \%systemroot%, \%username%). Ich konnte nie herausfinden, warum die Registrierung die Variable nicht auflöst und an den anfordernden Dienst oder das Programm sendet. REG_MULTI_SZ Dateneinträge, die mehrere Textzeichenfolgen umfassen, verwenden den Datentyp REG_MULTI_SZ. Die Zeichenfolgen werden durch Kommas oder Leerzeichen getrennt, und der Eintrag wird mit zwei Nullzeichen, die die Registrierungs-Editoren nicht anzeigen, abgeschlossen. Wenn Anwendungen ein Lookup für einen Eintrag vom Typ REG_MULTI_SZ durchführen, erhalten Sie den vollständigen Eintrag. Anwendungen können nicht bestimmte Zeichenfolge anfordern. (Diese Information ist für Programmierer von Bedeutung.) In regedit zeigt das Bearbeitungsfenster Binärdaten an (wobei jedoch auch der Text in der rechten Fensterhälfte angezeigt wird). Wählen Sie in regedt32 in der Menüleiste zunächst Bearbeiten und dann Mehrteilige Zeichenfolgen aus, oder doppelklicken Sie auf den Auszug, um den vollständigen Eintrag anzuzeigen. REG_SZ Einträge vom Typ REG_SZ sind Textzeichenfolgen mit fester Länge. Die meisten Einträge dieses Typs sind entweder boolesche Werte oder haben kurze Textzeichenfolgenwerte. Dieser Datentyp ist üblich und kommt wahrscheinlich ebenso häufig vor wie der Typ REG_DWORD. Die Notation SZ bedeutet String/Zero (deutsch: Zeichenfolge/Null) -Byteabschluss. Die Einträge werden mit einem Nullbyte am Ende abgeschlossen (d. h. am Ende der Zeichenfolge wird eine Null hinzugefügt). Beide Registrierungs-Editoren blenden die abschließende Null aus. Sie müssen sich daher keine Gedanken darüber machen, es sei denn, Sie erstellen eine Softwareanwendung, die die Registrierung ändert. In diesem Fall müssen Sie das abschließende Byte berücksichtigen. Wenn Sie einen Eintrag dieses Typs in regedit anzeigen oder bearbeiten, besitzt das geöffnete Fenster die Bezeichnung Zeichenfolge bearbeiten. Das Bearbeitungsfenster von regedit zeigt den Namen des Wertes an. In regedt32 hat das Fenster den Namen Zeichenfolgen-Editor. Regedt32 zeigt den Namen des Wertes nicht im Bearbeitungsfenster an. Wenn Sie also über ein schlechtes Kurzzeitgedächtnis verfügen, müssen Sie das Bearbeitungsfenster an eine andere Stelle ziehen, um den ausgewählten Eintrag sehen zu können. Verteilen von Registrierungsdateien Zur Verteilung vorgesehene REG-Dateien lassen sich schnell erstellen, indem Sie in regedit einen oder mehrere Schlüssel exportieren. Zum Exportieren eines Schlüssels wählen Sie zunächst den Schlüssel aus. Wählen Sie dann Registrierung und anschließend Registrierungsdatei exportieren aus. Geben Sie im Dialogfeld Registrierungsdatei exportieren einen Namen ein, und wählen Sie einen Ordner für die Exportdatei aus. Windows fügt automatisch die Erweiterung REG hinzu. Sie können die Registrierungseinstellungen interaktiv auf einem Computer ändern, den Schlüssel exportieren und die Exportdatei ohne weitere Änderung verwenden. Sie können jedoch auch den Schlüssel exportieren und ihn dann manuell bearbeiten. Doppelklicken Sie nicht auf die REG-Datei, um sie zu bearbeiten. Klicken Sie stattdessen mit der rechten Maustaste darauf, und wählen Sie im Kontextmenü den Befehl Bearbeiten aus. Die Datei wird im Editor geöffnet. Wenn Sie Registrierungsänderungen an mehreren Schlüsseln vornehmen möchten, öffnen Sie die einzelnen REG-Dateien, fügen den Inhalt der Dateien in ein Dokument im Editor ein und speichern das Dokument dann mit der Erweiterung REG. REG-Dateien können problemlos verteilt werden. Fügen Sie die REG-Datei als Anlage an eine E-MailNachricht an, fügen Sie den entsprechenden Befehl zu einem Anmeldeskript hinzu, oder verwenden Sie ein anderes Verfahren, mit dem Sie vertraut sind. Es ist nicht notwendig, dass Benutzer regedit öffnen und den Inhalt einer REG-Datei mit dem Importbefehl in die Registrierung übernehmen. Sie können stattdessen einfach im Windows-Explorer oder im Arbeitsplatz auf die REG-Datei doppelklicken, um den automatischen Importvorgang zu starten. Wenn Sie mit der rechten Maustaste auf eine REG-Datei klicken, sehen Sie, dass die Standardaktion Zusammenführen lautet. Der Befehl Zusammenführen ist jedoch in keiner Windows-Version vorhanden. Er steht stellvertretend für den Befehl regedit.exe "%1" Dabei steht die Variable für die aktuelle Datei. In der Befehlszeile verwenden Sie folgende Syntax: regedit <filename>.reg Unabhängig von der gewählten Methode fordert das Betriebssystem die Benutzer auf, zu bestätigen, dass die Daten mit der Registrierung zusammengeführt werden sollen. Wenn Sie auf Ja klicken, wird der Vorgang gestartet. Nachdem die Datei ordnungsgemäß mit der Registrierung zusammengeführt wurde, gibt das Betriebssystem eine Erfolgsmeldung aus. Wenn die Datei falsche Syntax enthält und die Zusammenführung fehlgeschlagen ist, wird eine Fehlermeldung ausgegeben, die darüber informiert, dass die Datei kein Registrierungsskript ist und nicht in die Registrierung importiert werden kann. Falls Sie mehrere REG-Dateien ausführen möchten (eine für jede Änderung), statt alle Registrierungsänderungen in einer Datei zusammenzufassen, verwenden Sie eine Batchdatei, die jede REG-Datei aufruft. Verwenden Sie folgende Syntax, um REG-Dateien in der Befehlszeile im stillen Modus auszuführen und so Benutzereingriffe überflüssig zu machen: regedit /s <filename>.reg Registrierungsdateien werden in Win95 und höheren Windows-Versionen eingesetzt. Zahlreiche Registrierungsunterschlüssel unterscheiden sich jedoch in den einzelnen Versionen. Sie sollten daher separate REG-Dateien für jede Plattform erstellen. Benennen Sie die Dateien entsprechend, um Verwechslungen zu vermeiden (z. B. RestrictUsers9x.reg, RestrictUsersNT4.reg). Beachten Sie, dass REG-Dateien auch eingesetzt werden können, wenn Tools zur Bearbeitung der Registrierung mithilfe von Gruppenrichtlinien oder Systemrichtlinien deaktiviert wurden. (Andernfalls könnte die Registrierung nicht durch die Installation von Software oder durch andere Systemprozesse geändert werden.) Option 2: Bessere Bearbeitungsleistung mit "Regini.exe" Wenn Sie Skripts als Tools für Konfigurations- und Installationsaufgaben bevorzugen, können Sie Ihre Skripts mithilfe von regini.exe zur Bearbeitung der Registrierung verwenden. Regini stellt umfangreichere Leistungsmerkmale als REG-Dateien bereit, einschließlich der Möglichkeit, Unterschlüssel und Datenelemente zu löschen und Berechtigungen für Registrierungsschlüssel festzulegen. Sie finden Regini im Microsoft Windows 2000 Server Resource Kit und im Microsoft Windows NT Server Resource Kit, Version 4.0. (Ich habe die Windows 2000-Version von regini.exe erfolgreich auf Computern unter Windows NT verwendet und umgekehrt.) Die Resource Kits enthalten außerdem die vollständige Dokumentation (regini.doc) zu diesem äußerst nützlichen Dienstprogramm. Regini verwendet folgende Syntax: regini <ScriptFileName> Dabei ist ScriptFileName der Pfad einer Skriptdatei, die Sie erstellt haben, um eine bestimmte Registrierungsänderung durchzuführen. Sie können die UNC (Uniform Naming Convention) in der Pfadanweisung verwenden, wenn sich das Skript auf einer Netzwerkfreigabe befinden. Zur Verteilung von Registrierungsänderungen, die mit Regini durchgeführt werden, müssen Sie das Programm auf jedem Zielcomputer zur Verfügung stellen (es wird davon ausgegangen, dass die Resource Kits nicht im gesamten Unternehmen installiert wurden). Sie können den UNC-Pfad von Regini mithilfe einer Batchdatei zuordnen und dann das Programm ausführen. Wenn sich Regini beispielsweise auf einer Netzwerkfreigabe mit dem Namen ResKit auf dem Server Tools1 befindet, können Sie folgende Batchdatei erstellen: Net use x: \\tools1\reskit x:\ regini <ScriptFileName> Net use x: /delete Richtlinien für Skriptdateien Name und Erweiterung der mit Regini verwendeten Skriptdatei sind frei wählbar. Die Datei muss im ANSIFormat vorliegen. Regini.exe konvertiert die Datei beim Lesen in Unicode. Eine Unicode-Textdatei kann jedoch nicht als Skriptdatei verwendet werden. (Microsoft sollte diese Einschränkung aufheben.) Registrierungsbefehle in der Skriptdatei müssen die folgende Syntax aufweisen: \Registry\<KeyPath> [<ACL>] <DataItemName> = <DataType> <DataValue> Ein Gleichheitszeichen in einer Zeile gibt an, dass die Zeile ein Registrierungsdatenelement und einen Wert enthält, der hinzugefügt, gelöscht oder geändert wird. Jede Zeile des Skripts muss mit einem Zeilenumbruch enden. Wenn eine Zeile umbricht, was normalerweise passiert, wenn der Registrierungsschlüssel tief geschachtelt und daher sehr lang ist, ist das Symbol für die Fortsetzung der Zeile ein umgekehrter Schrägstrich. Wenn Sie beispielsweise Etwas\ Mehr \ Viel eingeben, liest regini.exe die Zeile als EtwasMehr Viel. Beachten Sie, dass das Leerzeichen vor dem umgekehrten Schrägstrich in der zweiten Zeile ein Leerzeichen zwischen Mehr und Viel einfügt. Ist kein Leerzeichen erforderlich (wenn an der Umbruchstelle normalerweise kein Leerzeichen steht, z. B. im Namen eines Unterschlüssels), lassen Sie das Leerzeichen vor dem umgekehrten Schrägstrich weg. Die erste Zeile jedes Registrierungsbefehls enthält die Variable KeyPath. Hierbei handelt es sich um den vollständigen Pfad des Schlüssels, der geändert wird. Ist der Schlüssel bei Ausführung des Skripts nicht in der Registrierung vorhanden, fügt ihn der Befehl hinzu. Regini.exe verwendet die Kernelbenennungskonventionen für Teilstrukturen der Registrierung. Sie können entweder Kernelnamen in das Skript eingeben oder Standardnamen für Teilstrukturen verwenden und diese mithilfe von regini.exe übersetzen. (Es ist einfacher, die Kernelkonventionen einzugeben.) Die Kernelbenennungskonventionen für Teilstrukturen lauten wie folgt: HKEY_LOCAL_MACHINE ist \Registry\Machine HKEY_USERS ist \Registry\User HKEY_CURRENT_USER ist \Registry\User\User_SID Die erste Zeile kann außerdem die optionale Variable ACL enthalten. Sie können diese Variable hinzufügen, um ACL-Berechtigungen anstelle von oder zusätzlich zu Schlüsseln und Datenelementen zu ändern. Die ACL-Daten folgen auf die Variable KeyPath und bestehen aus mehreren Nummern, die durch Leerzeichen getrennt und in eckige Klammern eingeschlossen sind. (Tabelle 2 bietet einen Überblick über diese Nummern und ihre Bedeutung.) Beispielsweise erteilt der Befehl \Registry\machine\system\currentcontrolset [1 11 17] Administratoren Vollzugriff, Hauptbenutzern Vollzugriff und dem System Vollzugriff für den RegistrierungsunterschlüsselHKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet. Tabelle 2 Definitionen der ACL-Nummern Nummer Berechtigungen für den Zielregistrierungsschlüssel 1 Administratoren - Vollzugriff 2 Administratoren - Leseberechtigung 3 Administratoren - Lese- und Schreibberechtigung 4 Administratoren - Lese-, Schreib- und Löschberechtigung 5 Ersteller - Vollzugriff 6 Ersteller - Lese- und Schreibberechtigung 7 Jeder - Vollzugriff 8 Jeder - Leseberechtigung 9 Jeder - Lese- und Schreibberechtigung 10 Jeder - Lese-, Schreib- und Löschberechtigung 11 Hauptbenutzer - Vollzugriff 12 Hauptbenutzer - Lese- und Schreibberechtigung 13 Hauptbenutzer - Lese-, Schreib- und Löschberechtigung 14 Systemoperatoren - Vollzugriff 15 Systemoperatoren - Lese- und Schreibberechtigung 16 Systemoperatoren - Lese-, Schreib- und Löschberechtigung 17 System - Vollzugriff 18 System - Lese- und Schreibberechtigung 19 System - Leseberechtigung 20 Administratoren - Lese-, Schreib- und Ausführberechtigung 21 Interaktiver Benutzer - Vollzugriff 22 Interaktiver Benutzer - Lese- und Schreibberechtigung 23 Interaktiver Benutzer - Lese-, Schreib- und Löschberechtigung Achtung: Diese Funktion kann Probleme verursachen, wenn Sie seine Funktionsweise nicht verstehen. Mit dieser Funktion fügen Sie nicht die in Klammern eingeschlossenen ACL-Berechtigungen hinzu, sondern setzen die ACLs zurück. Die Daten in den Klammern ersetzen die bestehenden Daten. Verwenden Sie diese Funktion nur, nachdem Sie zuvor die vorhandene ACL für den Schlüssel, der geändert wird, überprüft haben. (Die ACL kann mithilfe von regedt32 angezeigt werden.) Andernfalls löschen oder ändern Sie unter Umständen versehentlich Berechtigungen einer Gruppe. Die zweite Zeile enthält die Informationen für das Datenelement, das Sie ändern: DataItemName ist der Name des Datenelements. Es besteht aus allen Zeichen vom ersten nicht leeren Zeichen der Zeile bis zum letzten nicht leeren Zeichen vor dem Gleichheitszeichen. Für die Behandlung von Datenelementen mit Leerzeichen ist kein bestimmtes Format (z. B. Einschließen des Namens in Anführungszeichen) erforderlich. Ist das Datenelement bei Ausführung des Skripts nicht in der Registrierung vorhanden, fügt es der Befehl hinzu. DataType ist der Datentyp des Datenelements. Regini erkennt den Text rechts neben dem Gleichheitszeichen bis zum ersten Leerzeichen als Datentyp. DataValue stellt den Wert dar, den Sie dem Datenelement zuweisen. Dieser Wert beginnt beim ersten nicht leeren Zeichen, das auf das Leerzeichen nach dem Datentyp folgt, und reicht bis zum Ende der Zeile. Es ist keine besondere Vorgehensweise erforderlich, um Leerzeichen innerhalb eines Wertes anzugeben. Regini.exe setzt voraus, dass der Datentyp und der zugehörige Wert in dem Skript bestimmten Standards entsprechen. Die Standards lauten wie folgt: REG_SZ oder REG_EXPAND_SZ für Zeichenfolgenwerte. REG_MULTI_SZ für mehrere Zeichenfolgen. Jede Zeichenfolge muss in Anführungszeichen eingeschlossen werden. REG_DWORD für Dezimal- oder Hexadezimalwerte. Für Datenelemente vom Typ REG_DWORD ist der Standardwert ein Dezimalwert. Verwenden Sie 0x, um einen Hexadezimalwert anzugeben. Wenn Sie den Wert On, True oder Yes eingeben, wird der Wert in 0x00000001 konvertiert. Bei Eingabe des Wertes No, False oder Off wird der Wert in 0x00000000 konvertiert. REG_BINARY für Binärwerte, die als zwei oder mehrere Dezimalzahlen formatiert sind. Die erste Dezimalzahl gibt die Anzahl von Datenbytes an, die folgen. Die verbleibenden Zahlen werden in 32Bit-Zahlen konvertiert. (Die Länge des Wertes muss immer ein Vielfaches von 4 Bytes betragen.) Funktionen von Regini Regini bietet verschiedene Möglichkeiten für die Datenbearbeitung. Beispielsweise ist DELETE ein Schlüsselwort von regini.exe, das nur den Namen des Datenelements erfordert. Zum Entfernen eines Datenelements geben Sie die folgende Syntax als zweite (d. h. als Datenelement) Zeile des Skripts ein: DataItemName = DELETE Regini.exe bietet Ihnen auch die Möglichkeit, auf eine Textdatei zu verweisen, die den Wert für ein Datenelement enthält. Diese Funktion macht die direkte Eingabe langer Binärwerte (für Datenelemente vom Typ REG_BINARY) oder vieler Zeichenfolgen (für Datenelemente vom Typ REG_ MULTI_SZ) unnötig. Wenn regini.exe ausgeführt wird, öffnet das Programm die Zieldatei und schreibt ihren Inhalt als Wert für das Datenelement in die Registrierung. Um diese Funktion zu verwenden, ersetzen Sie den Elementtyp durch eine Anweisung zur Verwendung einer Datei. Die Anweisung enthält einen Verweis auf den Elementtyp und verwendet die folgenden Syntaxoptionen: Für Datenelemente vom Typ REG_BINARY: DataItemName = REG_BINARYFILE FilePath Für Datenelemente vom Typ REG_MULTI_SZ: DataItemName = REG_MULTISZFILE FilePath Geben Sie beispielsweise folgendes Skript ein: UserNicknamesForCompanyNewsletter = REG_MULTISZFILE \myscripts\script101.txt Regini liest den Inhalt der Datei script101.txt und schreibt den Inhalt als Wert des Datenelements UserNicknamesForCompanyNewsletter. (Dies ist ein Beispiel für ein Datenelement; suchen Sie also nicht in der Registrierung danach.) Ein vollständiger Befehl Das folgende Skript ist ein Beispiel für einen vollständigen Befehl. Dieser Befehl ändert die Computereinstellungen dahingehend, dass der Name des letzten Benutzers nicht im Anmeldedialogfeld angezeigt wird. \registry\machine\software\microsoft\ windows\currentversion\policies\system DontDisplayLastUserName = REG_DWORD 1 Weitere Änderungen am gleichen Unterschlüssel können Sie vornehmen, indem Sie unterhalb der Zeile, die auf den Unterschlüssel verweist, Zeilen hinzufügen. Wenn jede zusätzliche Zeile ein Gleichheitszeichen enthält, behandelt regini.exe den Zeileninhalt ordnungsgemäß. Beispielsweise befinden sich die Datenelemente, die vor der Anmeldung ausgegebene Meldungen steuern (LegalNoticeText und LegalNoticeCaption), im gleichen Registrierungsunterschlüssel wie das Element DontDisplayLastUserName. Fügen Sie lediglich die folgenden beiden Zeilen zu dem Skript hinzu, um den Computer so zu konfigurieren, dass eine Meldung angezeigt wird, bevor sich Benutzer anmelden: \registry\machine\software\micro soft\windows\currentversion\policies\system DontDisplayLastUserName = REG_DWORD 1 LegalNoticeText = REG_SZ Your E-Mail is Now Being Monitored LegalNoticeCaption = REG_SZ Notice To Employees Option 3: Verwenden von Richtlinien Registrierungsänderungen lassen sich auch verteilen, indem Systemrichtlinien erstellt werden, die die Registrierungen der Zielbenutzer ändern. Das Verfahren ist unterschiedlich, je nachdem ob Sie Windows 2000 (MMC-Snap-In Gruppenrichtlinien-Editor (GPE)) oder frühere Windows-Versionen (SystemrichtlinienEditor (SPE)) verwenden. In beiden Fällen können Sie jedoch ADM-Dateien erstellen, um Registrierungsänderungen an ausgewählte Computer zu senden. Am einfachsten lässt sich eine ADM-Datei erstellen, wenn Sie eine vorhandene ADM-Vorlage als Startpunkt verwenden. Vorlagen sind Textdateien, die in Editor oder jedem anderen Texteditor geöffnet werden können. Bevor Sie vorhandene Vorlagen verwenden, erstellen Sie unbedingt Sicherheitskopien der Originale. Wenn Sie eine Vorlage ändern, speichern Sie die neue Version unter einem neuen Dateinamen, auch wenn Sie eine Sicherheitskopie des Originals besitzen. Außerdem müssen Sie die neuen ADM-Dateien in einer Testumgebung überprüfen, bevor Sie sie im Unternehmen einsetzen. (Eine Erläuterung der möglichen Konsequenzen bei Nichtberücksichtigung dieses Ratschlags finden Sie in Reader to Reader, ".adm Files and the Headaches They Can Cause", October 1999.) Wenn Sie eine Registrierungsänderung über eine ADM-Vorlage implementieren möchten, müssen Sie natürlich wissen, welcher Registrierungsschlüssel das Ziel ist. Die Dokumentation zur Registrierung ist im Resource Kit nicht sehr umfangreich. Um mich zum Thema Registrierung weiterzubilden, verwendete ich eine Testumgebung, in der ich Systemänderungen mit bestehenden Richtlinien und Systemsteuerungssymbolen durchführte. Ich verwendete regmon.exe von Sysinternals (erhältlich unter http://www.sysinternals.com (englischsprachig)), um die Registrierungsänderungen zu protokollieren. Schließlich lernte ich auch noch etwas über die Organisation der Registrierung und die Datentypen der Registrierungseinträge. Erstellen von ADM-Dateien für den GPE von Windows 2000 Das GPE-Snap-In von Windows 2000 bietet Hunderte von Richtlinien. (Der SPE hingegen bietet weniger als 100 Richtlinien.) Abbildung 2 zeigt den verfügbaren Bereich der Richtlinienkategorien. Abbildung 2 Das GPE-Snap-In von Windows 2000 Nur die unter Administrative Vorlagen verfügbaren Richtlinien sind direkte Registrierungseinträge. Sie können diese Vorlagen als Grundlage für Registrierungsänderungen anzeigen oder ändern. Die verfügbaren Richtlinien decken beinahe alle denkbaren Benutzereinstellungen oder Voreinstellungen ab. Sie müssen also wahrscheinlich keine eigenen Vorlagen erstellen. Möglicherweise entdecken Sie jedoch eine Registrierungseinstellung, die nicht bereits durch die Vorlagen abgedeckt ist, oder möchten spezifische Einstellungen für Benutzersteuerungen oder Inhousesoftware festlegen. Ein weiterer Grund für die Erstellung eigener Vorlagen kann die Kombination vorhandener Registrierungsänderungen aus bestehenden Vorlagen sein. Mit dieser kombinierten Vorlage können dann häufige Änderungen auf bestimmte Computer- oder Benutzergruppen angewendet werden. Abbildung 3 Durch die Windows 2000-Vorlage "System.adm" implementierte Richtlinien Die Beziehung zwischen dem GPE-Snap-In und seinen Vorlagen ähnelt der Beziehung zwischen dem SPE und seinen Vorlagen. Abbildung 3 zeigt die Richtlinien für Benutzerkonfiguration\Administrative Vorlagen\System. Für die Richtlinie Dialogfeld "Willkommen" bei der Anmeldung nicht anzeigen enthält die Vorlage System.adm den folgenden Code: POLICY !!NoWelcomeTips KEYNAME "Software\Microsoft\ Windows\CurrentVersion\Policies\Explorer" EXPLAIN !!NoWelcomeTips_Help VALUENAME "NoWelcomeScreen" END POLICY In einer GPE-Vorlage enthält der Abschnitt POLICY den Registrierungsschlüssel, auch wenn es sich um den gleichen Registrierungsschlüssel handelt wie bei der vorherigen oder der folgenden Richtlinie. Beachten Sie die beiden Ausrufezeichen links neben dem Namen der Richtlinie. Sie geben eine Variable an. Der Abschnitt "[Strings]" für dieses Beispiel enthält den folgenden Code, der mit dem Text im GPE-Snap-In übereinstimmt: NoWelcomeTips="Dialogfeld "Willkommen" bei der Anmeldung nicht anzeigen" Der in SPE-Vorlagen nicht vorhandene Abschnitt EXPLAIN weist ebenfalls zwei Ausrufezeichen als erste Zeichen seines Wertes auf, die die Variable im Abschnitt "[Strings]" angeben. Beachten Sie, dass der Zeichenfolgename mit dem Zeichenfolgenamen der Richtlinie übereinstimmt, wobei jedoch ein Unterstrich und das Wort "Help" hinzugefügt wurden. In diesem Fall verweist die Variable auf den Text der Registerkarte Erklärung. Im Abschnitt "[Strings]" von System.adm sind die in Abbildung 4 dargestellten Variablen zu finden. Das Zeichen "\n" im Text fügt einen Zeilenumbruch ein. Wenn Sie Richtlinien erstellen, müssen Sie keine Erklärungen schreiben. Dies wird vom System nicht angemahnt. Erstellen von ADM-Dateien für den SPE von Windows NT oder Win9x Windows NT und Win9x implementieren ADM-Vorlagen im SPE (poledit.exe). Sie müssen die geeignete Plattformversion des SPEs verwenden, um die in der ADM-Datei erstellten Richtlinien zu implementieren. (Ein Beispiel für die Zusammenarbeit des SPEs und einer ADM-Vorlage finden Sie im Kurzartikel "Einrichten der Verbindung".) Windows NT Server enthält drei Vorlagen: Common.adm: Registrierungseinstellungen für Windows NT und Win9x Winnt.adm: Registrierungseinstellungen für Windows NT Windows.adm: Registrierungseinstellungen für Win95 Diese unter \%systemroot%\inf enthaltenen Vorlagen können geändert werden. Beispielsweise können Sie Optionen aus den Vorlagen entfernen, die niemals implementiert werden sollen (eine wichtige Möglichkeit, wenn der SPE von Assistenten in der IT-Abteilung verwendet wird). Außerdem können Sie Optionen hinzufügen, die die Standardvorlagendateien nicht enthalten. Für Vorlagen gelten die folgenden Einschränkungen: Richtlinien sind auf Einstellungen beschränkt, die in den Registrierungsunterschlüsseln HKEY_LOCAL_MACHINE und HKEY_CURRENT_USER verfügbar sind. Ein Verweis auf einen Registrierungsschlüssel, der Binärdaten enthält, ist nicht möglich. Sie können auch Vorlagen erstellen und diese im Ordner \%systemroot%\inf speichern. Zur Verwendung der Vorlagen öffnen Sie den SPE, wählen in der Menüleiste zunächst Optionen und dann Richtlinienvorlage aus und wählen anschließend die gewünschte Datei aus. Einrichten der Verbindung Wenn Sie die Verbindung zwischen dem Systemrichtlinien-Editor (System Policy Editor, SPE) und der Registrierung anzeigen möchten, öffnen Sie den SPE und wählen eine Kategorie aus. Anschließend öffnen Sie die Vorlage und suchen nach dem Code, der die im SPE angezeigten Optionen implementiert. Beispielsweise zeigt Abbildung A den SPE-Abschnitt zu Shelleinschränkungen für Benutzer. Abbildung A Der SPE von Windows NT Der in Abbildung B angezeigte Code ist ein Bestandteil der Vorlage Common.adm und implementiert die Optionen dieser Vorlage. Die Syntax und die Anordnung der Vorlage sind unkompliziert (das Format der Syntax erstellt die Anzeige in dem in Abbildung A dargestellten Softwarefenster). Die Syntax einer Vorlage verwendet Schlüsselwörter, die mit Variablen verknüpft sind. Die Variablen verweisen auf Registrierungsschlüssel. Für eine Vorlage mit einer Option gilt folgende Syntax: CLASS CATEGORY KEYNAME POLICY PART VALUENAME "value" VALUEON VALUEOFF END PART END POLICY END CATEGORY [Strings] CLASS benennt den Abschnitt der Registrierung (d. h. MACHINE für HKEY_LOCAL_MACHINE oder USER fürHKEY_CURRENT_USER). Jede Vorlage besitzt einen oder zwei CLASS-Indikatoren. Alle Richtlinien für eine CLASS müssen zu einer Gruppe zusammengefasst werden, bevor die zweite CLASS verwendet werden kann (wenn zwei Klassen verwendet werden). Vorlagendateien enthalten keine END CLASSZeile. Stattdessen legt die Benennung einer neuen CLASS das Ende der vorherigen CLASS fest. Der Anfang des Abschnitts "[Strings]" kennzeichnet das Ende der zweiten CLASS. CATEGORY definiert den Beginn einer Kategorie (und wird zu einem Buchsymbol im SPE-Fenster). END CATEGORY definiert das Ende der Kategorie. Bei einer Kategorie handelt es sich um eine Gruppe von Richtlinien mit einer logischen Verbindung, die alle als erweiterbare Überschrift in dem SPE-Fenster angezeigt werden. Kategorien können verschachtelt werden. Der CATEGORY-Befehl verwendet eine Variable, die für eine Textzeichenfolge steht, die im Abschnitt "[Strings]" der Vorlage dargestellt ist. Die Textzeichenfolge wird im SPE-Fenster als Definition der Richtlinie angezeigt. KEYNAME ist der Registrierungsschlüssel, der den Eintrag für die Richtlinie enthält. Wenn der Schlüssel noch nicht vorhanden ist, ist KEYNAME ein neuer Registrierungsschlüssel, der den Eintrag enthält. Enthält der Registrierungspfad des Schlüssels Leerzeichen, schließen Sie den gesamten Schlüsselpfad (ausschließlich HKEY_LOCAL_MACHINE oder HKEY_CURRENT_USER) in Anführungszeichen ein. POLICY ist die Richtlinieneinstellung. Die Einstellung muss innerhalb einer CATEGORY existieren, wobei der Name ihre Funktion beschreibt. Zu einer POLICY gehört ein Kontrollkästchen mit drei Statusangaben, das im SPE-Fenster angezeigt wird, so dass Sie festlegen können, ob die Richtlinie aktiviert, deaktiviert oder ignoriert wird. END POLICY legt das Ende der Richtlinie fest. PART signalisiert den Anfang eines Teils innerhalb einer Richtlinie (Richtlinien können aus mehreren Teilen bestehen). END PART gibt das Ende des Teils an. PART wird für kompliziertere Richtlinien verwendet, die zusätzliche Werte im Feld Einstellungen am unteren Rand des SPE-Fensters einrichten müssen. Mit zusätzlichen Werten ist gemeint, dass die Richtlinie mehr Optionen als das Aktivieren oder Deaktivieren erfordert. Wenn Sie eine Richtlinie für ein Hintergrundbild oder einen Bildschirmschoner einrichten, müssen Sie den Namen der entsprechenden Datei angeben. Außerdem können Sie mithilfe von PART einen erklärenden Text im Dialogfeld Einstellungen anzeigen. VALUENAME ist der Name des Registrierungseintrags (d. h. Unterschlüssel oder Datenelement), den Sie ändern oder erstellen. Wenn der VALUENAME-Eintrag in der Registrierung Leerzeichen enthält, schließen Sie den Namen in Anführungszeichen ein. VALUE ist der Wert, der dem durch VALUE NAME definierten Registrierungseintrag zugewiesen werden soll. VALUE kann Text (muss in Anführungszeichen eingeschlossen werden) oder ein numerischer Wert sein. VALUEON und VALUEOFF werden für den Betrieb des SPEs im Registrierungsmodus verwendet, wenn VALUENAME nur ein Kontrollkästchen zum Aktivieren oder Deaktivieren der Richtlinie erfordert. Normalerweise werden die üblichen Werte zum Aktivieren und Deaktivieren in der Registrierung verwendet: 1 für An und 0 für Aus. [Strings] ist der letzte Abschnitt der Vorlage. In diesem Abschnitt sind die Variablen für die Vorlage aufgeführt. Microsoft verwendet das Wort "Variable"; tatsächlich handelt es sich jedoch um die Sätze, die im SPE-Fenster angezeigt werden und die Richtlinie beschreiben. Innerhalb der Vorlage gibt jeder Eintrag, dem zwei Ausrufezeichen vorangestellt sind, eine Variable an, die im Abschnitt "[Strings]" angezeigt wird. Die folgenden Zeilen sind ein Bestandteil des Abschnitts "[Strings]" in der Vorlage Common.adm. Die Variable steht links vom Gleichheitszeichen, und der Inhalt der Variable steht, eingeschlossen in Anführungszeichen, rechts neben dem Gleichheitszeichen. RemoveRun="Befehl "Ausführen" entfernen" RemoveFolders="Ordner unter "Einstellungen" im Startmenü entfernen" RemoveTaskbar="Taskleiste unter "Einstellungen" im Startmenü entfernen" RemoveFind="Befehl "Suchen" aus dem Startmenü entfernen" Das Betriebssystem verteilt System- und Gruppenrichtlinien automatisch. (Informationen zur Verteilung von Gruppenrichtlinien finden Sie in Randy Franklin Smith, Controlling Group Policy, Part 2, Winter 2000.) Gesunde Vorsicht Dieser Artikel richtet sich an Administratoren, die sich gut genug mit der Registrierung auskennen, um Änderungen vornehmen zu können, ohne Schäden oder Chaos zu verursachen. Obwohl zahlreiche Tools zum Warten der Registrierung von Netzwerkcomputern zur Verfügung stehen, sollten Sie bei der Durchführung von Registrierungsaufgaben sorgfältig vorgehen. Sichern Sie alle Registrierungsschlüssel, bevor Sie Änderungen an ihrem Inhalt vornehmen. Wenden Sie viel Zeit für das Bearbeiten umfangreicher Aufgaben zur Registrierungsverwaltung in einer Testumgebung auf, bevor Sie Aufgaben im Unternehmen durchführen. Auch wenn Ihnen die Registrierung Rätsel aufgibt, manipulieren Sie nicht daran herum. Informationen zur Autorin Kathy Ivens ist freie Redakteurin für das Windows 2000-Magazin. Sie hat mehr als drei Dutzend Bücher und mehrere Hundert Artikel für Magazine zu verschiedenen Computerthemen verfasst. Sie ist Autorin von Admin 911: The Windows 2000 Registry (Osborne/McGraw-Hill). Sie erreichen Kathy Ivans unter folgender EMail-Adresse (in Englisch): [email protected]. Der vorliegende Artikel wurde mit freundlicher Unterstützung des Windows 2000-Magazins zur Verfügung gestellt. Klicken Sie hier , um das Windows 2000-Magazin (englischsprachig) zu abonnieren. Klicken Sie hier , um zur deutschsprachigen Website des Windows 2000-Magazins zu wechseln, und klicken Sie dann auf Abo, um zur Seite für Abonnements zu gelangen. Das Team der Microsoft Corporation hofft, dass die Informationen in diesem Dokument für Sie von Nutzen sind. Die Verwendung der in diesem Dokument enthaltenen Informationen erfolgt jedoch auf eigene Gefahr. Alle Informationen werden wie besehen bereitgestellt, ohne jede Gewährleistung, sei sie ausdrücklich oder konkludent, für die Richtigkeit, die Vollständigkeit, die Eignung für einen bestimmten Zweck, den Eigentumsvorbehalt oder die Nichtverletzung von Rechten Dritter, und keine der in diesem Dokument genannten Fremdherstellerprodukte oder Informationen von Dritten wurden/werden von der Microsoft Corporation verfasst, empfohlen oder unterstützt, und Microsoft Corporation übernimmt keine Garantie dafür. Die Microsoft Corporation kann nicht für Schäden haftbar gemacht werden, die aus der Verwendung dieser Informationen entstehen, ungeachtet dessen, ob es sich um direkte oder indirekte, spezielle, zufällig entstandene oder Folgeschäden handelt, selbst dann nicht, wenn Microsoft Corporation auf die mögliche Entstehung solcher Schäden hingewiesen wurde. Alle Preise für in diesem Dokument erwähnte Produkte können jederzeit ohne vorherige Ankündigung geändert werden.