Postfächer in Exchange (Online) mit PowerShell verwalten


    Tags: , , ,

    Mailboxes / PostfächerDer Lebens­zyklus eines Post­faches von der An­lage bis zur Löschung lässt sich durch­gängig über die grafische Ober­fläche des Exchange Admin Center (ECP) ver­walten. Alter­nativ be­herrscht auch Power­Shell sämt­liche Aufgaben des Mailbox-Managements und kann diese weit­gehend auto­matisieren.

    Bevor ich die einzelnen Cmdlets beschreibe, hier ein Tipp für die Script-Entwicklung: Um diese zu beschleunigen, kann man bei der ECP spicken. Die GUI löst nämlich für die meisten Aufgaben im Hinter­grund PowerShell-Befehle aus, die man sehen und kopieren kann, wenn man die Exchange Befehlsprotokollierung aktiviert.

    Zu den wichtigsten Tätigkeiten der Mailbox-Verwaltung zählen:

    • Das Anlegen, Deaktivieren und Löschen von Benutzer­postfächern
    • Hinzufügen oder Ändern von Mail-Adressen
    • Weiterleitung des Postfaches
    • Konfigurieren der Größen­beschränkungen
    • Verwaltung des Postfach­speicher­kontingentes (Quota)

    Anlage eines Postfachs

    Diesem Zweck dient das Cmdlet New-Mailbox. Ein Beispiel­aufruf könnte so aussehen:

    New-Mailbox -Name "Max Mustermann" -UserPrincipalName max.mustermann@contoso.com `
    -Password (ConvertTo-SecureString -String 'Hallo123' -AsPlainText -Force) `
    -FirstName Max -LastName Mustermann

    Anlegen eines neuen Postfachs mit dem PowerShell-Cmdlet New-Mailbox

    Hinweis: Wenn man den Parameter Password nicht mitgibt, dann erwartet PowerShell bei der Anlage des Postfaches die Eingabe eines Kennworts.

    Anders schaut der Befehl aus, wenn ein Postfach für einen Benutzer erstellt werden soll, welcher bereits im Active Directory vorhanden ist. Dies erfolgt mit Enable-Mailbox und dem User Principal Name (UPN):

    Enable-Mailbox -Identity max.mustermann@contoso.com

    Mailbox für ein bestehendes AD-Konto erstellen

    Wer mehrere Datenbanken auf dem Exchange-Server verwaltet, kann den Benutzer mit dem Parameter Database in der gewünschten Datenbank erzeugen.

    Natürlich wäre wie beim Anlegen von Benutzern im Active Directory auch hier ein Massenimport entweder per CSV oder aus dem AD möglich. Dabei sollte man aber einen passenden Filter verwenden, um beim Aktivieren von Postfächern keinen bereits bestehenden Mailbox-Benutzer zu erwischen (dies führt allerdings nur zu einer Fehlermeldung ohne weitere Konsequenzen).

    Beim Auslesen aus dem Active Directory könnte man dafür ein Attribut prüfen, welches erst durch das Aktivieren des Postfaches mit einem Wert gefüllt wird. Dafür bieten sich zum Beispiel mail oder proxyAddresses an.

    Postfächer deaktivieren oder löschen

    Beachten Sie bitte den Unterschied zwischen dem Deaktivieren (Disable) und Löschen (Remove) von Postfächern. Im ersten Fall bleibt der Benutzer im Active Directory weiterhin vorhanden, er hat dann bloß kein Postfach mehr. Beim Remove-Befehl hingegen wird das komplette Konto gelöscht.

    Um ein Benutzer­postfach zu deaktivieren, nutzt man Disable-Mailbox, den Gegenspieler von Enable-Mailbox. Der Aufruf erfolgt nach dem gleichen Muster:

    Disable-Mailbox -Identity max.mustermann@contoso.com

    Postfach eines Benutzers deaktivieren, das AD-Konto bleibt dabei erhalten

    Ebenso einfach ist es, einen Benutzer zu löschen:

    Remove-Mailbox -Identity max.mustermann@contoso.com

    Mail-Adresse hinzufügen

    Es kommt häufiger vor, dass Benutzer nicht nur eine Mail-Adresse haben, unter der sie erreichbar sind. Dafür gibt es mehrere Gründe, von verschiedenen Funktionen des Mitarbeiters im Unter­nehmen bis hin zur Migration und der Zusammen­legungen von Organisationen. Als primäre SMTP-Adresse kann der Benutzer allerdings nur eine verwenden.

    Für die Verwaltung der Mail-Adressen eines Postfachs ist Set-Mailbox zuständig. Mit dem Attribut Add oder Remove in der Hash-Tabelle des Parameters EmailAddresses kann man eine Adresse hinzufügen oder entfernen:

    Set-Mailbox -Identity "Max Mustermann" -EmailAddresses @{add="m.m@contoso.com"}

    Mail-Adresse zu einem Postfach hinzufügen mit Set-Mailbox

    Sollen mehrere Adressen auf einmal hinzugefügt werden, so sind diese durch ein Komma zu trennen.

    Möchte man die Adresse ersetzen, so übergibt man die neue einfach als Zeichen­kette an den Parameter EmailAddresses. Sollten Sie eine Adress­richtlinie im Einsatz haben, so muss diese über den Schalter EmailAddressPolicyEnabled deaktiviert werden, da die Änderung ansonsten nicht zulässig ist:

    Set-Mailbox -Identity "Max Mustermann" -EmailAddresses m.m@contoso.com `
    -EmailAddressPolicyEnabled $false

    Weiterleitung eines Postfaches aktivieren

    Eine Weiterleitung wird etwa genutzt, wenn ein Mitarbeiter das Unternehmen verlassen hat und der Nachfolger die E-Mails seines Vorgängers zur weiteren Bearbeitung erhalten soll. Hinweis: Achten Sie bei diesem Vorhaben auf den geltenden Datenschutz!

    Folgender Befehl bewirkt eine Weiterleitung auf einen anderen Benutzer:

    Set-Mailbox -Identity "Max Mustermann" -DeliverToMailboxAndForward $true `
    -ForwardingSMTPAddress Ernie.Meier@contoso.com

    Größenbeschränkung für Nachrichten

    Sollte die Größen­beschränkung nicht vom Empfangs- und Sende-Connector übernommen werden, so ist es möglich, beim Benutzer eine Ausnahme zu konfigurieren.

    Set-Mailbox -Identity "Max Mustermann" -MaxSendSize 40mb -MaxReceiveSize 45mb

    MaxSendSize = Maximale Größe einer E-Mail beim Senden

    MaxReceiveSize = Maximale Größe einer zu empfangenden E-Mail

    Vermeiden Sie, das Limit zu weit hoch­zudrehen. Ein Postfach ist kein Datei­transporter. Wer ein Mail-Gateway einsetzt, sollte darauf achten, dass die konfigurierte Größe dort nicht geblockt wird.

    Postfachspeicherkontingent

    Das Postfach­speicher­kontingent dient dazu, die maximale Größe einer Mailbox zu begrenzen. Es hilft somit dabei, das Wachstum der Exchange-Datenbanken unter Kontrolle zu halten. In der Regel reicht für einen normalen Benutzer ein Kontingent von 1 bis 2 GB vollkommen aus.

    Set-Mailbox -Identity "Max Mustermann" -IssueWarningQuota 3gb -ProhibitSendQuota 4gb `
    -ProhibitSendReceiveQuota 5gb -UseDatabaseQuotaDefaults $false

    Dabei bedeuten die einzelnen Parameter folgendes:

    • IssueWarningQuota = Warnmeldung senden ab 3 GB
    • ProhibitSendQuota = Senden verbieten ab 4 GB
    • ProhibitSendReceiveQuota = Senden und Empfangen verbieten ab 5 GB

    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