Archiv vom 2. April 2019

02 | 04 | 2019

AD User mit ausgeschalteter Vererbung der Rechte finden mit PowerShell – revisited

Geschrieben von um 15:15 Uhr

Vor sieben Jahren habe ich mal hier beschrieben, wie man schnell alle User mit ausgeschalteter Rechtevererbung findet. Damals war das Quest AD-Modul (aus ActiveRoles) das Mittel der Wahl, welches mittlerweile nicht mehr (kostenlos) verfügbar ist. Hier ein Code Snippet, um das gleiche mit dem nativen AD-Modul des Windows Servers zu erreichen:

$users = Get-ADUser -LDAPFilter "(mail=*)"
foreach ($user in $users) {
    $adsu = [ADSI]"LDAP://$($user.DistinguishedName)"
    if ($adsu.PSBase.objectSecurity.AreAccessRulesProtected) {
        $user.DistinguishedName
    }
}

Das Zurücksetzen der Vererbung ist etwas komplizierter als bei Quest und benutzt den AD-Provider aus dem Modul:

$users = Get-ADUser -LDAPFilter "(mail=*)"
foreach ($user in $users) {
    $adsu = [ADSI]"LDAP://$($user.DistinguishedName)"
    if ($adsu.PSBase.objectSecurity.AreAccessRulesProtected) {
        $acl = Get-ACL "AD:\$($user.DistinguishedName)"
        $acl.SetAccessRuleProtection($false,$false)
        Set-ACL -ACLObject $acl -Path "AD:\$($user.DistinguishedName)"
    }
}

Man sollte im Hinterkopf behalten, dass bei Mitgliedern in Admin-Gruppen diese Änderung durch AD wieder zurückgerollt werden wird (Stichwort AdminSDHolder), und bei produktivem Einsatz vielleicht eine Prüfung einbauen.

Happy migrating!

Tags » , , , , , «

+