Rechte vergeben
Mit Exchange 2010 SP1 können wir beim Export nur noch einen UNC Share benutzen, dieser kann aber auch auf die lokale Platte zeigen und einfach “\\localhost\d$\pst” lauten. Sollte es aber beim Export Probleme geben, muss das Verzeichnis Lese/Schreib Rechte für die Gruppe “Exchange Trusted Subsystem” besitzen.
Zusätzlich müssen wir dem Admin User der den Export durchführt auch die Rechte zum exportieren geben, dazu starten wir die Powershell am Exchange Server und setzen folgendes Kommando ab
New-ManagmentRoleAssignment –Role “Mailbox Import Export” –User Springfield\Administrator
Export einer Mailbox
Fangen wir mal klein an, und exportieren ein einzelnes Postfach um einmal das neue CMDlet kennen zu lernen. Im Beispiel exportiere ich das Postfach unseres Admin auf das Laufwerk D, in den Ordner PST.
New-MailboxExportRequest -Mailbox Administrator –FilePath “\\localhost\d$\pst\Admin.pst
Wir bekommen also die Meldung das der Export in die Warteschlange geschoben wurde, tja was nun? Man kann die aktuelle Export Warteschlange anzeigen lassen und kontrollieren welche Postfächer bereits erledigt sind.
Get-MailboxExportRequest
Wir sehen das das Admin Postfach den Status “InProgress” hat, also wird es gerade exportiert,nach ein paar Minuten sollte das Postfach fertig sein und folgende zeigen.
Unser Export hat den Status “Completed” somit ist der Export abgeschlossen. Wenn ihr jetzt ein paar Postfächer exportiert, wird die Liste immer weiter wachsen, auch wenn der Export bereits erledigt ist, wird der Eintrag nicht gelöscht, dazu gibt es ein einfach Kommando, damit die Queue wieder geleert wird, damit können auch Exporte abgebrochen werden, also Vorsicht.
Get-MailboxExportRequest | Remove-MailboxExportRequest
[adrotate group="3"]
Massen-Export als Task
Jetzt kommen wir zum spannenden Teil, oben habe ich euch die Basics gezeigt, jetzt kommen wir zu dem Punkt, der euch alle interessiert. Wir kann ich alle Postfächer auf einem Exchange Server 2010 mit SP1 als Task automatisiert exportieren? Zuerst einmal das Kommando das wir benötigen um alle Postfächer als PST zu exportieren.
(Get-Mailbox) | foreach {New-MailboxExportRequest –Mailbox $_.alias –FilePath “\\localhost\d$\pst\$_.pst”}
Danach sollte sich die Queue wie oben füllen. Der Export dauert bei mir rund 1 Stunde mit ca. 20GB. Es gibt auf dem Blog von StevieG eine andere Möglichkeit, die aber bei mir nicht funktioniert hat, somit habe ich mir das hier selber zusammengebaut, was für mich als Nicht-Programmierer nicht ganz so einfach war. Zum Schluss müssen wir das ganze jetzt noch automatisieren, wobei hier ein paar Ding zu beachten sind.
Wir müssen die Queue leeren, ich möchte vor jedem Export die alten PST Dateien löschen und der Export soll laufen. Das sollte mit diesen 3 Kommandos erledigt sein.
Get-ChildItem d:\pst\ -include *.pst -recurse | foreach ($_) {Remove-Item $_.fullname}
Get-MailboxExportRequest | Remove-MailboxExportRequest -confirm:$false
(Get-Mailbox) | foreach {New-MailboxExportRequest -Mailbox $_.alias -FilePath \\localhost\d$\pst\$_.pst}
[adrotate group="3"]
Das ganze jetzt noch an eure Umgebung anpassen, also die Verzeichnisse ändern, und ab damit in eine PS1 Datei, das ganze wird dann per Batchfile aufgerufen, welches wir in den TaskPlaner hängen, und schon läuft der PST Export unter Exchange Server 2010 SP wie geschmiert. Ich habe alles nochmal als Zip Datei zum Download bereitgestellt, darin sind alle Kommandos nochmals als Textdatei zusammengefasst, und die PS1 und BAT File für den automatisierten Export.
Download PSTexport2010sp1.zip
Keine Kommentare:
Kommentar veröffentlichen