Gruppenrichtlinien richtig sichern und dokumentieren
Im Rahmen meiner Trainer- und Consulting-Tätigkeiten werde ich oft gefragt: “Wie gehe ich am besten mit Gruppenrichtlinien um, wenn ich die ändern möchte?”. Diese Frage wird unter anderem auch in unserem Custom MOC “Wissen für Administratoren – Gruppenrichtlinien” behandelt.
Für das Thema GPO Änderungsmanagement gibt es verschiedene Ansätze:
Advanced Group Policy Management (AGPM)
Ist eine extra Lösung die in einer eigenen Datenbank arbeitet. Die besonderen Highlights sind hier die Versionierung, Workflows und ein Vier Augen Prinzip. Der Nachteil: AGPM ist nur über MDOP (Microsoft Desktop Optimization Pack for Software Assurance) zu lizensieren, damit für alle Kunden ohne Software Assurance nicht zu nutzen.
Kopieren von Gruppenrichtlinien und manuelle Versionierung
Der Klassiker, hat seine Vorteile und Nachteile. Unteranderem werden nicht alle Einstellungen kopiert, manche greifen Richtlinien übergreifen. Nicht ganz so einfach.
Eine Skript / Power Shell Lösung
Auch ein Klassiker ist eine Skript gesteuerte Lösung die Regelmäßig ein Export der Gruppenrichtlinien macht, so das einfach auf alte Versionen gewechselt werden kann. Dieses Skript erstellt einen Unterordner mit dem Aktuellen Datum in dem entsprechenden Pfad und exportiert dort die Gruppenrichtlinien und erzeugt die passenden HTML-Reports. Dieses Script kann auf einem passenden Server dann auch per Taskplaner ausgeführt werden.
Hier ein einfaches Beispiel zum Anpassen:
<# .SYNOPSIS Erstellt Backup der Gruppenrichtlinien mit zugehörigen HTLM Report in ein Tagesunterverzeichnis. .DESCRIPTION Erstellt Backup der Gruppenrichtlinien mit zugehörigen HTLM Report in ein Tagesunterverzeichnis. dem Script angepasst werden. .EXAMPLE GPOBackup.ps1 .INPUTS Keine. .OUTPUTS Keine. .NOTES Author : Fabian Niesen, FN, CONET Solutions GmbH (fniesen@conet.de) Filename : GPOBackup.ps1 Requires : PowerShell Version 3.0 Version : 1.0.0 History : 1.0.0 FN 27/07/08 Erstellung der initialen Version. .LINK https://conet.de/blog #> Import-Module GroupPolicy $date = get-date -format yyyy-MM-dd $path = "\\Server\Freigabe\GPOBackups\"+$date New-Item -Path $path -ItemType directory Backup-Gpo -All -Path $path get-GPO -all | % { Get-GPOReport $_.id -ReportType HTML -Path "$path$($_.DisplayName).html" }
Dieses Skript bzw. diese Vorgehensweise wurde vom Autor auf den hier beschriebenen Plattformen unter den angegebenen Rahmenbedingungen erfolgreich getestet. Wenn Sie eigene Erfahrungen oder Fragen zum Einsatz haben, freuen wir uns über Ihre Kommentare.
Haftungsausschluss
Die hier beschriebenen Scripts und Vorgehensweisen werden im gegenwärtigen Zustand und ohne jegliche Gewährleistung zur Verfügung gestellt. Alle Risiken, die aus der Verwendung oder Ausführung der hier beschriebenen Scripts und Vorgehensweisen entstehen, unterliegen vollständig Ihrer Verantwortung. In keinem Fall können CONET, unsere Autoren oder andere an der Bereitstellung der Inhalte Beteiligte im Zusammenhang mit den hier beschriebenen Scripts und Vorgehensweisen irgendwelchen Support leisten, noch für irgendwelche Schäden haftbar gemacht werden (einschließlich und ohne Einschränkung aller Schäden durch Geschäftsverluste, Geschäftsausfälle, den Verlust von Geschäftsinformationen oder andere finanzielle Verluste), die aus der Verwendung oder der Nichteignung zur Verwendung der hier beschriebenen Scripts und Vorgehensweisen entstehen.
Über den Autor
Fabian Niesen ist seit Jahren beruflich als IT-Consultant unterwegs und hat von Mai 2012 bis Juli 2015 bei der CONET Solutions GmbH in Hennef gearbeitet. Unter anderem ist er Zertifiziert als MCSA Windows Server 2012, MCSA Office365, MCSE Messeging, Microsoft Certified Trainer und Novell Certified Linux Administrator.
Die Aktuelle Version ist mittlerweile auf GitHub verfügbar.