Exchange: Postfach per Powershell in PST exportieren (Eventuell Fehler: CommandNotFoundException)
Ich möchte gerne alte Postfächer von ausgeschiedenen Mitarbeiter in PST-Dateien exportieren. Das möchte ich aber ohne Outlook und zentral vom Server aus machen. Die Lösung findet man mit Powershell! Aber hier gibt es auch einen Fallstrick, den man wissen muss!
Es ist wichtig zu wissen, dass standartmäßig erst mal kein Benutzer berechtigt ist Postfächer in PST zu exportieren - auch der Administrator nicht! Man muss also einem Benutzer erstmal die Berechtigung geben. Dies erfolgt mit dem cmdlet New-ManagementRoleAssignment und der Rolle "Mailbox Import Export". Mit folgendem Befehl gebe ich dem Administrator die Berechtigung:
Wenn man das vergißt, dann erhält man beim ersten Export folgenden Fehler:
Nachdem man die Berechtigung vergeben hat, kann man mittels dem cmdlet New-MailboxExportRequest ein Postfach exportieren. Hier ein Beispielt für einen vollständigen Aufruf:
Falls es Probleme mit Zugriffsrechten auf das Export-Verzeichnis gibt, dann einfach einen Pfad auf dem Exchnage-Server wählen (z.B.: \\mailserver\c$\temp).
Der Export-Request startet dann und wird beim System, je nach Auslastung, abgearbeitet. Den Status des Exports erhält man mit folgendem Befehl:
Status InProgress = läuft noch, Status Completed = Export abgeschlossen
Da die abgeschlossenen Export-Requests nicht automatisch gelöscht werden, würde ich diese zeitnah manuell löschen, da ab einer bestimmten Anzahl keine mehr angenommen werden (ähnlich wie bei den Mailbox-Move-Requests).
Um den z.B. alle erfolgreichen Export-Request zu löschen verwenden Sie folgenden Befehl:
Es ist wichtig zu wissen, dass standartmäßig erst mal kein Benutzer berechtigt ist Postfächer in PST zu exportieren - auch der Administrator nicht! Man muss also einem Benutzer erstmal die Berechtigung geben. Dies erfolgt mit dem cmdlet New-ManagementRoleAssignment und der Rolle "Mailbox Import Export". Mit folgendem Befehl gebe ich dem Administrator die Berechtigung:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User domain\Administrator
Wenn man das vergißt, dann erhält man beim ersten Export folgenden Fehler:
The term 'New-MailboxExportRequest' is not recognized as the name of a cmdlet, function, script file, or operable progr
am. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:25
+ New-MailboxExportRequest <<<< -Mailbox 123456 -FilePath \\server\pstexport\export.pst
+ CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Nachdem man die Berechtigung vergeben hat, kann man mittels dem cmdlet New-MailboxExportRequest ein Postfach exportieren. Hier ein Beispielt für einen vollständigen Aufruf:
New-MailboxExportRequest -Mailbox misterx –FilePath \\server\pstexport\misterx.pst
Falls es Probleme mit Zugriffsrechten auf das Export-Verzeichnis gibt, dann einfach einen Pfad auf dem Exchnage-Server wählen (z.B.: \\mailserver\c$\temp).
Der Export-Request startet dann und wird beim System, je nach Auslastung, abgearbeitet. Den Status des Exports erhält man mit folgendem Befehl:
Get-MailboxExportRequest
Status InProgress = läuft noch, Status Completed = Export abgeschlossen
Da die abgeschlossenen Export-Requests nicht automatisch gelöscht werden, würde ich diese zeitnah manuell löschen, da ab einer bestimmten Anzahl keine mehr angenommen werden (ähnlich wie bei den Mailbox-Move-Requests).
Um den z.B. alle erfolgreichen Export-Request zu löschen verwenden Sie folgenden Befehl:
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest