Erstellen Sie Active Directory Gruppenrichtlinien-Berichte mit PowerShell (GPO)

Erstellen Sie Active Directory-Gruppenrichtlinienberichte mit PowerShell. Mithilfe des Get-GpoReport-Cmdlets können wir Berichte über Gruppenrichtlinien (GPO) erstellen, von einfachen textbasierten bis hin zu vollständigen Hypertext Markup Language (HTML)-Berichten. Darüber hinaus können wir diesen Berichterstellungsprozess mit PowerShell automatisieren. Dies dient dazu, Zeit zu sparen und wichtige Informationen über Ihr Active Directory (AD)-System zu erhalten. In diesem Artikel werden wir erläutern, wie Sie das PowerShell-GPO-Modul importieren, GPOs exportieren und GPOs mit einer Organizational Unit (OU) verknüpfen. Dies wird als Beispiel dienen, damit sie alle zusammenarbeiten, um erstklassige Berichte zu erstellen.

Beginnen wir mit der Erstellung von Active Directory-Richtlinienberichten mit PowerShell.

Erstellen Sie AD-Gruppenrichtlinienberichte (GPO) mit PowerShell

Voraussetzungen

In diesem Artikel werden einige verschiedene Situationen behandelt, die das Erstellen und Ändern bestehender GPOs betreffen. Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen, wenn Sie den Beispielen folgen möchten:

  • Das PowerShell-Modul für Gruppenrichtlinien. Wenn Sie Windows 10 verwenden, können Sie dies herunterladen und installieren RSAT, oder wenn Sie Windows Server verwenden, können Sie den folgenden PowerShell-Befehl verwenden:
Install-WindowsFeature -Name GPMC
  • A computer member of the same AD domain from which we will query GPOs.
  • Ein AD-Computer mit einem Domänenbenutzerkonto mit Berechtigungen zum Lesen von GPOs.

Erstellen von HTML-Berichten mit Get-GpoReport

Zunächst einmal nehmen wir an, dass wir eine einzelne Gruppenrichtlinie (GPO) haben. Daher möchten Sie die Einstellungen daraus anzeigen (sowie einen HTML-Bericht generieren), um die Dinge in Gang zu bringen. Glücklicherweise kann Get-GpoReport eine GPO aufspüren und PowerShell nutzen, um sie zu exportieren. Dazu benötigen wir entweder den Namen der GPO oder die globale eindeutige Kennung (GUID) der GPO.

Sie müssen daher mindestens drei Parameter verwenden, um einen detaillierten HTML-Bericht zu erstellen:

  • Name oder GUID zum Auffinden der GPO.
  • ReportType-Parameter, um die Art des zu generierenden Berichts anzugeben. Wir können zwischen HTML oder XML (Erweiterbare Auszeichnungssprache) wählen.
  • Pfad, um anzugeben, wo wir den Bericht speichern möchten.

Vielleicht haben wir eine GPO in Ihrer Umgebung. Wir können beispielsweise den ReportType auf den Wert HTML festlegen, um einen HTML-Bericht zu erstellen, und den Pfad angeben, an dem Sie diese HTML-Datei speichern möchten, wenn wir den Namen der GPO kennen, wie in diesem Beispiel.

Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

Alternativ könnten wir den Guid-Parameter verwenden, um die GPO zu finden, aber dies ist ein zusätzlicher Schritt gemäß dem unten stehenden Beispiel.

$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

Sobald sie vorbereitet ist, können wir den Bericht in Ihrem bevorzugten Browser anzeigen.

Generierung von HTML-Berichten für alle Gruppenrichtlinien

Alternativ können wir einen domänenweiten Bericht für Gruppenrichtlinien erstellen. In diesem Fall müssen wir das Argument All verwenden, um alle Gruppenrichtlinien in der Domäne abzufragen. Anstatt jedoch die Option Name oder Guid zu verwenden, um eine bestimmte Gruppenrichtlinie zu kennzeichnen, verwenden wir den Schalterparameter All, um alle zu finden.

Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"

