Ein Gruppenrichtlinienobjekt (GPO) auf alle Organisationseinheiten (OUs) mit bestimmtem Namen unterhalb eines DNs anwenden (linken)

Problem

Als Windows-Administrator wird man mit Aufgaben konfrontiert, die recht einfach klingen. Bis man sie sehr oft von Hand ausführen muss.

Ein Beispiel aus der Praxis:
„Erstelle eine neue GPO und verlinke diese auf alle OUs, die ‚Würstchen‘ heißen, unterhalb von OU=Speisekarte“.

Oder anders formuliert: Verknüpfe eine Gruppenrichtlinie auf alle 3673409 OUs mit diesem Namen.

Das ist in der Gruppenrichtlinienverwaltung technisch gar kein Problem; sofern die Anzahl übersichtlich ist (und die OUs nicht über mehrere Ebenen verteil sind). Man klickt sich durch die AD-Verwaltungskonsole, öffnet Eigenschaften, fügt die GPO hinzu … und wiederholt das sehr oft.

Lösung

Das kann man glücklicherweise ganz gut mit der PowerShell automatisieren.

Dieser Schnippsel durchsucht mit -like alle OUs unterhalb eines angegebenen DN nach einem bestimmten Begriff und verlinkt automatisch die gewünschte GPO dazu.

$BaseDN = "OU=UNTERSTRUKTUR,DC=EXAMPLE,DC=COM"
$Suchbegriff = "WÜRSTCHEN"
$GPO = Get-Gpo -Name "NEUE_GRUPPENRICHLINIE"

Get-ADOrganizationalUnit -SearchBase $BaseDN -Filter * -SearchScope Subtree |
    Where-Object { $_.Name -like "*$Suchbegriff*" } |
    ForEach-Object {
    New-GPLink -Guid $GPO.id -Target $_.DistinguishedName -LinkEnabled Yes
    }

Mit diesen Zeilen wird aus ermüdender Klickarbeit eine schnelle Aktion.

Schreibe einen Kommentar

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

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..