Exchange Online ist sicherlich eines der meistverwendeten Produkte im Business Portfolio von Microsoft. Und trotzdem scheint Microsoft weiterhin keine Anstände zu machen, die Verwaltung von Kalenderberechtigungen etwas einfacher zu gestalten.
Während unwissende Exchange Admins fleißig im Exchange Admin Center herumklicken, ist PowerShell alles was benötigt wird.
Im folgenden Blog-Eintrag möchte ich genauer darauf eingehen, wie Admins einen Exchange Kalender zu verstehen haben und wie die Berechtigungsverwaltung konkret funktioniert.
Wie Kalender bei Microsoft Exchange funktionieren
Kalender in Microsoft Exchange lassen sich wie Ordner im Explorer verstehen. Diese „Kalender“-Ordner werden in den Mailboxen der Benutzer gespeichert und enthalten spezielle Termin-Objekte, die unsere Kalendereinträge darstellen. Microsoft hat Kalender dafür als eigene Ordner-Klasse definiert. Hier wird ebenfalls definiert, dass ein Kalender nur Objekte vom Typ Meeting oder Appointment enthalten kann, was aus Nutzersicht auch Sinn ergibt.
Wir unterscheiden Meetings und klassische Termine. Dabei ist das unterscheidende Merkmal, dass Meetings neben einem Namen, einem Ort und der Beschreibung auch weitere Teilnehmer haben können. Technisch gesehen werden allerdings beide Kalendereinträge laut Microsoft aus demselben Item erstellt. Weitere Teilnehmer stellen dabei nur ein weiteres Attribut dar. Wer sich hier weiter informieren möchte, kann sich hier weiter über das CalendarItem Objekt informieren.
Verwaltung von Ordnerberechtigungen mit PowerShell
1. Auslesen von Ordnerberechtigungen
Da wir nun wissen, dass Kalender sich nicht anders als andere Ordner im Postfach eines Benutzers verwalten, ergibt sich die PowerShell Syntax fast von selbst. Sobald wir die Exchange Management Shell gestartet beziehungsweise uns mit dem Exchange Online unserer Organisation verbunden haben, können wir mit der Verwaltung beginnen.
Bevor wir mit der Vergabe von Berechtigungen anfangen, starten wir am besten damit, vorhandene Berechtigungen auf einen Kalender auszulesen:

Der Output in unserer PowerShell sollte ungefähr wie auf dem Screenshot aussehen. Die Anzahl der gelisteten User kann sich natürlich je nach Umgebung unterscheiden.Ich habe zwecks fehlendem Testbenutzer (Welch Ironie) den Großteil der Berechtigungen aus Datenschutzgründen ausschneiden müssen.
Wie im Screenshot zu sehen listet uns die „Get-MailboxFolderPermission“-Funktion direkt alle Nutzer und deren Berechtigungsstufe auf. Aus dieser Ausgabe können wir zum Beispiel ziehen, dass die Standardberechtigung auf den Kalender von Kevin „Reviewer“ ist. Dies erlaubt allen Domänenbenutzern, Kalendereinträge lesen, aber nicht bearbeiten zu dürfen.
2. Hinzufügen von Ordnerberechtigungen
Für die Vergabe von Ordnerberechtigungen können wir den PowerShell-Befehl „Add-MailboxFolderPermission“ nutzen. Mit dem folgenden Befehl könnten wir beispielsweise Bernhard dazu berechtigen, Termine in Martins Kalender zu erstellen und zu bearbeiten. Die verschiedenen Berechtigungsstufen gucken wir uns später noch genauer an.
Der „Identity“-Switch bestimmt das Postfach, auf welches der „User“ berechtigt werden soll. Alles hinter dem „:\“-Ausdruck bestimmt den Ordner, auf welchen die Berechtigungen vergeben werden sollen. Bei einem deutschen Postfach heißt der Kalenderordner (wer hätte es gedacht) „Kalender“.
Unsere Identity kann dabei sowohl im Format „Test Benutzer“, als auch als „t.benutzer@contoso.org“ angegeben werden. Der Ordnername wird in beiden Formaten gleich durchgegeben.
Tipp: Ordnernamen sind sprachsensitiv. Auch Ordner, die in jedem Benutzerpostfach vorhanden sind, müssen über den richtigen Term bestimmt werden. Bei einem noch nicht lokalisierten Postfach wäre es also „*:\calendar“. In Skripten empfiehlt es sich also, erst die Postfachsprache auszulesen oder diese vorher zu ändern.
Der „User“-Switch definiert den Benutzer, dem die Berechtigungen auf das Postfach oder den Postfachordner zugewiesen werden sollen. Wie auch bei „Identity“ kann der Benutzer als „Test Benutzer“ oder als „t.benutzer@contoso.org“ angegeben werden.
Tipp: Wer jedem Benutzer dieselben Berechtigungen auf einen Postfachordner geben möchte, ohne dabei auf AD-Gruppen zurückgreifen zu müssen, kann die Berechtigungen für den Nutzer „Standard“ anpassen. Termine in einem Kalender, auf den standardmäßig die Berechtigung „Reviewer“ vergeben wurde, darf jeder Nutzer in der Domäne einsehen.
Über den AccessRights Switch definieren wir die Art der Berechtigungen, die der Benutzer auf den Postfachordner erhält. Im Standard unterscheidet Exchange zwischen AvailabilityOnly, Reviewer, Editor und Owner.
Manchmal möchten wir einem anderen Nutzer auch die Möglichkeit geben, private Elemente zu sehen, ohne ihn direkt zum „Owner“ des jeweiligen Ordners zu erheben.
Hier kommen die „SharingPermissionFlags“ zum Einsatz. Über diese können zusätzliche Rechte verteilt werden:
Mit dem Flag „Delegate“ können wir Nutzer bestimmen, die noch weitere Berechtigungen für das Postfach wie bei der gleichnamigen Outlook-Funktion erhalten. Für weitere Informationen dazu, siehe hier.
Zusätzlich zum „Delegate“-Flag gibt es dann noch die Option „CanViewPrivateItems“, die genau das tut, was der Name vermuten lässt. Diese Option funktioniert allerdings nur in Kombination mit dem zuvor genannten Flag.
Die „SharingPermissionFlags“ werden im Befehl einfach als weiterer Switch hinten angehangen. Hier ein Beispiel:
Hinweis: Wir hatten schon einige Fälle, wo die Vergabe der beiden Flags dazu geführt hat, dass Kalendereinladungen nur noch an den Delegaten gegangen sind, aber nicht mehr an die eigentliche Mailbox.
3. Manipulation bestehender Berechtigungen
Wenn wir bereits bestehende Berechtigungen für einen Nutzer anpassen oder entfernen möchten, können wir nicht auf „Add-MailboxFolderPermission“ zurückgreifen, sondern müssen „Set-“ oder „Remove-Mailboxfolderpermission“ nutzen. Ist uns die Berechtigungsstufe „Editor“ also doch zu viel des Guten für Bernhard, müssten wir folendermaßen vorgehen:
Stellen wir dann fest, dass Bernhard vielleicht lieber doch gar nicht auf die Inhalte von Martins Kalenderordner zugreifen können soll, bleibt uns noch die Möglichkeit den Berechtigungseintrag vollständig zu entfernen:
Tipp: Sollten im Anschluss keine Berechtigungseinträge mehr für den „User“ bestehen, werden beim nächsten Zugriff automatisch die Berechtigungen für den Benutzer „Standard“ angewandt. Besteht standardmäßig also weiterhin die Berechtigung „Editor“ kann der Nutzer weiterhin Kalendereinträge einsehen und bearbeiten.