Wenn dies in einer AD-Umgebung verwendet wird, kontaktiert das Cmdlet Get-GPOReport einen Domänencontroller (DC), der durch den Parameter Server angegeben wird, um die Gruppenrichtlinien zu lesen. Wenn kein Server verfügbar ist, wird standardmäßig der DC mit der Rolle PDC-Emulator verwendet.

Als nächstes zeigen wir Ihnen, wie Sie mit PowerShell Aktive Directory Richtlinienberichte erstellen können, indem Sie XML-Berichte generieren.

XML-Berichte mit Get-GpoReport generieren

Im Allgemeinen gibt es nach dem Importieren des GPO-Moduls in PowerShell noch andere Dinge, die Get-GPOReport tun kann. Das bedeutet, dass wir neben dem Exportieren von GPOs und dem Erstellen von HTML-Berichten auch XML-Berichte erstellen können. Beispielsweise müssen wir den Wert des Parameters ReportType von HTML auf XML ändern, wenn wir einen XML-Bericht für eine bestimmte GPO erstellen möchten.

Zum Beispiel fragen wir unten eine vorhandene GPO namens Beispielbericht ab, um einen XML-Bericht zu erstellen. Anschließend öffnen wir diesen Bericht mit dem Invoke-Item-Befehl in der Standardanwendung für XML-Dateien:

Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"

Wenn der Vorgang abgeschlossen ist, sehen wir die XML-Datei wie im folgenden Screenshot.

Zunächst bemerken wir, dass der GPO-XML-Knoten alles enthält. Innerhalb davon finden wir Dinge wie Identifier (die GPO-GUID), Name (Der GPO-Name), Include Comments, Security Descriptor, SDDL und viel mehr Informationen.

GPO-XML-Bericht

Abgesehen von der Formatierung, was unterscheidet diesen XML-Bericht von HTML? Grundsätzlich sind die in der HTML-Ausgabe gesehenen Attribute auch in der XML-Ausgabe vorhanden. Aber sie sind strukturierter und einfacher zu parsen.

  • VersionDirectory Version des GPO, die im AD-Datenbank gespeichert ist.
  • VersionSysvol – Version der GPO, die in SYSVOL gespeichert ist.
  • Aktiviert – Wenn deaktiviert, wird der GPO-Verarbeitungsmechanismus auf dem Client-Computer die in dem entsprechenden Teil der Richtlinie enthaltenen Einstellungen nicht anwenden.

Wichtig ist, dass die Richtlinienversion (Computer oder Benutzer) ansteigt, wenn wir eine GPO ändern. Daher kann der Gruppenrichtlinien-Verarbeitungsmechanismus dann bestimmen, wann neue Einstellungen angewendet werden sollen und wann sich eine Richtlinie geändert hat. Darüber hinaus ermöglicht dieses Verhalten das Starten von gpupdate.exe nach der Änderung einer GPO ohne Verwendung des gemeinsamen /force-Schalters.

Überprüfen Sie Active Directory Gruppenrichtlinienberichte mit InfraSOS

Probieren Sie uns aus für Kostenlos, Zugang zu allen Funktionen. – 200+ AD-Berichtsvorlagen verfügbar. Einfach Ihre eigenen AD-Berichte anpassen.




GMPC

Wir können die GPO-Version (für AD und SYSVOL) und deren Status im GPMC anzeigen.

Darüber hinaus verarbeitet der Computer des Clients eine Richtlinie auch dann, wenn VersionDirectory und VersionSysvol den Wert 0 haben, aber Enabled auf true gesetzt ist. Das System informiert den Verarbeitungsmechanismus darüber, dass wir den relevanten Teil der Gruppenrichtlinie nicht implementieren müssen. Die Änderung der Konfiguration beeinflusst die Leistung eines schnellen Computers in einem relativ kurzen Netzwerk nicht wesentlich. Trotzdem kann dies wertvolle Sekunden bei solchen GPOs einsparen, insbesondere bei älteren Maschinen in langsameren Netzwerken.

