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

IT Consultant bei CONET | Website | Beiträge

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.

3 Antworten

  1. Die Aktuelle Version ist mittlerweile auf GitHub verfügbar.

  1. 24. Mai 2018

    […] 2014 mich mal für die erste einfache Version des Skriptes befasst hatte, und darüber bei der CONET im Blog berichtet hatte ist etwas Zeit vergangen. Diese erste Fassung kam auf gerade mal 6 Zeilen Code ohne […]

  2. 27. Oktober 2019

    […] 2014 mich mal für die erste einfache Version des Skriptes befasst hatte, und darüber bei der CONET im Blog berichtet hatte ist etwas Zeit vergangen. Diese erste Fassung kam auf gerade mal 6 Zeilen Code ohne […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert