Exchange Server 2013: Mailbox exportieren

Neulich wurde ich gefragt, ob man denn unter Exchange Server 2013 serverseitig Mailboxen exportieren kann. In diesem Fall ging es darum, Postfächer von ausgeschiedenen Mitarbeitern zu exportieren und archivieren. Der Kunde wollte die Postfächer nicht im Exchange Server belassen, was natürlich auch eine Möglichkeit gewesen wäre.

Dazu nutzt man folgendes PowerShell-Kommando (über die Exchange Management Console ist ein Export nicht möglich):

New-MailboxExportRequest –Mailbox Dieter -FilePath \\emlab01-msx\pst\Dr.pst

Damit wird das Postfach mit dem Benutzernamen Dieter exportiert. Genau genommen wird der Export-Auftrag zuerst in eine Wartschlange gestellt und dann abgearbeitet. Mit dem Befehl Get-MailboxExportRequestStatistics könnt ihr den Status abfragen:

PowerShell

Hat der Benutzer auch ein zugewiesenes Archiv, kann dies ebenfalls exportiert werden:

New-MailboxExportRequest –Mailbox Dieter –FilePath \\emlab01-msx\pst\Dr_Archive.pst –IsArchive

Man kann sogar Filter setzen:

New-MailboxExportRequest –Mailbox Dieter -ContentFilter {(body -like “*microsoft*”) -and (body -like “*forefront*”) -and (Received -lt “01/01/2008”)} -FilePath \\emlab01-msx\pst\Dieter_filter.pst

Hier werden aus der Mailbox Dieter alle eMails exportiert, die die Wörter “microsoft” und “forefront” beinhalten und vor dem 1. Januar 2008 empfangen wurden.

Die vollständige Syntax des Cmdlets lautet:

New-MailboxExportRequest -FilePath <LongPath> -Mailbox <MailboxOrMailUserIdParameter> [-AssociatedMessagesCopyOption <DoNotCopy | MapByMessageClass | Copy>] [-ConflictResolutionOption <KeepSourceItem | KeepLatestItem | KeepAll>] [-ContentFilter <String>] [-ContentFilterLanguage <CultureInfo>] [-ExcludeDumpster <SwitchParameter>] [-ExcludeFolders <String[]>] [-IncludeFolders <String[]>] [-IsArchive <SwitchParameter>] [-RemoteCredential <PSCredential>] [-RemoteHostName <Fqdn>] [-SourceRootFolder <String>] [-TargetRootFolder <String>] [-AcceptLargeDataLoss <SwitchParameter>] [-BadItemLimit <Unlimited>] [-BatchName <String>] [-CompletedRequestAgeLimit <Unlimited>] [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-InternalFlags <InternalMrsFlag[]>] [-LargeItemLimit <Unlimited>] [-Name <String>] [-Priority <Lowest | Lower | Low | Normal | High | Higher | Highest | Emergency>] [-SkipMerging <SkippableMergeComponent[]>] [-Suspend <SwitchParameter>] [-SuspendComment <String>] [-WhatIf [<SwitchParameter>]] [-WorkloadType <None | Local | Onboarding | Offboarding | TenantUpgrade | LoadBalancing | Emergency | RemotePstIngestion | SyncAggregation | RemotePstExport>]

Standardmäßig kann dieses Cmdlet jedoch nicht verwendet werden. Dazu fehlen dem Administrator die notwendigen Rechte. In meinem nächsten Blogbeitrag beschreibe ich die notwendigen Schritte.

Viele Grüße
Dieter


Dieter Rauscher
MVP Enterprise Security