PowerShell Techguy.at

Active Directory Vererbung mittels PowerShell aktivieren

PowerShell

Mal wieder ein Beispiel eines meiner Kunden.

Wir mussten vor einem geplanten Rename aller User das AD bereinigen und eventuell Unterbrechungen der Vererbung wieder aktivieren.

Es gab immer wieder User bei denen die Option “Include inheritable permission from this object’s parent” oder auch “Vererbbare Berechtigungen des übergeordneten Objektes einschließen” nicht aktiv war, somit hatten wir bei diesen Benutzern nicht das Recht etwas zu ändern.

Jetzt hätten wir bei jedem User die Eigenschaften kontrollieren müssen und gegeben falls diese Option aktivieren.

Aber zum Glück haben wir ja PowerShell, damit ist das in Sekunden erledigt.

Das Script

Nochmal zum besseren Verständnis, es handelt sich um folgende AD Option welche wir aktivieren möchten

Include inheritable permission from this object’s parent

Wir starten nun PowerShel ISE und beginnen mit unserem Script.

Zu Beginn importieren wir das AD Module.

#Import Module
Import-Module activedirectory

Danach legen wir eine Variable $OU fest, in dieser wird nach Usern gesucht

#Set Organization Unit
$OU=”OU=seimi,DC=company,DC=at”

Danach setzen wir ein paar Variablen die wir etwas später benötigen

#Some Varibales
[bool]$isProtected = $false
[bool]$PreserveInheritance = $true

Jetzt befüllen wir die Variable $User mit allen Usern aus unserer OU

#Get Users
$Users=get-aduser -Filter * -SearchBase $OU

Danach passiert die Magie.

Wir prüfen ob die Variable $User überhaupt einen User inkludiert, danach startet für jeden Eintrag die ForeEach Schleife.

Jetzt setzen wir das Häkchen bei der oben beschriebenen Option.

#Do the Magic
if ($Users -ne $null) {
foreach ($Entry in $Users) {
[string]$dn = (Get-ADUser $Entry).DistinguishedName
$user = [ADSI]”LDAP://$dn”
$acl = $user.objectSecurity
Write-Host “Set Permissions for User:”(Get-ADUser $Entry).SamAccountName
if ($acl.AreAccessRulesProtected){
$acl.SetAccessRuleProtection($isProtected,$PreserveInheritance)
$inherited = $acl.AreAccessRulesProtected
$user.commitchanges()
}
}
}
else {Write-Host “No User found”}

Danach ist bei jedem Benutzer die Option wieder aktiv.

 

[wpdm_file id=12]

Michael Seidl aka Techguy

2 thoughts on “Active Directory Vererbung mittels PowerShell aktivieren”

  1. Super Script.
    Nach einer Migration von Exchange 2007 auf Exchange 2010 wurde bei uns sporadisch die Vererbung unterbrochen.
    Mit dem Script ist uns eine Menge Arbeit erspart worden und die User können wieder via ActiveSync auf Ihr Postfach zugreifen.

    Vielen Dank!!!

Leave a Comment

Your email address will not be published. Required fields are marked *

*