Exchange 2010 Permission Propagation to Subfolder of Inbox (PPSI) - Rechtevererbung

- 03.07.2013
von Thomas Windscheif / Microlinc



Exchange
permission propagation
subfolder permission propagation
mailboxfolder permission propagation

Rekursive Vererbung der Postfachberechtigungen von Posteingang in den Unterordnern unter Exchange 2010/2013/2016 mittels Powershell / Exchange Management Shell

Mit diesem Skript ist es möglich die unter Posteingang vergebenen Rechte automatisch auf untergeordnete Ordner zu vererben. Man benötigt hierfür weder ExFolders noch explizite Besitzrechte auf das Postfach, sie müssen dieses Skript lediglich als Exchange-Administrator (Mitgliedschaft in der Gruppe "Organization Management") auf dem Exchange-Server ausführen. Es sind keine weiteren Änderungen nötig, keine Tools keine DLLs, einfach mit Boardmitteln.

Zum Download

Zuerst hoffte ich mit folgendem Skript einfach Rechte verteilen zu können (was wohl auch mal ging):
Get-MailboxFolder –Identity username:\Posteingang -Recurse | Add-MailboxFolderPermission -User user2 -AccessRights Owner

Leider geht es nicht (mehr). Es erscheint folgender Fehler:

Das angegebene Postfach "[...]" ist nicht vorhanden
+ CategoryInfo : NotSpecified: (0:Int32) [Get-MailboxFolder], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : C74849A8,Microsoft.Exchange.Management.StoreTasks.GetMailboxFolder


siehe http://community.office365.com/en-us/forums/158/t/43423.aspx

Anschließend schrieb ich das Skript für die Exchange-Management-Shell.

Zur Funktion des Skripts
  1. Es fragt zuerst die notwendigen Variablen ab:
    • Soll gelöscht oder hinzugefügt werden?

    • Welches Postfach soll bearbeitet werden?

  2. Anschließend liest es mittels des cmdlets get-mailboxfolderpermission die vorhandenen Benutzer und deren Rechte aus und übergibt diese in ein Array

  3. Nun wird via cmdlet Get-MailboxFolderStatistics die Ordnerstruktur unter Posteingang rekursiv (also auch alle Unterunterordner etc.) ausgelesen und ebenfalls in ein Array gelegt.

  4. In einer Schleife werden nun die einzelnen Pfäde abgefragt und mittels cmdlet Add-MailboxFolderPermission die Rechte der jeweiligen Benutzer die vorher gespeichert wurden angewendet bzw. entfernt wenn löschen gewählt wurde.

  5. Positiv-Meldungen werden grün angezeigt Fehlermeldungen 1:1 rot in original angezeigt.



Anwendung des Skripts (ab Version 2.0)
Das komplette Script wurde überarbeitet. Variablen werden jetzt über den bei PowerShell üblichen Param-Block abgefragt. Ebenso werden die Berechtigungen nun statt über den fehleranfälligen FolderPath über die FolderID gesetzt. Dadurch gibt es keine Probleme mehr mit Sonderzeichen im Ordnernamen.
Das Skript verfügt über einen detaillierten Beschreibungsheader, alle Parameter (Get-Help -Parameter) sind jeweils beschrieben.
  • Die Berechtigungen einzelner Benutzer können rekursiv entfernt werden

  • Vorhandene Berechtigungen können automatisch ersetzt werden.

  • Alle vorherigen Funktionen sind enthalten

  • Verbose-Schalter für Debugging-Zwecke integriert.

  • Berechtigungen können ab einer beliebigen Ebene vererbt werden.


Zum Download




Für Vererbung von Berechtigungen im Ordner Posteingang verwenden Sie das Skript mit einer Version vor Version 1.3. Das Skript ab Version 1.3 vergleicht alle Ordner der Mailbox mit dem angegebenen Wert, weswegen die Ausführung länger dauert. Ab Version 1.3 können Ordner in der obersten Ebene ausgewählt werden oder bestimmte Ordner unter den Topfoldern, wenn man z. B. nur Berechtigung von einem bestimmten Ordner unter Posteingang vererben möchte.

Anwendung des Skripts (ab Version 1.3)
  • Laden Sie das ppsi_skript als ZIP-Archiv herunter (siehe Ende des Textes)

  • Extrahieren (!) Sie die beiden Dateien in einen beliebigen Ordner

  • Setzen Sie die Berechtigungen für die neu zugreifenden Benutzer im Ordner "Posteingang" wie gewöhnlich über Outlook (oder über das cmdlet Add-MailboxFolderPermission).

  • Bearbeiten Sie die ps1-Datei und geben Sie in der Zeile 15 für die Variable MBXRootFolder den Folder an, dessen Berechtigungen für vererbt werden sollen:


    Sie können hier Ordner auf der obersten Ebense angeben (z. B. Posteingang, Gesendete Elemente) oder Objekte unter den Root-Objekten (z. B. Posteingang\gummibär)

  • Öffnen Sie anschließend die Batchdatei "start_ppsi_script_msx.cmd" auf dem Exchange-Server (Sie müssen als Administrator angemeldet sein (Mitglied in der Gruppe "Organization Management")), alternativ können Sie das Skript auch direkt aus der Exchange Management Shell aufrufen
    (Navigieren Sie hierzu via cd in den entsprechenden Ordner und geben Sie dann ".\permission_propagation_subfolder_inbox.ps1" ein.)

  • Die Batchdatei prüft wo die Exchange-Installation liegt (C:, D:), öffnet dann die Powershell mit Exchange-Modul und startet dann das eigentliche Skript



  • In der ersten Abfrage können Sie entweder "h" oder "l" eingeben für hinzufügen oder löschen.

  • In der zweiten Abfrage geben Sie den Kontonamen des Benutzers an, dessen Postfach bearbeitet werden soll.


  • Das Skript geht nun wie unter "Zur Funktion des Skripts" beschrieben vor

  • Am Ende der Ausführung des Skripts drücken Sie eine beliebige Taste zum Schließen des Fensters


