Mittwoch, 25. Januar 2012

Massenexport aus Exchange-Datenbank in PST-Dateien

Ab und an kann es gewünscht sein dass Postfächer eines Exchange 2010 SP1 Servers direkt am Server in eine PST exportiert werden. Z.Bsp. als zusätzliche Datensicherung, oder zu Migrationszwecken, oder oder oder.

Seit Exchange 2010 SP1 gibt es in der Powershell ein “New-MailboxExportRequest” cmdlet. Hiermit können einzelne Postfächer in PST-Dateien exportiert werden. Die PST-Datei kann derzeit nur auf UNC-Pfaden (“\\Server\Share\user.pst") abgelegt werden.

Aber der Reihe nach: Zuerst muss der Administrator sich das Recht zuweisen überhaupt exportieren zu dürfen (Admin-Gruppen müssen mit der Option "-Group” angegeben werden):


New-ManagementRoleAssignment –Role “mailbox import export” –User “SBSAdmin”

Nach dem “New-ManagementRoleAssignment” cmdlet muss die Exchange-Management Shell geschlossen, und als Administrator wieder gestartet werden.

Um nun das Postfach von “Heinz Meyer” zu exportieren genügt der Befehl:


New-MailboxExportRequest –Mailbox Heinz.Meyer –FilePath “\\<servername>\Sharename\Heinz.Meyer.pst”

damit wird die Exportanforderung in Warteschlange gestellt, und in der Regel direkt abgearbeitet. Kontrollieren kann man dies mit dem Befehl (Status = Completed):


Get-MailboxExportRequest

Damit die Exportanforderungen nicht bis zum Ende der Menschheit auftauchen können fertige Anforderungen auch gelöscht werden:


Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

Das ganze lässt sich per “Aufgabenplanung” automatisieren, so um z.Bsp. wöchentlich oder monatlich einen Export aller Postfächer zu erstellen. Dazu wird ein PowerShell-Skript erstellt, z.Bsp. “%windir%\MailBoxExport.ps1”. Inhalt der Datei:


$Export = get-mailbox; $Export | %{$_|New-MailboxExportRequest -FilePath \\SRVBACKUP\PST$\$($_.alias).pst}

Die soeben erstellte Datei (MailBoxExport.ps1) kann nun per CMD mit folgendem Inhalt aufgerufen werden:


powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto ; %windir%\MailBoxExport.ps1"

exit

Die so erstellten PST-Dateien müssen besonders geschützt werden, da Jeder, der Zugriff darauf hat, diese direkt importieren und somit lesen kann. Generell sollte bei solch einem Export-Vorgang vorher festgelegt werden wer wie wann auf die PST zugreifen kann, damit auch alles rechtskonform geschieht. Evtl. ist der Betriebsrat mit hinzuzuziehen.

Regelmäßig sollten dann noch die Exportanforderungen bereinigt werden – hierzu wieder ein PowerShell-Skript erstellen – %windir%\ExportRequestEntfernen.ps1 – Inhalt:


$ConfirmPreference="none"
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

Aufruf per CMD mit folgendem Inhalt:


powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto ; %windir%\ExportRequestEntfernen.ps1"
exit

So kann dann (z.Bsp. monatlich) aufgeräumt werden.

Alles ohne Garantie – alle Skripte vorher in einer Testumgebung testen!

Keine Kommentare:

Kommentar veröffentlichen

Dieses Blog durchsuchen