GPOs konsolidieren

GPOs

Microsofts Group Policies sind eine feine Sache. Tausende Computer- und Benutzereinstellungen, die von zentraler Stelle aus für alle Clients konfiguriert werden können. Nachdem im Regelfall nicht alle Computer bzw. Benutzer die gleichen Einstellungen bekommen sollen, müssen unterschiedliche Sätze von Einstellungen in jeweils ein Group Policy Objekt gepackt werden. Die GPOs werden dann auf unterschiedliche OUs verlinkt.

 

Oft haben wir es nicht mit der grünen Wiese zu tun, d.h. die Policies werden nicht komplett neu erstellt sondern müssen im Wesentlichen neu strukturiert und konsolidiert werden. Dazu müssen bereits vorhandene GPOs u.a. zusammengefasst werden.

Was geht

Mit Windows Bordmitteln kommt man bei der Übernahme von Einstellungen zwischen verschiedenen Group Policy-Objekten nicht weit.

Immerhin können Preferences, zu Deutsch „Einstellungen“, leicht kopiert werden. Dazu öffnet man Quell- und Ziel-GPO per GPO Editor, kopiert die gewünschte Preference und fügt sie an gleicher Stelle im der Zielobjekt ein. Genauso funktioniert das auch per Drag and Drop. Dabei werden im Hintergrund Einträge in XML-Dateien im Sysvol kopiert.

 

Damit steht eine einfache Methode für die Übernahme zur Verfügung, die dem Administrator im Übrigen den Vorteil bietet, relativ genau wählen zu können, welche Einstellungen übernommen werden sollen und welche nicht.

Was nicht geht

Was nicht geht ist schnell zusammengefasst – alles andere.

 

Klassische Richtlinien, seien es Einstellungen unter „Windows Settings“ (Windows-Einstellungen) oder die sehr große Zahl von Einstellungen unter „Administrative Templates“  (Administrative Vorlagen), können nicht mit Standard-Bordmitteln übernommen werden. Standardmäßig bleibt da nur die manuelle Übertragung über die Tastatur.

 

Bei den klassischen Policies zugrundeliegenden Dateien im Sysvol handelt es sich um INF-Dateien, vor allem aber um die „Registry.pol“. Von der Registry.pol gibt es jeweils eine eigene Version für den Computer- und den Benutzerteil der GPO.

Was nicht geht wird gängig gemacht

Zumindest ein Teil, nämlich die Einstellungen unter „Administrative Templates“ bzw. in den Registry.pol-Dateien kann per Script übernommen werden. Dazu habe ich auf Basis eines von Ashley McGlone hier veröffentlichten Scripts ein Powershell Script erstellt, das die Registry-basierenden Einstellungen aus GPOs in ein anderes Policy Objekt übernimmt.

 

Die Quell-GPOs können über ihren Namen oder die OU, auf die sie verlinkt sind, selektiert werden. Außerdem kann eingestellt werden, ob der Benutzer- und oder Computerteil übernommen werden soll. Als Ziel kann eine neue GPO erstellt werden oder die Einstellungen aus den Quell-GPOs können einer bestehenden GPO hinzugefügt werden.

 

Das Powershell Script Merge-Policies kann unten heruntergeladen werden. Die nötige Dokumentation (Parameter etc.) befindet sich im Quelltext. Die Benutzung erfolgt auf eigene Gefahr, es empfiehlt sich das Script zunächst in einer Testumgebung auszuprobieren.

 

Wenn die gleiche Policy über mehrere Quell-GPOs definiert wird, dann gewinnt übrigens grundsätzlich die letzte. Welche GPOs in welcher Reihenfolge behandelt werden und welche Einstellungen übernommen werden, wird als Text ausgegeben. Die Ausgabe kann per „>“ oder „| tee-object“ in eine Datei umgeleitet werden.

Was will man mehr?

Eine ganze Menge bliebe noch zu wünschen. So wäre es schön, wenn man genau mitgeben könnte, welche Einstellungen aus den Quell-GPOs übernommen werden sollen - die Einschränkung auf Benutzer- bzw. Computerteil ist doch recht grob. Auch über das Entfernen von Einstellungen könnte man nachdenken und vor allem ein einfacher Vergleich von mehreren GPOs wäre schön um zu finden, ob es Überschneidungen bzw. fehlende Einstellungen gibt. Und ein grafisches Userinterface, und, und, und,… 

Download
Merge-Policies
Das Powershell-Script erlaubt die Zusammenfassung von Policies aus unterschiedlichen GPOs.
merge-policies.zip
Komprimiertes Archiv im ZIP Format 3.1 KB

Kommentar schreiben

Kommentare: 0