Einfach einen neuen Exchange-Ordner automatisch anlegen? Es erscheint eine doch recht simple Aufgabe, für ein beliebiges Postfach als Exchange-Admin einen neuen Ordner anzulegen. Über die Admin-Oberfläche von Exchange ist dies auch kein Problem. Aber wie ist es, wenn wir dies automatisieren möchten?
Hier denken wir sich schnell: “Kein Problem, dafür gibt es sicher ein cmdlet!”. Wir werfen die bevorzugte Suchmaschine an und werden im Normalfall auch schnell fündig: New-MailboxFolder wird einem direkt von Microsoft als Top-Ergebnis vorgeschlagen. Das ist auch tatsächlich ein cmdlet, dass wir in der Exchange-Konsole ausführen können, um einen neuen Exchange-Ordner in einer Mailbox anlegen zu können. “Super!”, könnte sich der geneigte Admin denken und gleich zur Erklärung herunterscrollen, wie das cmdlet funktioniert.
Index
Fehler vermeiden
Das wäre allerdings ein Fehler, denn dann überlesen wir folgenden, wichtigen Absatz: “Use the New-MailboxFolder cmdlet to create folders in your own mailbox. Administrators can’t use this cmdlet to create folders in other mailboxes.” Dieses cmdlet kann also nur dazu verwendet werden, um einen Exchange-Ordner im Postfach des angemeldeten Nutzers anzulegen, in diesem Fall also für den Administrator selbst. Das bringt also nichts. Jetzt könnten wir auf die Idee kommen, dass wir es als Login-Skript verteilen könnten – aber dann bräuchte der oder die User entsprechende Berechtigungen auf dem Exchange, was wir normalerweise tunlichst vermeiden sollten.
New-MailboxFolder cmdlet funktioniert nicht
Wozu ist dieses cmdlet also gut? Nun ja, wer diese Frage beantworten kann, darf sich gerne in den Kommentaren bei uns melden.
Leider scheint es so, als hätte Microsoft es bisher nicht geschafft, ein cmdlet bereitzustellen, mit dem wir diese Aufgabe für andere Nutzer durchführen können. Das heißt allerdings nicht, dass es nicht funktioniert. Es ist nur etwas umständlicher.
Alternative mit Exchange Web Services
Mit dem Exchange Web Services wird eine Schnittstelle für .NET-Entwickler bereitgestellt, die diese benutzen können, um so den Mailserver anzusteuern. Allerdings können wir auf diesen auch zugreifen, wenn wir PowerShell verwenden. Und er stellt eine API bereit, die wir verwenden können, um diese Aufgabe zu bewältigen. Die Installation ist dabei denkbar einfach: Der Installer für die aktuelle Version kann hier heruntergeladen werden und einfach ohne weitere nötige Konfigurationseinstellungen auf dem Server installiert werden.
Glücklicherweise müssen wir dafür auch nicht das Ansprechen der API selbst in PowerShell skripten. Im Microsoft-Developer-Blog stellt jemand ein entsprechendes Skript dankbarer Weise bereits zur Verfügung, dass wir uns herunterladen können.
Skript für einen automatisierten neuen Exchange-Ordner
Die Verwendung ist denkbar einfach, da sich das Skript sogar selbst die richtige Version des EWS heraussucht. Alles, was wir brauchen, ist die E-Mail-Adresse (PrimarySmtpAddress) des gewünschten Nutzers und der Name des Ordners. Die Adresse bekommen wir direkt über den Exchange mit Get-Mailbox oder einfach aus dem AD:
1 2 |
$user = Get-ADUser “steve.koenig” -Properties $mail = $user.mail |
Wir überprüfen noch, ob diese auch gefüllt ist und können dann direkt auf dem Exchange-Server den Ordner anlegen.
1 2 3 |
if($mail) { .\Create-Folders.ps1 $mail “Neuer Ordner” } |
Mehrere Exchange-Ordner können wir auch mit einem Semikolon getrennt angeben:
1 |
.\Create-Folders.ps1 $mail “Neuer Ordner; Noch ein neuer Ordner” |
Diese Befehle legen den oder die neuen Ordner direkt unter dem Posteingang an. Möchten wir dies stattdessen unter einem anderen Ordner tun, können wir das über den Parameter “-ParentFolderName” machen, zum Beispiel so:
1 |
.\Create-Folders.ps1 $mail “Neuer Ordner” -ParentFolderName “Parent” |
Fazit
Wie Sie es gesehen haben, ist es eigentlich recht einfach dank dieses EWS-Skripts neuen Exchange-Ordner im Postfach anzulegen! Schade, dass Microsoft dies nicht nativ in der PowerShell zur Verfügung stellt. Doch mit diesem kleinen Tutorial sollte es dennoch kein Problem darstellen, einen neuen Ordner in einem beliebigen Postfach anzulegen.
Eine Alternativ zu PowerShell wäre unsere IDM-Portal Software. Sie können weitere Arbeitsabläufe im Identity Management automatisieren:
von der prompten Befüllung der Eingabefelder, über die automatische Passwortgenerierung bis hin zu Genehmigungs-Workflows.
Mit dem IDM-Portal werden PS-Skripte zur Automatisierung in absolut anwenderfreundliche Web-Oberflächen eingebunden.
Unterstützung benötigt?
Gerne stellen wir Ihnen unsere Leistungen und Lösungen in einem persönlichen Gespräch vor und würden uns über Ihre Kontaktaufnahme sehr freuen!
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>