Eye-Q Geschrieben 5. April 2022 Teilen Geschrieben 5. April 2022 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: Sollen Berechtigungen hinzugefügt oder entzogen werden? (kein Problem mit $<Variablenname> = read-host "<Beschreibung>") Name des Postfachs, auf das die Berechtigungen gewährt bzw. wo die Berechtigungen entzogen werden sollen (ebenfalls kein Problem mit der selben Syntax) Name des Benutzerkontos, welches die Berechtigungen bekommen bzw. dem Berechtigungen entzogen werden soll (ebenfalls kein Problem mit der selben Syntax) 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. 🙂 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DoctorB Geschrieben 6. April 2022 Teilen Geschrieben 6. April 2022 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ICEatm Geschrieben 6. April 2022 Teilen Geschrieben 6. April 2022 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.