Windows-Verwaltung

Neue Gruppenrichtlinienvorlagen in Windows Vista

Darren Mar-Elia

 

Kurz zusammengefasst:

  • Einblicke in ADMX-Dateien
  • Bearbeiten von ADMX-Dateien
  • Unterschied zwischen ADM- und ADMX-Dateien
  • Erstellen eines zentralen Speichers

Vor Windows Vista wurden die Registrierungswerte, die Sie innerhalb der Gruppenrichtlinien festlegen konnten, von ADM-Dateien mit einer komplizierten und proprietären Syntax gesteuert. Wenn Sie andere als die von Microsoft mit den standardmäßigen ADM-Dateien bereitgestellten Registrierungswerte steuern wollten, mussten Sie sich diese

Syntax aneignen und eine benutzerdefinierte ADM-Datei erstellen. Außerdem wurden diese ADM-Dateien mit jedem Gruppenrichtlinienobjekt (GPO) in Ihrer Active Directory®-Umgebung gespeichert, und jedes dieser GPOs wurde mit den zugehörigen ADM-Dateien in allen Domänencontrollern in der Domäne repliziert.

Mit der Veröffentlichung von Windows Vista™ hat Microsoft im Bereich gruppenrichtlinienbasierter Registrierungsvorlagen einen großen Schritt nach vorn gemacht. Windows Vista führt bedeutende Änderungen am Format der ADM-Datei (jetzt: ADMX) und an der Speichermethode dieser Dateien ein. In diesem Artikel werden wir uns das neue ADMX-Format genauer ansehen und herausarbeiten, wie sich diese Dateien vom ADM-Format unterscheiden. Darüber hinaus werde ich Ihnen zeigen, wie diese Dateien in einer Windows Vista-Umgebung gespeichert werden.

Unterschiede bei ADMX

Der größte Unterschied zwischen dem neuen ADMX-Dateiformat und dem alten ADM-Format, das es schon seit Windows NT® 4.0 gibt, ist, dass ADMX den XML-Standard für das Beschreiben der Einstellungen von Registrierungsrichtlinien übernommen hat. Das hat mehrere Vorteile. Der erste ist, dass es viel mehr Tools zum Bearbeiten von XML als für die ADM-Syntax gibt. Der zweite: Durch den schematisierten Aufbau von XML wird später die Programmierung von Tools erleichtert, die Ihnen dabei helfen, die richtigen Tags an den richtigen Positionen zu platzieren, um eine strukturierte ADMX-Datei zu erstellen. „Schematisiert“ bedeutet in diesem Zusammenhang, dass es für eine gegebene XML-Anwendung, wie z. B. das ADMX-Format, ein dokumentiertes Schema existiert, das mögliche Elemente und Attribute und deren Organisation beschreibt. Wir werden uns später in diesem Artikel ein Beispiel dazu anschauen.

Der andere wichtige Unterschied zwischen ADMX und ADM ist die Abtrennung des Zeichenfolgenabschnitts aus der Haupt-ADMX-Datei in eine sprachspezifische ADML-Datei. Wer sich mit ADM-Dateien auskennt, weiß, dass es am Ende jeder Datei einen Abschnitt gibt, der durch ein „[strings]“-Tag abgegrenzt wird, in dem Sie Textzeichenfolgen Werte zuweisen können, die angezeigt werden, wenn der Gruppenrichtlinien-Editor und administrative Vorlagen zum Einsatz kommen. Der Text z. B., der nach dem Klicken auf die Registerkarte „Erklärung“ für eine bestimmte Richtlinie angezeigt wurde, ist in diesem Zeichenfolgenabschnitt gespeichert. Das Problem dabei ist, dass die Zeichenfolgen in der ADM-Datei gespeichert wurden. Wenn Sie also ADM auf einem Windows®-System verwenden wollen, auf dem eine andere Sprache ausgeführt wird, müssen Sie eine neue ADM-Datei mit einem Zeichenfolgenabschnitt für diese Sprache erstellen.

Noch kompliziert wird es, wenn jemand, der beispielsweise die französische Version von Windows benutzt, ein vorhandenes GPO bearbeiten möchte, bei dem englische ADM-Dateien verwendet wurden. Der französische Administrator würde nur Englisch im Gruppenrichtlinien-Editor sehen. Windows Vista umgeht dieses Problem durch die Abtrennung des [Strings]-Abschnitts in eine XML-basierten ADM Language- (oder ADML-) Datei. Die ADML-Datei kann in einer beliebigen unterstützten Sprache geliefert werden. Diese Sprache lässt sich jederzeit ändern, ohne die Haupt-ADMX-Datei zu ändern, die die Richtlinien speichert. Was noch wichtiger ist: Wenn der französische Administrator ein GPO auf seiner Windows Vista-Arbeitsstation bearbeitet, erkennt der Gruppenrichtlinien-Editor, dass die französische Version von Windows verwendet wird, und lädt automatisch die französischen ADML-Dateien für das GPO.

