none
Ordnerberechtigungen mit Powershell vererben RRS feed

  • Frage

  • Hallo,

    ich habe folgenden Fehlerfall:

    Bei uns im Unternehmen werden die Rechte auf Verzeichnisse über AD-Gruppen geregelt: eine Gruppe für schreibenden Zugriff und eine für lesenden Zugriff. Ab dieser Datenordnerebene ist alles darunter rekursiv vererbt.

    Nun kommt es vor, dass die Anwender Dateien und Ordner von Datenordner1 nach Datenordner2 verschieben. Dabei wanderen natürlich die Rechte vom alten Ordner mit. Um diesen Fehler zu beheben muss ich also im Datenordner den Haken setzen bei "Alle Berechtigungseinträge für untergeordneteObjekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen".

    Ich habe noch nicht herausgefunden wie ich das mit Powershell abbilden kann.

    Wie gesagt möchte ich einfach die gesetzten Rechte eines Ordners auf alle Unterordner und Dateien durchvererben und alle bestehenden Berechtigungen ersetzen, somit korrigieren. Und das über mehrere Datenordner aus einer Tabelle.

    Habt ihr ne Idee wie ich das machen kann? Ich habe im Internet leider noch nichts gefunden was diesem Haken setzen bei "Alle Berechtigungseinträge für untergeordneteObjekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen" entspricht.

    Danke schonmal



    Dienstag, 6. Oktober 2015 19:05

Antworten

  • Hallo Bastian,

    ich hab mir dazu ein kleines Beispiel und eine Tabelle gemacht.

    Beispiel:

    # directory to update
    $directory = "C:\Temp\test"
     
    # group object 'sAMAccountName' to add to NTFS permission
    $addGroup  = "foobar_access_read"
     
    # Configure the access object values - chosen by matrix
    $access      = [System.Security.AccessControl.AccessControlType]::Allow 
    $rights      = [System.Security.AccessControl.FileSystemRights]"Read,ReadAndExecute,ListDirectory"
    $inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit,ObjectInherit"
    $propagation = [System.Security.AccessControl.PropagationFlags]::None 
    $ace         = New-Object System.Security.AccessControl.FileSystemAccessRule($addGroup,$rights,$inheritance,$propagation,$access) 
     
    # Retrieve the directory ACL and add a new ACL rule
    $acl = Get-Acl $directory
    $acl.AddAccessRule($ace) 
    $acl.SetAccessRuleProtection($false,$false) 
    Set-Acl $directory $acl

     

    Die Vererbung wird durch die 2 Flags $Inheritance-Flag und $Propagation-Flag bewirkt.

    Dabei hilft diese Tabelle:

    Anbei noch ein gutes RoundUp:

    Link


    Greetings,

    David das Neves

    Technology Specialist - Consulting Services
    Computacenter AG & Co. oHG - München

    Blog    

    Caution: This post may contain errors.


    Dienstag, 6. Oktober 2015 21:46