Berechtigungen im Exchange-Kalender zentral mit PowerShell ändern


    Tags: , ,

    KalenderFolgende Anleitung beschreibt, wie Sie Kalender­berech­tigungen zen­tral bei einem Exchange-Server 2007, 2010 oder 2013 mit Hilfe von Power­Shell anpas­sen können. Dies erspart Ihnen Zeit, weil Sie damit Rechte ver­geben können, ohne dass Sie Zu­gang zum PC bzw. Outlook des Kalender­besitzers benötigen.

    Berechtigungen an Kalendern werden eingeräumt, damit Mitarbeiter oder Vorgesetzte ihre Termine aufeinander abstimmen können. Beispiel: Der Geschäftsführer einer Firma möchte seiner Sekretärin den Zugriff auf seinen Outlook-Kalender gewähren, damit diese Termine für in koordinieren kann.

    Berechtigung in der Management-Shell vergeben

    In meinem Beispiel soll der Benutzer a.musterfrau auf den Kalender von m.mustermann zugreifen dürfen. Die Berechtigungen werden über die Exchange Management-Shell konfiguriert.

    Über folgenden Befehl können Sie dem Benutzer a.musterfrau Rechte für den Kalender von m.mustermann einäumen:

    Add-MailboxFolderPermission -Identity m.mustermann:\Kalender `
    -User a.musterfrau -AccessRights Editor

    Zugriff auf Kalender gewähren mit Add-MailboxFolderPermission

    Über den Parameter AccessRights haben wir definiert, welche Berechtigungen der Benutzer a.musterfrau auf dem Kalender von m.mustermann erhalten soll. Wenn wir nun anschließend in den Berechtigungen des Kalenders nachschauen, dann ist für den Benutzer a.musterfrau die Stufe 6 eingetragen worden, dies entspricht erwartungs­gemäß dem Recht als Editor.

    Anzeige der Kalenderberechtigungen in Outlook

    Nun könnte man sich vorstellen, dass auch andere Benutzer Zugriff auf den Kalender von m.mustermann bekommen sollen, aber Termine nur lesen und nicht ändern dürfen. In diesem Fall würde man ihnen die Rolle Reviewer statt Editor zuweisen.

    Exchange sieht insgesamt mehrere Berechtigungsstufen vor. Diese erstrecken sich von 1 bis 8, wobei die höchste für den Besitzer (Owner) vorgesehen ist.

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

    Jede dieser Rollen besitzt eines oder mehrere von den insgesamt 10 Lese-, Schreib- bzw. Löschrechten. Einen detaillierten Überblick gibt diese TechNet-Seite.

    Rechte für Kalender anzeigen

    Wie kann beim Kalender vom Benutzer m.mustermann nun festgestellt werden, wer dort welche Berechtigungen auf seinen Kalender hat, ohne dass man direkt in das Outlook des Benutzers schaut?

    Auch hierzu gibt es einen entsprechenden Befehl:

    Get-MailboxFolderPermission -Identity m.mustermann:\Kalender -User a.musterfrau

    Berechtigungen im Exchange-Kalender anzeigen mit Get-MailboxFolderPermission

    Hier wird unter AccessRights angezeigt, welche Berechtigung der entsprechende Benutzer hat.

    Rechte für Benutzer entziehen

    Zum Schluss stellt sich noch die Frage, wie kann ich einem bestehenden Benutzer mehr Rechte geben, oder diese wieder entziehen? Auch hierfür gibt es einen Befehl:

    Set-MailboxFolderPermission -Identity m.mustermann:\Kalender `
    -User a.musterfrau -AccessRights Reviewer

    Ich habe mich hier entschieden, dem Benutzer a.musterfrau die Rechte als Editor wieder wegzunehmen und ihr die Rechte als Reviewer (Stufe 2) zuzuweisen.

    Möchte man einem Benutzer die Rechte auf einen Kalender vollständig entziehen, dann übernimmt das Cmdlet Remove-MailboxFolderPermission diese Aufgabe.

    Rechte eines Benutzers auf einen Kalender entziehen mit PowerShell

    Troubleshooting

    Vereinzelt kommt es vor, dass bei einem freigegebenen Kalender folgende Meldung kommt, obwohl das Element von Ihnen erstellt wurde und/oder Sie die passenden Berechtigungen auf den Kalender haben:

    Sie haben keine Berechtigung um dieses Element zu löschen.

    Bei der Fehleranalyse stellt sich dann wahrscheinlich heraus, dass dieser Fehler nicht mehr auftaucht, sobald man für den betreffenden Kalender das komplette Postfach freigibt. Dies ist jedoch in der Regel nicht erwünscht.

    Abhilfe schafft hier, stattdessen eine Berechtigung auf den Papierkorb des entsprechenden Postfachs zu setzen.

    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

    13 Kommentare

    wie kann ich ein Kalendern mehreren User gleichzeitig freigeben?

    Hallo Schmidt,
    Du könntest das über eine Gruppe lösen, liest diese dann aus und vergibst an die Members dann die Berechtigung.
    Vg
    Roland

    Hallo,

    der Beitrag ist schon etwas her, aber wir haben aktuell die Anfrage die Grundeinstellung für alle Kalender zu ändern. Und zwar von Frei/Gebucht-Zeit in Frei/Gebucht-Zeit, Betreff, Ort.

    Ich stelle mir gerade vor das für den Standart User zu einzustellen damit ich die User nicht in eine Bestimmte Gruppe oder sonst was machen muss. Wenn ich mir den Befehl ansehr, müsste das do gehen ?

    In der GUI habe ich dazu leider nichts gefunden oder ich hab es übersehen.

    Kann man den Befehl dafür vielleicht bei der Antwort bei schrieben? Bin mir nämlich nicht ganz sicher.

    Danke
    Thomas

    Guten Morgen Thomas,
    ein etwas älterer Artikel, aber immer noch ein aktuelles Thema.
    Mir ist anhand deines Post nicht ganz klar was du mit „Standard User“ meinst?
    Wie schaut denn dein Befehl aus, welchen du abschicken möchtest?
    Beste Grüße
    Roland

    Hallo Roland,

    einen genauen Befehl habe ich nciht. Aber wenn man Outlook öffnet (Aus Benutzersicht) dann gibt es dort im Kalender 2 vorangelegte Accounts

    Standard und Anonym

    Und den Standard würde ich eben gerne bearbeiten.

    Gruß
    Thomas

    Hallo Thomas,
    hast du denn schonmal mit denen von mir bereitgestellten Befehlen versucht, die Berechtigung für den Defaultbenutzer zu verändern?

    Zudem die Frage wie stellt Ihr Euch das zukünftig bei neuen Usern vor? Hierfür brauchst du ja auch noch eine Lösung.

    Zudem die Frage ob dein Vorhaben mit dem Datenschutz vereinbar ist wenn z.B. nun im Kalender der Geschäftsführung etwas steht was sonst keiner Wissen / sehen darf, dann könnte Dir das echt Schwierigkeiten bereiten.

    Ist Dir das so bewusst bei deinem Vorhaben?

    Grüße
    Roland

    Hallo Roland,

    danke für deine Antwort. Die Idee kommt von der Geschäftsführung. Wobei sich einzelne Personen ja nochmal nachbearbeiten lassen.

    Auch denke das du nochmal auf die DSGVO hinweist.

    Deine Befehle habe ich aber noch nicht getestet, da ich diese im Produktivsystem machen müsste.

    Danke
    Thomas

    Hallo Thomas,
    du machst mit den Befehlen ja nicht deine Produktivumgebung kaputt, da du es ja nur auf einen User einwendest und nicht auf alle.
    Einfach mal ein Testpostfach erstellen und Erfahrungen sammeln.
    Viel Spaß beim testen.
    Grüße
    Roland

    Wie kann man eine Gruppe Berechtigen für einen Kalender ?
    Set-MailboxFolderPermission -Identity {Userlogin}:\Kalender -User {Universelle Gruppen Namen} -AccessRights owner

    Es klappt nicht mit einer Universal Gruppe / Globe Gruppe

    Mein Problem ist, ein User hat kein eigenes Postfach.
    Ist aber über eine Gruppe berechtigt auf eine Email Adresse office@...at
    Somit klappt aber kein Zugriff auf Kalender auch wenn office@...at berechtigt ist.

    Da im Hintergrund geprüft wird ob der User mit dem Email genutzt wird, berechtigt ist. Der User ist aber nicht berechtigt.
    Und ich weiß nicht wie ich denn User ohne Email Adresse berechtigen kann.

    Ich danke schon mal im vorhin : )

    Moin Moin,
    klar kannst du auch Gruppen statt User setzen. Du kannst die Berechtigungen über eine emailaktivierte, universale Sicherheitsgruppe machen.

    z.B. Add-MailboxFolderPermission -Identity ernie.mustermann:\kalender -user TestGruppe -AccessRight Editor

    Viel Erfolg.
    Gruß
    Roland

    Hallo,
    ich versuche gerade das Pferd von hinten aufzuzäumen.
    Ziel ist, herauszufinden welcher Kalender keine Berechtigung für einen bestimmten User hat.
    Alle Wege mit Where-Object {$_.user.tostring() -ne "Username"} führen nur dazu, dass man alle anderen Berechtigungen angezeigt bekommt.
    Irgendeine Idee?

    Guten Abend,
    machs doch sonst so

    Get-MailboxFolderPermission -Identity $_.Username:\kalender -User TestUser

    Musst du dann halt mit ner Schleife machen und dann siehst du ja wo der User drin ist und wo nicht.

    Grüße
    Roland

    PS:Poste beim nächsten mal gerne Dein ganzes Skript.

    Hi Roland,
    das klappt leider auch nicht. Ich möchte mir nicht anzeigen lassen wer den User drin hat, sondern welcher Kalender den User nicht drin hat.

    Mein Skript:

    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
    $AllUsers = Get-Mailbox -ResultSize Unlimited
    foreach ($User in $AllUsers) {
    Get-MailboxFolderStatistics -Identity $User | Where {$_.FolderType -eq "Calendar"} | foreach {
    $Kalenderpfad = "$($User.Alias):$($_.Folderpath)".Replace('/','\')
    Get-MailboxFolderPermission -Identity $Kalenderpfad -User TestUser | ft Identity,User,AccessRights
    }
    }

    So wird mir angezeigt welcher Kalender den User bereits drin hat. Ich möchte es aber genau umgekehrt haben.

    Grüße,
    Ben