Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋼) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Exchange 2019 Powershell-Script zur Vergabe bzw. zur Entfernung von Berechtigungen auf Postfach-Bestandteile

Empfohlene Antworten

Veröffentlicht

Mahlzeit,

TL;DR: kann mir jemand bei der Erstellung eines Powershell-Scripts mit Verzweigungen anhand von dynamisch auszulesenden Daten helfen? 🙂

 

Wir haben gerade vor, von Tobit David auf Exchange 2019 (On-Premise) zu migrieren, im Moment ist das alles noch in der Planungsphase. Aus der Historie heraus sind es die MitarbeiterInnen gewohnt, dass wir von der IT Berechtigungen auf Ordner und Kalender setzen. Von meiner Seite aus wĂŒrde ich sagen, dass die MitarbeiterInnen das eigentlich selbst machen sollten, mein Vorgesetzter sagt aber, dass die Akzeptanz des neuen Systems deutlich geringer ausfallen wird, wenn das fĂŒr die MitarbeiterInnen "komplizierter" wird,  deswegen soll das auch weiterhin so gehandhabt werden... 😑

ZusĂ€tzlich ist es so, dass es oft so ist, dass MitarbeiterIn A nicht Vollzugriff auf das Postfach von MitarbeiterIn B erhalten, sondern nur den Posteingang oder den Kalender sehen können soll, sonst wĂ€re das ja mit der Postfachstellvertretung in der GUI machbar. Außerdem soll es nach Möglichkeit so sein, dass MitarbeiterIn A das Postfach von MitarbeiterIn B als "zusĂ€tzliches Postfach" im Outlook einbinden kann und dann nur die Ordner sieht, auf die Zugriff besteht, sonst könnte man ja auch einfach ĂŒber "Ordner eines anderen Benutzers öffnen" gehen, was ja aber auf die Standard-Ordner wie Posteingang, Gesendete Objekte etc. beschrĂ€nkt ist.

 Kleiner Einschub: ich bin erst seit gut einem Monat in meiner jetzigen Firma in der internen IT. Vorher war ich bei einem IT-Dienstleister, wo ich einiges mit Exchange zu tun hatte, also habe ich prinzipiell schon Erfahrungen in der Exchange-Administration, es kamen da aber nie solche Anforderungen... 😑

Da Exchange ja nicht wie David mit Berechtigungen im Dateisystem arbeitet, kann da nicht einfach Lesezugriff auf den Ordner vergeben werden, sondern das muss per PowerShell durchgefĂŒhrt werden. Die grundlegenden Funktionen wie Berechtigungen ĂŒber add-mailboxfolderpermission hinzufĂŒgen oder per remove-mailboxfolderpermission sind ja kein Problem, ich wĂŒrde aber gerne ein relativ ausgefeiltes Script gestalten, damit die Kollegen, die noch nie Exchange administriert haben, da schnell rein kommen. Ich habe mir das in folgender Weise gedacht, damit keine Fehlermeldungen erscheinen, sofern die Parameter richtig eingegeben wurden:

  • Das Script wird aufgerufen und fragt folgende Parameter ab:
    1. Sollen Berechtigungen hinzugefĂŒgt oder entzogen werden? (kein Problem mit $<Variablenname> = read-host "<Beschreibung>")
    2. Name des Postfachs, auf das die Berechtigungen gewÀhrt bzw. wo die Berechtigungen entzogen werden sollen (ebenfalls kein Problem mit der selben Syntax)
    3. Name des Benutzerkontos, welches die Berechtigungen bekommen bzw. dem Berechtigungen entzogen werden soll (ebenfalls kein Problem mit der selben Syntax)
    4. Bestandteil des Postfachs, auf das die Berechtigungen gewÀhrt werden bzw. von wo die Berechtigungen entzogen werden sollen (z.B. Posteingang oder Kalender, auch hier die selbe Syntax)
  • Wenn in 1. Berechtigungen hinzugefĂŒgt werden sollen:
    • Das Script prĂŒft, ob das Benutzerkonto aus 3. schon Lesezugriff auf das Stammverzeichnis des Postfachs aus 2. hat
      • Falls nein, soll Leseberechtigung auf das Stammverzeichnis plus den Postfach-Bestandteil vergeben werden
      • Falls ja, soll Leseberechtigung nur auf den Postfach-Bestandteil vergeben werden
  • Wenn in 1. Berechtigungen entfernt werden sollen:
    • Das Script prĂŒft, ob das Benutzerkonto aus 3. Zugriff auf andere Postfach-Bestandteile hat (z.B. wenn Berechtigungen vom Kalender entfernt werden sollen, soll geprĂŒft werden, ob noch Berechtigungen auf den Posteingang bestehen)
      • Falls nein, werden die Berechtigungen von dem Bestandteil entfernt, welcher in 3. angegeben wurde und aus dem Stammverzeichnis
      • Falls ja, werden nur die Berechtigungen von dem Bestandteil entfernt, welcher in 3. angegeben wurde

 

