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:
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