Microsoft Exchange Server,  Windows Server

Exchange Server 2010 PowerShell Mailbox Exports

Need to export mailboxes from Exchange? Hate using exmerge to do so. Gone are the days of exmerge. Well, not entirely. But welcome to the days of New-MailboxExportRequest. Much longer and cooler command than exmerge ever thought about being.

C:\>New-MailboxExportRequest -Mailbox cedge -FilePath \\kryptedexchange.krypted.com\pst\cedge.pst

You then receive confirmation that the export has been queued:

Name Mailbox Status
---- ------- ------
MailboxExport https://krypted.com//Users/cedge... Queued

To view the status, swap New with Get (Get-MailboxExportRequest):

Get-MailboxExportRequest

The output is as follows:

Name Mailbox Status
---- ------- ------
MailboxExport https://krypted.com//Users/cedge... InProgress

To get even more info, use the -Name option with Get-MailboxExportRequest, identifying the actual process name.

Get-MailboxExportRequest -Name MailboxExport | fl

The output is as follows:

RunspaceId : xxxxxxx-aaaa-bbbb-cccc-zzzzzzzzz
FilePath : \\kryptedexchange.krypted.com\pst\cedge.pst
SourceDatabase : MB-HO-01
Mailbox : https://krypted.com//Company/Users/krypted
Name : MailboxExport
RequestGuid : aaaaaaaa-bbbb-cccc-dddd-000000000000
RequestQueue : AA-BB-02
Flags : IntraOrg, Push
BatchName :
Status : InProgress
Protect : False
Suspend : False
Direction : Push
RequestStyle : IntraOrg
OrganizationId :
Identity : https://krypted.com//Users/cedge\MailboxExport
IsValid : True

To check the progress of all mailbox export requests, pipe Get-MailboxExportRequest into Get-MailboxExportRequestStatistics:

C:\>Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

The output shows the completion percentage of each process Name:

Name Status SourceAlias PercentComplete
---- ------ ----------- ---------------
MailboxExport InProgress cedge 20

To clear completed requests:

C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest