Welche lokalen Gruppenrichtlinien sind auf dem Rechner aktiviert?


    Tags: , ,

    Lokale Gruppenrichtlinien (gpedit.msc)Beim GPO-Troubleshooting kann es vorkommen, dass man Einstellungen finden möchte, die von den lokalen Gruppen­richt­linien gesetzt werden. Mit rsop.msc steht dafür ein grafisches Werkzeug zur Verfügung. Effizienter ist es in der Regel jedoch, einen Report mit gpresult.exe zu erzeugen und diesen mit PowerShell auszuwerten.

    Bei Konflikten zwischen lokalen Gruppenrichtlinien und solchen auf Domänenebene setzen sich letztere durch, weil sie erst nach den lokalen ausgeführt werden und so eventuell vorhandene Einstellungen überschreiben.

    Wenn man aber zum Beispiel ein GPO im AD deaktiviert, dann kann der erwartete Effekt ausbleiben, weil eine lokale Richtlinie dazwischenfunkt. Abgesehen davon kann es interessant sein, sich einen Überblick über die konfigurierten Einstellungen zu verschaffen, etwa auf Workgroup-Rechnern.

    Wie kann man lokale Gruppen­richtlinien auf einem Rechner anzeigen? Dafür bieten sich diese Verfahren an:

    Lokale Richtlinien in RSOP finden

    Wenn man dafür ein grafisches Tool verwenden möchte, dann bietet sich rsop.msc an. Auf einem Workgroup-Rechner mit relativ wenigen Richtlinien findet man hier schnell die konfigurierten Einstellungen.

    Rsop.msc zeigt bei jeder Einstellung den Namen des GPO oder Local Group Policy an.

    Ist der Rechner jedoch Mitglied in einer Domäne, dann muss man sich praktisch durch den ganzen Baum arbeiten, um zu schauen, ob eine Einstellung aus der Domäne oder einer lokalen Policy stammt.

    Auswertung der Textausgabe von gpresult

    Das Standard-Tool für das GPO-Reporting ist gpresult.exe. Der Aufruf von

    gpresult /r

    zeigt unter Angewendete Gruppenrichtlinienobjekte nur, ob sich dabei auch lokale befinden ("Richtlinien der lokalen Gruppe"). Die damit konfigurierten Einstellungen erfährt man so aber nicht.

    Ein einfacher Aufruf von gpresult zeigt nur an, dass lokale Richtlinien angewendet wurden.

    Mehr Auskünfte erteilt das Tool, wenn man es mit dem Schalter /v aufruft. Anstatt die relevanten Einträge selbst zu suchen, kann man diese mit einem RegEx ausfiltern:

    gpresult /r /v > gpr.txt

    Get-Content -Raw gpr.txt |
    Select-String '(?s)Gruppenrichtlinienobjekt: Local Group Policy.*?Aktiviert' -AllMatches |
    Foreach {$_.matches} | Format-List @{n="Einstellung";e={$_.value}}

    Auswertung des erweiterten Reports von gpresult mit PowerShell und einem regulären Ausdruck

    Die Ausgabe ist jedoch nicht besonders übersichtlich und es fehlen Informationen wie etwa der Pfad innerhalb des GPO-Editors, unter dem die betreffende Einstellung zu finden ist.

    XML-Report mit PowerShell untersuchen

    Alternativ zu einer bloßen Textausgabe kann gpresult.exe einen strukturierten Report im XML-Format erstellen, der sich dann mit PowerShell gut auswerten lässt:

    gpresult /X gpr.xml


    [XML]$XMLRep = Get-Content -Raw .\gpr.xml

    $XMLRep.Rsop.ComputerResults.ExtensionData.Extension.Policy |
    where {$_.GPO.Identifier.'#text' -eq "LocalGPO"} |
    Format-List @{n="Name";e={$_.name}}, @{n="Pfad";e={"Computer - " + $_.Category}}

    Das obige Code-Beispiel extrahiert lokal gesetzte Richtlinien aus dem Zweig Computer. Möchte man zusätzlich die Einstellungen für Benutzer finden, dann führt man anschließend diesen Befehl aus:

    $XMLRep.Rsop.UserResults.ExtensionData.Extension.Policy |
    where {$_.GPO.Identifier.'#text' -eq "LocalGPO"} |
    Format-List @{n="Name";e={$_.name}}, @{n="Pfad";e={"Benutzer - " + $_.Category}}

    Die Ausgabe der beiden Kommandos enthält den Namen der Einstellungen sowie deren Pfad im GPO-Editor. Bei Bedarf kann man noch weitere Elemente hinzunehmen, so befindet sich etwa der gesamte Hilfetext für jede Einstellung im XML-Report.

    Auswertung des XML-Reports von gpresult mit Hilfe von PowerShell

    Zusammenfassung

    Wenn man herausfinden möchte, welche Einstellungen durch lokale Gruppenrichtlinien gesetzt werden, dann kann man auf Workgroup-PCs zu rsop.msc greifen.

    Sind Rechner Mitglieder in einer Domäne, dann ist das grafische Tool zu umständlich. In diesem Fall kann man unterschiedliche Reports mit gpresult.exe erzeugen und diese mit PowerShell auswerten. Am besten gelingt dies mit strukturierten Dateien im XML-Format.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links