Daher wendet der Verarbeitungsmechanismus auf dem Client-Computer keine Richtlinie an, bei der VersionDirectory und VersionSysvol größer als 0 sind, aber Enabled auf false gesetzt ist. Wir können uns fragen, warum einige Einstellungen nicht angewendet werden. Daher ist es wichtig zu untersuchen, ob dies ein Unfall oder absichtlich ist.

Angenommen, wir sind mit dem internen Funktionsweise der Gruppenrichtlinie vertraut. In diesem Fall können wir den Befehl Get-GPOReport verwenden. Dadurch können wir diese Einstellungen direkt über eine Eigenschaft überprüfen, anstatt zum GPMC zu navigieren.

Alternativ möchten wir uns möglicherweise auf einige Einstellungen in einer GPO konzentrieren. Oder wir möchten eine GPO mithilfe von PowerShell an eine Organisationseinheit anhängen, sodass wir keinen Bericht erstellen müssen.

  1. Entfernen Sie den Pfad Parameter in dieser Situation. Beachten Sie den [xml] Cast und das Fehlen eines Pfad Parameters im folgenden Beispiel.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml

2. Nachdem wir die Ausgabe von Get-GPOReport in ein XML-Objekt umgewandelt haben, können wir schnell auf seine vielen Eigenschaften mit einer kurzen Punktnotation verweisen.

$GpoXml.GPO.Computer
$GpoXml.GPO.User

3. Fügen Sie eine foreach Schleife hinzu und verwenden Sie das All Argument, um jede GPO-Ausgabe durchzugehen.

$AllGpos = Get-GPO -All
$GpoVersionInfo = foreach ($gpo in $gpos) {
    [xml]$g = Get-GPOReport -ReportType Xml -Guid $gpo.Id
    [PSCustomObject]@{
        "Name" = $g.GPO.Name
        "Comp-Ad" = $g.GPO.Computer.VersionDirectory
    }
}
$GpoVersionInfo | Sort-Object Name | Format-Table

Analysieren von XML GPO-Berichten

Wir können viele Aspekte Ihrer GPOs anhand der XML-Ausgabe, die Get-GPOReport erstellt, erfahren. Im vorherigen Beispiel, wenn wir uns die $GPOXML.GPO.Computer und $GPOXML.GPO.User Eigenschaften des vorherigen Modells ansehen, werden wir eine ExtensionData Eigenschaft wie unten gezeigt sehen.

Wie unten gezeigt, können wir damit beginnen, Ihre Berichte basierend auf den XML-Daten zu erstellen, indem wir auf diese XML-Knoten in PowerShell zugreifen.

$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
    [PSCustomObject]@{
        "Name" = $policy.Name
        "State" = $policy.State
    }
}

$PolicyDetails

Vielen Dank, dass Sie unseren Artikel-Blog darüber gelesen haben, wie Sie Active Directory-Richtlinien Berichte mit PowerShell erstellen können. Lassen Sie uns abschließen.

Erstellen von Gruppenrichtlinienberichten mit PowerShell Abschluss

Neben der nativen Group Policy Management Console (GPMC) wurden in diesem Artikel Möglichkeiten diskutiert, umfassende Berichte über Gruppenrichtlinien durch Exportieren in HTML- und XML-Formate zu erstellen. Wir haben auch das Get-GpoReport-Cmdlet besprochen. Dieses Cmdlet kann nun dieselben Informationen wie die GPMC über PowerShell abrufen. Dies ermöglicht es uns, viele GPOs gleichzeitig abzufragen, was zweifellos bei der Erstellung ausgezeichneter Berichte hilfreich sein wird.

Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/