Exchange Postfächer in PST exportieren

Exchange unterstützt seit 2010 SP1 ja den Export direkt auf dem Server in PST Files. Dies nutzen wir, um Migrationen von onPremise in unsere Hosted Exchange (HEX) Umgebung durchzuführen.

Um den Export ausführen zu dürfen, benötigt dein Exchange-Admin-User die entsprechenden Berechtigungen:

New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "admin.wildi"

Mit folgendem Befehl kann eine Übersicht aller Postfächer erstellt werden:

Get-Mailbox | Get-MailboxStatistics | Sort-Object User | ft @{label="User";expression={$_.DisplayName}},@{label="Total Size(MB)";expression={$_.TotalItemSize.Value.ToMB()}},@{label="Items";expression={$_.ItemCount}},@{label="Total Deleted Item Size";expression={$_.TotalDeletedItemSize}} -Auto

Benutzerliste für Planung exportieren:

Import-Module ActiveDirectory
Get-ADUser -Filter {(Enabled -eq "true")} -properties SamAccountName,sn,GivenName,mail,EmailAddress,CanonicalName,Enabled | Select-Object sn,GivenName,UserPrincipalName | Export-Csv C:\Temp\users.csv -Encoding UTF8

Wichtig: wenn nun ein PST-Export gestartet wird, wird das Postfach INKLUSIVE gelöschter Elemente exportiert.

Entweder wird in den Eigenschaften der Mailbox-Database die «Löscheinstellung» auf «0 Tage» angepasst:

Dann muss aber der nächste Wartungs-Zyklus abgewartet werden.

Mit folgendem Befehl können diese Elemente pro Postfach gelöscht werden:

Search-Mailbox -Identity admin.wildi -SearchDumpsterOnly -DeleteContent

Erklärung: https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/Search-Mailbox?view=exchange-ps

The SearchDumpsterOnly switch specifies that only the Recoverable Items folder of the specified mailbox be searched. You can also use this switch with the DeleteContent switch to delete messages from the Recoverable Items folder and reduce the size of the folder.

Davor natürlich am besten ein Vollbackup des Exchange-Servers erstellen!

Der eigentliche Export kann mittels folgendem Befehl erfolgen:

New-MailboxExportRequest -Mailbox Alias -FilePath PstFileName

Ich benutze folgendes Script, um die Aliase und PST-Filenamen aus einem Textfile auszulesen, und danach den Export zu starten:

$strExportData = Import-Csv C:\Temp\ExportPST\UserList.txt -Delimiter ',' -Header 'alias', 'pstfile'
forEach ($strUser in $strExportData) {
$strPstFileName = "\SERVER\export$\" + $strUser.pstfile + ".pst"
New-MailboxExportRequest -Mailbox $strUser.alias -FilePath $strPstFileName
}

Inhalt Textfile (erste Spalte = Alias; zweite Spalte = PST-File)

sekretariat,user1
sekretariat2,user2
chef,chef1

Happy exporting!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.