Exchange Server 2010 Service Pack 1 introduced a new method for exporting mailboxes called Mailbox Export Requests. This new method replaces the previous Export-Mailbox command.
Before we look at how to create a new mailbox export request in Exchange 2010 SP1 there are a few things that you should understand.
Firstly, no accounts are granted the rights to export mailboxes by default. You need to explicitly grant these rights, even to accounts that are organization administrators.
Secondly, the mailbox export request is processed by the Client Access server role. Because multiple Client Access servers can exist in a site the request could be processed by any one of them. To ensure that the path to the export PST file is valid for any Client Access server it has to be a UNC path to network share, not a local path.
Granting User Rights for Mailbox Exports in Exchange 2010 SP1
The first step is to grant the right to export mailboxes to an account in your organization. In the Exchange Management Shell run the following command.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User Administrator
If you’re logged with that user already simply restart your Exchange Management Shell session to be granted access to the new cmdlets.
Creating a Network Share for Mailbox Exports in Exchange 2010 SP1
Next we need to create the network share that will be used as the file path for the exported PST files. All that is required here is a network share that the Exchange Trusted Subsystem group has read/write permission to.
Exporting a Mailbox with an Exchange Server SP1 Mailbox Export Request
With everything configured properly we can now use New-MailboxExportRequest to start the mailbox export. The only two required parameters for the command are the file path to the export PST file, and the name of the mailbox to export.
[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst Name Mailbox Status ---- ------- ------ MailboxExport exchangeserverpro.net/Company/Users/Head Of... Queued
To view the status of the request use the Get-MailboxExportRequest cmdlet.
[PS] C:\>Get-MailboxExportRequest Name Mailbox Status ---- ------- ------ MailboxExport exchangeserverpro.net/Company/Users/Head Of... InProgress
You can also see more detail about the mailbox export request with Get-MailboxExportRequest.
[PS] C:\>Get-MailboxExportRequest -Name MailboxExport | fl RunspaceId : c48a9069-e572-4c65-80ea-773e61e5337e FilePath : \\esp-ho-ex2010a\pst\alan.reid.pst SourceDatabase : MB-HO-01 Mailbox : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid Name : MailboxExport RequestGuid : 9de3a722-0c82-4e34-98bf-0ff624c47c16 RequestQueue : MB-HO-01 Flags : IntraOrg, Push BatchName : Status : InProgress Protect : False Suspend : False Direction : Push RequestStyle : IntraOrg OrganizationId : Identity : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid\MailboxExport IsValid : True
An easy way to see the progress of all mailbox export requests is to pipe Get-MailboxExportRequest into the Get-MailboxExportRequestStatistics cmdlet.
[PS] C:\>Get-MailboxExportRequest | Get-MailboxExportRequestStatistics Name Status SourceAlias PercentComplete ---- ------ ----------- --------------- MailboxExport InProgress Alan.Reid 20
Exporting an Archive Mailbox with Exchange Server SP1 Mailbox Export Request
You can also export a user’s Personal Archive using mailbox export requests simply by adding the -IsArchive parameter to the command.
[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -IsArchive
Completing the Mailbox Export Request
When a mailbox export request is completed it remains on the server until it is removed by an administrator using Remove-MailboxExportRequest.
To see all of the completed mailbox export requests run this command.
[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"} Name Mailbox Status ---- ------- ------ MailboxExport exchangeserverpro.net/Company/Users/Head Of... Completed
And to clear all completed mailbox export requests from Exchange run the following command.
[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"} | Remove-Mailbox