Exchange 2016: Berechtigungen für öffentliche Ordner setzen mit PowerShell


    Tags: , ,

    Exchange 2016 Öffentliche Ordner (Public Folder)Gerade bei größeren Ordner­strukturen ist das Rechte-Management mit der Web-Konsole um­ständlich und lang­sam. Exchange 2016 bringt daher wie seine Vor­gänger eigene PowerShell-Scripts für solche Auf­gaben mit. Sie können Benutzer­berechtigungen für ganze Hierarchien hinzu­fügen oder ent­fernen.

    Beim täglichen Arbeiten mit öffent­lichen Ordnern musste ich regelmäßig die Erfahrung machen, dass in tiefen Ordner­hierarchien das Ändern von Berechtigungen und der Vererbung nicht richtig funktioniert. Ab und an kommt es auch vor, dass die Konsole in einen Timeout läuft und mit einem Fehler beendet wird.

    Mitgelieferte Scripts für Rechte-Management nutzen

    Bei einem Abbruch der Operation werden erwartungs­gemäß nicht alle Ordner mit der passenden Berechtigung versehen. Besonders ärgerlich ist es, wenn Berechtigungen entzogen werden sollen und auch dies nicht zuverlässig funktioniert.

    Die Änderung von Ordner-Berechtigungen in der Web-Konsole kann langsam ausfallen oder ganz abbrechen.

    Hier ist die Exchange-PowerShell zu empfehlen, die mit diese Aufgabe deutlich besser zurechtkommt als die Web-Konsole. Exchange 2016 bringt zu diesem Zweck ein paar zusätzliche Bordmittel mit, um die Berechtigungen mit der Exchange-Verwaltungskonsole zu administrieren.

    In der Exchange-PowerShell navigieren Sie dazu mit

    cd "$env:ProgramFiles\Microsoft\Exchange Server\V15\Scripts"

    in das Script-Verzeichnis.

    Das Script-Verzeichnis in Exchange 2016

    Berechtigungen hinzufügen

    Um einen Benutzer Berechtigungen geben zu können, brauchen wir dort das Script AddUserToPFRecursive.ps1:

    .\AddUsersToPFRecursive.ps1 -TopPublicFolder "\Contoso" `
    -User "max.mustermann" -Permissions {Owner}

    Der TopPublicFolder ergibt sich aus der Ordnerstruktur und kann in der Web-Konsole eingesehen werden.

    Die Ordnerstruktur für den Parameter TopPublicFolder kann man in der Web-Konsole einsehen.

    In unserem Beispiel bekommt der Benutzer Max Mustermann jetzt die Berechtigungen von Owner (= Besitzer) auf den Ordner Contoso und alle Unterordner. Zudem listet PowerShell recht schön auf, wo überall Berechtigungen gesetzt werden.

    Berechtigungen auf öffentliche Ordner vergeben mit AddUsersToPFRecursive.ps1

    Folgende Berechtigungen können vergeben werden:

    • Stufe 1 = Contributor
    • Stufe 2 = Reviewer
    • Stufe 3 = NonEditingAuthor
    • Stufe 4 = Author
    • Stufe 5 = PublishingAuthor
    • Stufe 6 = Editor
    • Stufe 7 = PublishingEditor
    • Stufe 8 = Owner

    Zugriffsrechte entziehen

    Entfernt werden können Berechtigungen mit folgendem Befehl:

    .\RemoveUserFromPFRecursive.ps1 -TopPublicFolder "\Contoso\Abteilung A" `
    -User "max.mustermann"

    Wir haben nun Max Mustermann die Berechtigungen für den Ordner Abteilung A und alle darunter liegenden Ordnern entzogen.

    Das Ergebnis der Operation kann man in der Web-Konsole überprüfen, hier das Entziehen einer Berechtigung.

    Alle Zugriffsrechte in parallelen Ordnern, wie Ablage B in unserem Beispiel, bleiben wie gewünscht erhalten.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Roland Eich

    Roland Eich ist gelernter Fach­infor­matiker für System­inte­gration und in der IT seit über 14 Jahren zu Hause. Roland deckt auf­grund seiner Erfah­rungen ein breites Spek­trum der Microsoft-Produkt­palette ab.Zudem besitzt er ver­schiedene Zertifi­zierungen (MCITP, MCSA und MCSE, ITIL, PRINCE2).
    // Kontakt: E-Mail //

    Verwandte Beiträge

    Weitere Links

    1 Kommentar

    Danke für die Anleitung. Wenn ich das Skript ausführe bekomme ich die Meldung:
    "Cannot process argument transformation on parameter 'Identity'. Cannot convert the "Ordnername" value of type "Deserialized.Microsoft.Exchange.Data.Storage.Management.PublicFolder" to type "Microsoft.Exchange.Configuration.Tasks.PublicFolderIdParameter".