Sie können das Skript auch automatisiert ablaufen lassen, füllen Sie dazu einfach die Variablen in der .ps1-Datei mittels Notepad aus.

Anwendung des Skripts (bis Version 1.21)
  • Laden Sie das ppsi_skript als ZIP-Archiv herunter (siehe Ende des Textes)

  • Extrahieren (!) Sie die beiden Dateien in einen beliebigen Ordner

  • Setzen Sie die Berechtigungen für die neu zugreifenden Benutzer im Ordner "Posteingang" wie gewöhnlich über Outlook (oder über das cmdlet add-mailboxfolderpermission).

  • Öffnen Sie die Batchdatei "start_ppsi_script_msx.cmd" auf dem Exchange-Server (Sie müssen als Administrator angemeldet sein (Organization Management)), alternativ können Sie das Skript auch direkt aus der Exchange Management Shell aufrufen
    (Navigieren Sie hierzu via cd in den entsprechenden Ordner und geben Sie dann ".\permission_propagation_subfolder_inbox.ps1" ein.)

  • Die Batchdatei prüft wo die Exchange-Installation liegt (C:, D:), öffnet dann die Powershell mit Exchange-Modul und startet dann das eigentliche Skript


  • In der ersten Abfrage können Sie entweder "h" oder "l" eingeben für hinzufügen oder löschen.

  • In der zweiten Abfrage geben Sie den Kontonamen des Benutzers an, dessen Postfach bearbeitet werden soll.


  • Das Skript geht nun wie unter "Zur Funktion des Skripts" beschrieben vor

  • Am Ende der Ausführung des Skripts drücken Sie eine beliebige Taste zum Schließen des Fensters


Sie können das Skript auch automatisiert ablaufen lassen, füllen Sie dazu einfach die Variablen in der .ps1-Datei mittels Notepad aus.

Das Skript habe ich auf meinem Exchange-Server (2010) ausgiebig getestet und konnte keine Fehler feststellen. Sollten Sie Fehler feststellen oder Wünsche haben schreiben Sie mir bitte einen Kommentar. Sollten Sie das Skript erfolgreich (oder auch nicht erfolgreich) auf einer neueren Exchange-Umgebung getestet haben, würde ich mich über Feedback via Commentbox freuen.

UPDATE:
Version 2.1:
+ Postfachordner werden nun nicht mehr Case sensitiv verglichen
+ Das Berechtigungs-Array wird nun vorher einmal "leer" initialisiert
Version 2.0:
+ Vollständig überarbeitet
+ PARAM-Block und Verbose-Mode integriert
+ Ersetzen integriert
Infos zur Version 2.0
Version 1.3:
+ Es können nun auch Ordner in der obersten Ebene der Mailbox ausgewählt werden, ebenso können Unterordner von root-Ordnern ausgewählt werden
UPDATE:
Version 1.21:
+ Ordner mit dem Zeichen "/" im Namen werden nun fehlerfrei bearbeitet
UPDATE:
Version 1.2:
+ Die Variable ExchangeInstallPath wird nun zum identifizieren des Exchange-Installationsordners verwendet
UPDATE:
Version 1.1:
+ Nun werden neben der Stufenrechte auch die benutzerdefinierten Rechte verteilt.

aktuelle Downloads






Download
-> Inherit-MailboxFolderPermissionV2.2.zip (Version 2.2) ~ 3,27 KB
Inherit-MailboxFolderPermissionV2.1.zip (Version 2.1) ~ 3,52 KB
Inherit-MailboxFolderPermissionV2.zip (Version 2.0) ~ 3,16 KB
permission_propagation_subfolder_inbox_v1.3.zip (Version 1.3) ~ 2,03 KB
permission_propagation_subfolder_inbox_v1.21.zip (Version 1.21) ~ 2,02 KB
permission_propagation_subfolder_inbox_v1.2.zip (Version 1.2) ~ 1,73 KB
permission_propagation_subfolder_inbox_v1.1.zip (Version 1.1) ~ 1,70 KB
permission_propagation_subfolder_inbox.zip (Version 1.0) ~ 1,66 KB
MICROL!NC - URL zum Artikel: http://microlinc.homeip.net/index.php?lev1=7&lev2=8&lev3=1&id=165 - Ausdruck vom 01.03.2021