Sie können sich alle ADMX- und ADML-Dateien ansehen, die mit Ihrer Installation von Windows Vista geliefert werden, indem Sie den Ordner „c:\Windows\policydefinitions“ öffnen (siehe Abbildung 1).

Abbildung 1 ADMX-Dateien in Windows Vista

Abbildung 1** ADMX-Dateien in Windows Vista **(Klicken Sie zum Vergrößern auf das Bild)

Hinweis: Oben in der Dateiliste in Abbildung 1 befindet sich ein Ordner namens „en-us“. Dies ist der sprachspezifische Ordner, der die ADML-Dateien für die ADMX-Dateien enthält, die Sie in diesem Ordner mit den Richtliniendefinitionen sehen – in diesem Fall für Englisch (USA). Es gibt eine ADML-Datei für jede ADMX-Datei. Bei der Veröffentlichung dieses Artikels enthielt Windows Vista standardmäßig 132 ADMX/ADML-Dateien. Dies ist ein weiterer wichtiger Unterschied zwischen Windows Vista und früheren Versionen: Unter Windows XP erstellte GPOs enthielten normalerweise fünf ADM-Dateien, von denen die größte die Datei „System.adm“ war, und in der sich die Richtlinienelemente für die meisten Windows-Komponenten unter Richtlinienkontrolle befanden. Bei Windows Vista hat Microsoft entschieden, die ADMX-Dateien nach Funktion zu trennen. Daher rührt die viel größere Anzahl der ADMX-Dateien. Jede ADMX-Datei deckt in der Regel eine Windows-Komponente (wie z. B. Systemsteuerung, DNS-Client, Windows-Explorer usw.) ab.

Einblick in ADMX-Dateien

Dass ADMX-Dateien in XML geschrieben werden, ist, wie ich bereits anmerkte, eine bedeutende Verbesserung. Leider beherrschen viele Administratoren XML jedoch nicht, geschweige denn, dass sie das Schema verstünden, das von ADMX für das Erstellen von Richtlinienerweiterungen verwendet wird. Eine Einführung in die Erstellung benutzerdefinierter ADMX-Dateien würde den Rahmen dieses Artikels sprengen. Wir wollen uns stattdessen darauf konzentrieren, wie ADMX-Dateien gebildet werden.

Sie können eine ADMX- oder ADML-Datei in einem beliebigen Texteditor (sogar in Editor) öffnen, aber er muss die XML-Syntax verstehen, sonst ergibt das Ganze nicht viel Sinn. Ich verwende Visual Studio®, da das darin enthaltene IntelliSense®-Feature mir beim Vervollständigen bestimmter Elemente hilft. Abbildung 2 stellt die ersten Zeilen einer der ADMX-Dateien dar, die mit Windows Vista ausgeliefert werden.

Figure 2 Ein wenig XML in einer ADMX-Datei

<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="0.9" schemaVersion="0.9"
  xmlns="https://www.microsoft.com/GroupPolicy/PolicyDefinitions">
  <policyNamespaces>
    <target prefix="AxInstSv" namespace="Microsoft.Policies.ActiveXInstallService" />
    <using prefix="windows" namespace="Microsoft.Policies.Windows" />
  </policyNamespaces>

Wenn Sie mit XML nicht vertraut sind, mag das komisch aussehen, aber viele dieser XML-Elemente sind in jeder ADMX-Datei enthalten. Das policyNamespaces-Element versieht z. B. diese ADMX-Datei innerhalb der Menge aller ADMX-Dateien mit einer individuellen Kennung.

Wenn Sie benutzerdefinierte ADM-Dateien in früheren Windows-Versionen erstellt haben, wissen Sie, dass es dort einen Tag-Satz gab, wie z. B. „Category“, „Policy“, „ListBox“ und „ActionList“, mit dem die Richtlinieneinstellungen definiert wurden, die im Gruppenrichtlinien-Editor erscheinen sollten. Viele dieser Tags sind immer noch dieselben, oder es wurde nur etwas an ihrem ADMX-Format geändert, aber sie sehen jetzt ganz anders aus, weil sie in XML dargestellt werden. Ich habe z. B. eine benutzerdefinierte ADM-Datei geschrieben, die es mir ermöglichte, verschiedene Protokollierungstypen unter Windows zur Fehlerbehebung bei Gruppenrichtlinien einzusetzen. Einen Abschnitt dieser benutzerdefinierten ADM-Datei sehen Sie in Abbildung 3. Ich habe diese Datei in das neue ADMX-Format überführt (siehe Abbildung 4).

Figure 4 Die in eine ADMX-Datei konvertierte ADM-Datei

