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.
Auch lesen Aktiver Verzeichnis-Last-Logon-Bericht
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.
Auch lesenBerichte über Office 365-Benutzer
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.
Lesen Sie auch Bericht über gesperrte Benutzer im Active Directory
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.
Auch lesen Active Directory Management
Ü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.
- Entfernen Sie den
Pfad
Parameter in dieser Situation. Beachten Sie den[xml]
Cast und das Fehlen einesPfad
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
Auch Lesen Active Directory Reporting Tool
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.
Auch LesenAktiver Verzeichnissperrungs-Bericht
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/