Mit folgendem Script werden schon mal die Punkte 2-4 ordentlich abgefragt sowie Berechtigungen hinzugefĂŒgt bzw. entfernt (die erste Zeile ist aktuell komplett ĂŒberflĂŒssig, habe ich aber schon mal eingefĂŒgt, weil das abgefragt werden soll):

$hinzufuegen_oder_entfernen = read-host "Sollen Berechtigungen hinzugefĂŒgt oder entfernt werden? HinzufĂŒgen = 1, Entfernen = 2"
$postfach = read-host "Bitte den Benutzernamen eingeben, auf dessen Postfach zugegriffen werden soll"
$benutzer = read-host "Bitte den Benutzernamen eingeben, der Zugriff auf das andere Postfach erhalten soll"
$bestandteil = read-host "Bitte den Postfachbestandteil eingeben, fĂŒr den diese Änderung gelten soll"

# Hier geschieht Magie, der nÀchste Abschnitt soll nur angesprochen werden, wenn bei der ersten Frage "1" eingegeben wurde
# Außerdem soll geprĂŒft werden, ob das Benutzerkonto schon Lesezugriff auf das Stammverzeichnis hat, sonst wĂŒrde die erste Zeile eine Fehlermeldung erzeugen

Add-MailboxFolderPermission -identity ${postfach} -user ${benutzer} -accessrights foldervisible
Add-MailboxFolderPermission -identity ${postfach}:\${bestandteil} -user ${benutzer} -accessrights reviewer

# Hier geschieht Magie, der nÀchste Abschnitt soll nur angesprochen werden, wenn bei der ersten Frage "1" eingegeben wurde
# Außerdem soll geprĂŒft werden, ob das Benutzerkonto noch Lesezugriff auf andere Bestandteile des Postfachs hat, damit nicht ggf. fĂ€lschlicherweise die Berechtigung auf das Stammverzeichnis entfernt wird

Remove-MailboxFolderPermission -identity ${postfach} -user ${benutzer}
Remove-MailboxFolderPermission -identity ${postfach}:\${bestandteil} -user ${benutzer}

# Hier kommt noch ein bisschen Ausgabe ĂĄ la "Berechtigungen wurden erfolgreich gesetzt/entfernt" etc.

 

Die KĂŒr wĂ€re es, wenn auch Berechtigungen auf Unterordner unter dem Posteingang gesetzt werden könnten, dann mĂŒssten eben nicht nur fĂŒr das Stammverzeichnis, sondern auch fĂŒr den Posteingang automatisch Berechtigungen gesetzt werden.

 

Schon mal danke an diejenigen, die bis hierhin mitgelesen haben und sich ggf. am Brainstorming beteiligen. 🙂

Puhhh... verstehe ich richtig, dass du den Part noch gerne hÀttest:

vor 19 Stunden schrieb Eye-Q:

Die KĂŒr wĂ€re es, wenn auch Berechtigungen auf Unterordner unter dem Posteingang gesetzt werden könnten, dann mĂŒssten eben nicht nur fĂŒr das Stammverzeichnis, sondern auch fĂŒr den Posteingang automatisch Berechtigungen gesetzt werden.

Der Rest funktioniert soweit?

vor 19 Stunden schrieb Eye-Q:

Die KĂŒr wĂ€re es, wenn auch Berechtigungen auf Unterordner unter dem Posteingang gesetzt werden könnten, dann mĂŒssten eben nicht nur fĂŒr das Stammverzeichnis, sondern auch fĂŒr den Posteingang automatisch Berechtigungen gesetzt werden.

Wenn ich mich recht erinnere mĂŒsstest du hier mit Pipe und Rekursion arbeiten.

Irgendwie so:

Get-MailboxFolder -Identity ${postfach} -Recurse | Remove-MailboxFolderPermission -user ${benutzer}

Gebe keine Garantie auf korrekte funktionsweise.. wĂŒrde es nur so ungefĂ€hr angehen.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.