<policy name="Folder Redirection Logging" class="Machine" displayName="$(string.FolderRedirLogging)" explainText="$(string.FolderRedirLogging_Help)" key="Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" valueName="FDeployDebugLevel">
      <parentCategory ref="PolicyLogging" />
      <supportedOn ref="windows:SUPPORTED_Win2K"/>
      <enabledValue>
        <decimal value="15"/>
      </enabledValue>
      <disabledValue>
        <decimal value="0" />
      </disabledValue>
    </policy>

Figure 3 Eine benutzerdefinierte ADM-Datei

CLASS MACHINE
  CATEGORY !!System
    CATEGORY !!GroupPolicy
    CATEGORY !!Logging
POLICY !!FolderRedir
EXPLAIN !!FolderRedir_HELP
KEYNAME "Software\Microsoft\Windows NT\CurrentVersion\Diagnostics"
VALUENAME "FDeployDebugLevel"
VALUEON NUMERIC 15
VALUEOFF NUMERIC 0
END POLICY ;FolderRedir
      END CATEGORY ;Logging
   END CATEGORY ;GroupPolicy
 END CATEGORY ;SYSTEM

In vielerlei Hinsicht ist dieser ADMX-Abschnitt viel einfacher zu verstehen als die ADM-Version, weil er kurz und bündig ist. Das Richtlinienelement gibt an, was diese Richtlinie zu tun hat (Protokollierung von Ordnerumleitungen). Die Attribute, denen „$(string.“ vorangeht, sind Verweise zum entsprechenden ADML-Zeichenfolgenelement. Die Attribute „key“ und „valuename“ geben an, welcher Registrierungsschlüssel und welcher Wert von dieser Richtlinie betroffen sind. Das parentCategory-Element legt fest, an welcher Stelle die Richtlinie in der Hierarchie der administrativen Vorlage des Gruppenrichtlinien-Editors erscheint. Das supportedOn-Element gibt an, von welcher Betriebssystemversion diese Richtlinie zu beachten ist. Die Elemente „enabledvalue“ und „disabledvalue“ legen fest, welche Werte in die Registrierung geschrieben werden, sobald diese Richtlinie aktiv bzw. inaktiv ist.

Dies ist eine ziemlich einfache Richtlinie mit Ein/Aus-Schalter. Wie bei der ADM-Syntax ist es auch hier möglich, komplexere UI-Elemente innerhalb des Gruppenrichtlinien-Editors zu erstellen. Wenn man das in ADMX machen möchte, wird die Syntax etwas komplizierter und enthält ein Präsentationsattribut, das auf einen Teil der ADML-Datei verweist, in dem sich die Beschriftungen der UI befinden. Ansonsten ist die ADMX-Syntax nicht wesentlich komplizierter. Man sollte allerdings stets bedenken, dass einige ADM-Tagnamen in ADMX anders heißen. In ADM heißt es z. B. „edittext“ und „listbox“. In ADMX werden diese Tags in der ADMX-Datei als „text“ und „list“ bezeichnet. Für diese Elemente werden entsprechende Einträge in der ADML-Datei vorgenommen, die den Text angeben, der neben ihnen angezeigt wird.

Wie Sie vielleicht bereits wissen, können Administratoren eine benutzerdefinierte (Legacy-)ADM-Datei in den Gruppenrichtlinienobjekt-Editor von Windows Vista laden. Ich werde oft gefragt, ob Microsoft ein Dienstprogramm zum Konvertieren benutzerdefinierter ADM-Dateien in die ADMX-Syntax bereitstellen wird. Tatsächlich wird Microsoft zusammen mit FullArmor Corp. ein kostenloses Tool (ADMX Migrator) auf den Markt bringen. Dieses Tool kann zweierlei. Zuerst einmal konvertiert es Ihre alten benutzerdefinierten ADM-Dateien in das ADMX-Format (siehe Abbildung 5 für ein Beispiel für den Einsatz des Tools, wobei meine Datei „gpolog.adm“ entsprechend bearbeitet wird).

Abbildung 5 ADMX Migrator

Abbildung 5** ADMX Migrator **(Klicken Sie zum Vergrößern auf das Bild)

Zum anderen enthält es einen ADMX-Editor, mit dem Sie ganz neue ADMX-Dateien erstellen können. Dieses Tool steht Ihnen unter go.microsoft.com/fwlink/?LinkID=77409 zum Download zur Verfügung.

ADMX-Speicherung

Die andere wichtige Änderung, die ich hier besprechen möchte, ist die Methode, nach der ADMX- und ADML-Dateien für ihren Einsatz gespeichert werden. In Windows-Versionen vor Windows Vista wurden die ADM-Dateien beim Bearbeiten eines GPOs automatisch von der lokalen Arbeitsstation kopiert, auf der der SYSVOL-Abschnitt des GPOs auf einem Domänencontroller innerhalb Ihrer Active Directory-Domäne bearbeitet wurde. Diese ADM-Dateien wurden dann für jedes erstellte GPO an alle Domänencontroller einer Domäne repliziert. Dadurch wurden jede Menge Netzwerkbandbreite und Festplattenspeicher verschwendet, insbesondere in großen Umgebungen mit dutzenden oder hunderten von GPOs. Windows Vista kehrt diesen Prozess um. Wenn Sie ein Active Directory-basiertes GPO auf einer Windows Vista-Arbeitsstation erstellen, werden die Richtlinien für administrative Vorlagen, die im Gruppenrichtlinien-Editor zu sehen sind, standardmäßig auf dem Computer aus dem Verzeichnis „c:\Windows\policydefinitions“ geladen, auf dem Sie das GPO bearbeiten.

Die ADMX- und ADML-Dateien werden nicht auf SYSVOL kopiert. Auf sie wird nur lokal verwiesen. Die Anforderungen an Speicher- und Netzwerkkapazitäten, die ADM-Dateien an die Umgebung der Gruppenrichtlinie stellen, lassen sich auf diese Weise beseitigen. Es wird noch besser. Windows Vista unterstützt außerdem einen zentralen Speicher, der als Repository für administrative Vorlagen dient. Damit wird eine wirksame Kontrolle der ADMX-Dateien für die Bearbeitung der GPOs ermöglicht, und zwar unabhängig davon, wer das Bearbeiten durchführt. Das erreichen Sie, indem Sie alle offiziellen ADMX- und ADML-Dateien (und alle benutzerdefinierten Dateien dieser Typen, die Sie erstellt haben) an einen Netzwerkspeicherort kopieren. Das sich daran anschließende Bearbeiten der Gruppenrichtlinien von Windows Vista-Arbeitsstationen verweist auf diese netzwerkbasierten Versionen statt auf die jeweiligen lokalen Versionen. Das Einrichten eines zentralen Speichers ist recht einfach und wird nacheinander auf den einzelnen Domänen durchgeführt. Befolgen Sie dazu die Schritte in der Randleiste „Erstellen eines zentralen Speichers“.

Zusammenfassung

Das neue ADMX-Format von Windows Vista ist eine klare Verbesserung gegenüber ADM-Dateien, die mit früheren Betriebssystemversionen verwendet wurden. Der Einsatz von XML bietet einen besseren Rahmen für das Bearbeiten und Durchsuchen dieser Dateien. Das Verschieben sprachspezifischer Zeichenfolgen in getrennte Dateien ermöglicht das nahtlose Bearbeiten von Gruppenrichtlinien. Der zentrale Speicher macht das Speichern und Aktualisieren aller GPOs mit Kopien von ADM-Dateien überflüssig. All das macht das Erlernen von ADMX empfehlenswert.

Erstellen eines zentralen Speichers

Das Erstellen eines zentralen Speichers ist recht einfach. Folgen Sie diesen einfachen Schritten, um einen Speicher in Ihrer Active Directory-Domäne zu erstellen:

Schritt 1: Öffnen Sie den Explorer, und navigieren Sie zur SYSVOL-Freigabe auf dem PDC-Emulator-DC in Ihrer Umgebung. Sie können einen beliebigen DC verwenden, aber der Besitzer der PDC-Rolle befindet sich normalerweise dort, wo die Änderungen der Gruppenrichtlinie konzentriert sind.

Schritt 2: Öffnen Sie den Ordner mit den Richtlinien unter SYSVOL, und legen Sie ein neues Verzeichnis mit der Bezeichnung „PolicyDefinitions“ an.

Schritt 3: Kopieren Sie den Inhalt des Ordners „c:\Windows\policydefinitions“ auf Ihrer Windows Vista-Arbeitsstation in den neuen Ordner „PolicyDefinitions“, und vergessen Sie dabei nicht den sprachabhängigen ADML-Ordner (z. B. „en-us“ auf US-englischen Computern).

Nachdem die ADMX- und die ADML-Dateien in den zentralen Speicherordner kopiert worden sind, beginnt der Gruppenrichtlinienobjekt-Editor von Windows Vista damit, Verweise auf die dort befindlichen Dateien zu erstellen, und ignoriert solche, die lokal gespeichert sind.

Darren Mar-Elia ist Gruppenrichtlinien-MVP bei Microsoft, Entwickler der beliebten Gruppenrichtlinienwebsite www.gpoguy.com und Mitverfasser von „Microsoft Windows Group Policy Guide“ (Microsoft Press, 2005). Er ist auch CTO und Gründer von SDM Software, Inc. Sie erreichen ihn unter Darren@gpoguy.com.

© 2008 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.