Zum Inhalt springen

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


Eye-Q

Empfohlene Beiträge

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. 🙂

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...