Verknüpfte GPOs und OUs finden mit PowerShell

    GPO-Verknüpfungen in der GruppenrichtlinienverwaltungBei einer großen Zahl an OUs und GPOs ist nicht leicht zu über­blicken, welche GPOs mit welchen OUs ver­knüpft sind. In Power­Shell lässt sich das mit relativ geringem Aufwand heraus­finden. Dabei kann man wahl­weise die OUs nach ver­linkten GPOs oder GPOs nach OUs filtern, mit denen sie ver­bunden sind.

    Grundsätzlich erhält man diese Information auch über GUI-Tools wie die Gruppen­richtlinien­verwaltung. Klickt man auf eine OU, dann sieht man in der Registerkarte Bereich, welche GPOs damit verknüpft sind. Umgekehrt funktioniert das auch, wenn man in der Baumansicht ein GPO auswählt.

    Links zu GPOs als Eigenschaft von OUs

    Arbeitet man viel auf der Kommandozeile von PowerShell, dann kann man sich dort die GPO-Verknüpfungen schneller anzeigen lassen als auf der GUI, wenn man für diesen Zweck die nötigen Funktionen definiert hat.

    Sucht man nach den GPOs, die mit einer OU verbunden sind, dann gibt das Cmdlet Get-ADOrganizationalUnit unter anderem die Eigenschaft LinkedGroupPolicyObjects zurück. Es handelt sich dabei um ein Array, das man mit Select-Object und dem Schalter ExpandProperty aufsplitten kann.

    Die folgende function nimmt als Parameter den Namen einer OU, die untersucht werden soll. Sie setzt die einfache Bezeichnung der OU in den Distinguished Name ein, wobei man diesen für die jeweilige Domäne erst anpassen muss. Ein regulärer Ausdruck extrahiert dann die GUID des GPO. Diese übergibt man dann dem Cmdlet Get-GPO, das schließlich den Namen des Objekts anzeigt.

    Als Ergebnis erhält man somit eine simple Liste mit GPOs, die mit der betreffenden OU verbunden sind.

    Anzeigen, welche GPOs mit einer OU verlinkt sind.

    Die umgekehrte Frage nach den OUs, mit denen ein GPO verknüpft ist, lässt sich noch einfacher beantworten. Der function Get-LinkedOUs übergibt man den Namen des GPOs, für den Get-GPO die GUID ermittelt.

    Anschließend durchläuft Get-ADOrganizationalUnit alle OUs und schaut mit Hilfe des match-Operators nach, ob die GUID in den LinkedGroupPolicyObjects enthalten ist. Wenn dies der Fall ist, gibt sie den Namen der OU aus.

    Ermitteln, mit welchen OUs ein GPO verknüpft ist.

    Wenn man die beiden Funktionen in das PowerShell-Profil aufnimmt, dann stehen sie nach dem Start der Kommandozeile automatisch zur Verfügung.

    Keine Kommentare