Verfasst von johannes am 10. June 2011 | Veröffentlicht in
Backup,
Howto,
Messaging |
5 KommentareManchmal ist es notwendig Mailboxen aus einer bestehenden Exchange 2010 oder SBS 2011 Umgebung zu exportieren.
Benötigte Komponenten
Um den Export vornehmen zu können mĂŒssen ein paar Bedingungen erfĂŒllt sein. Da Clientsoftware auf einem Server meiner Meinung nach nichts zu suchen hat, verwende ich hierfĂŒr immer meine Admin Workstation:
- Exchange 2010 SP1 (ist beim SBS 2011 schon dabei)
Outlook 2010 x64 (seit SP1 nicht mehr notwendig)- Exchange Management Tools
Import & Export Rechte
Um Mailboxen exportieren und importieren zu können benötigt man ein spezielles Recht (welches per default keinem Benutzer zugeordnet ist). Die Zuordnung erfolgt wie alle weiteren Behle auch in der Exchange Management Shell.

New-ManagementRoleAssignment âRole âMailbox Import Exportâ âUser AD\ExAdmin
Export einer Mailbox
Der einfachste Vorgang ist das exportieren einer einzigen Mailbox. HierfĂŒr reicht ein simpler Powershell Befehl:

New-MailboxExportRequest -Mailbox User01 -FilePath "\\adminpc\export\User01.pstâ
Wichtig: Der Pfad zu den Exportdateien muss ein UNC Pfad sein, der fĂŒr das System auch erreichbar ist!
Export aller Mailboxen
Ein klein wenig komplexer, aber dank PowerShell noch immer recht einfach, wird das exportieren aller vorhandenen Mailboxen auf dem System:

foreach ($i in (Get-Mailbox)) { New-MailboxExportRequest -Mailbox $i -FilePath "\\adminpc\export\$($i.Alias).pstâ }
Status des Exports
Bei gröĂeren Exports will man natĂŒrlich auch wissen, wie weit der Fortschritt der einzelnen Schritte ist. Diesen kann man sich mit nachfolgendem Befehl anzeigen lassen:

Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
Import einer Mailbox
Daten die man exportiert hat will man natĂŒrlich auch wieder importieren. Das erreicht man mit folgendem Befehl.

New-MailboxImportRequest âMailbox User01 âFilePath "\\adminpc\export\User01.pstâ
Massenimport von Mailboxen
NatĂŒrlich gibt es via Powershell auch einen Weg viele Mailboxen auf einen Schlag zurĂŒck zu spielen. In meinem Beispiel ist es notwendig, dass die exportierten Dateien den Namen der Mailbox tragen UND das die neuen Mailboxen den gleichen Namen haben! Verwendet man die Exportsyntax von oben, dann ist zumindest mal die erste Bedingung erfĂŒllt.

dir \\10.10.10.10\path_to_pst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }Gibt es ein *.pst File in dem Ordner fĂŒr welchen das System keine Mailbo findet, dann erhĂ€lt man diese rote Fehlermeldung. Das ist aber nicht weiter problematisch – in meinem Fall gibt es diesen Benutzer in der neuen Umgebung bewuĂt nicht mehr…
AufrÀumen
Nachdem die AuftrÀge durch sind ist es wichtig, die fertigen Requests wieder aus der Exchange Request Liste zu entfernen (auch wenn Sie auf completed stehen, bleiben sie dort stehen!). Erledigt wird das wieder mit einem einfachen PowerShell Befehl:
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
Update
12.06.2011:
- Import Syntax angepasst und um einen Massenupdate erweitert
- Outlook aus den benötigten Komponenten gelöscht
22.06.2011:
Ich hatte tatsĂ€chlich vergessen den Teil zum aufrĂ€umen der Requests im Exchange Request System vergessen zu erwĂ€hnen. Danke fĂŒr den Hinweis Nils.