Manage mailbox restore requests

Applies to: Exchange Server 2013

Mailbox restore requests are used to restore disconnected mailboxes. A disconnected mailbox is a mailbox in an Exchange mailbox database that isn't associated with an Active Directory user account. Mailboxes become disconnected when they're disabled, deleted, or moved to another database. For more information, see Disconnected mailboxes.

Disconnected mailboxes remain in the mailbox database for the duration specified in the deleted mailbox retention settings for the mailbox database. By default, disconnected mailboxes are retained for 30 days. During this retention period, the contents of a deleted mailbox can be restored (copied) to an existing mailbox. This topic describes how to use the Shell to manage mailbox restore requests.

For additional management tasks related to disconnected mailboxes, see the following topics:

What do you need to know before you begin?

  • Estimated time to complete each procedure: 2 minutes.

  • You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the "Mailbox restore request" entry in the Recipients Permissions topic.

  • The procedures in this topic can only be performed in the Shell. You can't use the EAC to manage mailbox restore requests.

  • To display the value of the Identity property for all mailbox restore requests, run the following command.

    Get-MailboxRestoreRequest | Format-Table Identity
    

    You can use this identity value to specify a specific mailbox restore request when you're performing the procedures in this topic.

  • For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

Tip

Having problems? Ask for help in the Exchange forums. Visit the forums at Exchange Server.

Use the Shell to view restore request properties

You can view the properties of a mailbox restore request, which provide you with basic information about the status of a mailbox restore request.

To display a list and the value of the Identity property for all mailbox restore requests, run the following command.

Get-MailboxRestoreRequest | Format-Table Identity

You can use the identity to get information about specific mailbox restore requests.

This example returns the status of the restore request "Pilar Pinilla \MailboxRestore" using the Identity parameter.

Get-MailboxRestoreRequest -Identity "Pilar Pinilla\MailboxRestore"

This example returns all information for the second restore request for the Pilar Pinilla target mailbox.

Get-MailboxRestoreRequest -Identity "Pilar Pinilla\MailboxRestore1" | Format-List

This example returns the status of restore requests being restored from the source database MBD01.

Get-MailboxRestoreRequest -SourceDatabase MBD01

This example returns all restore requests that are currently in progress.

Get-MailboxRestoreRequest -Status InProgress

Other useful status states include Queued, Completed, Suspended, and Failed.

This example returns all restore requests that have been suspended.

Get-MailboxRestoreRequest -Suspend $true

If the command returns an error, verify that you're using the correct syntax and identity. In some cases, the cmdlet may be successful and not return any results. For example, if you've submitted a mailbox restore request and run the command Get-MailboxRestoreRequest -Status InProgress and no results are returned, then none of the restore requests are currently running.

For detailed syntax and parameter information, see Get-MailboxRestoreRequest.

Get-MailboxRestoreRequest Output

By default, the Get-MailboxRestoreRequest cmdlet returns the name of the request, the target mailbox to which data is being restored, and the status of the request. The following table lists useful information returned if you pipe the cmdlet to the Format-List cmdlet.

Value Description
SourceDatabase Specifies the database that contains the disconnected mailbox that's being restored.
TargetMailbox Specifies the mailbox into which data is being restored.
Name Specifies the name of the request.
RequestQueue Specifies the database on which the Microsoft Exchange Mailbox Replication service (MRS) stores the detailed status of the request.
Status Specifies the status of the request.
Suspend Specifies whether the request is suspended. A mailbox restore can be suspended when it's created using the New-MailboxRestoreRequest cmdlet with the Suspend parameter. It can also be suspended if the mailbox restore operation fails or by an administrator using the Suspend-MailboxRestoreRequest cmdlet.
Identity Specifies the identity of the request. This identity is a combination of the target mailbox name and the request name.

Use the Shell to view restore request statistics

You can view the statistics of a mailbox restore request, which provide you with detailed information that can be used for troubleshooting purposes.

This example returns the default statistics for the restore request danp\MailboxRestore1. By default, the information returned includes name, mailbox, status, and percentage complete.

Get-MailboxRestoreRequestStatistics -Identity danp\MailboxRestore1

This example returns the statistics for Dan Park's mailbox and exports the report to a .csv file.

Get-MailboxRestoreRequestStatistics -Identity "Dan Park\MailboxRestore" | Export-CSV \\SERVER01\RestoreRequest_Reports\DanPark_Restorestats.csv

This example returns additional information about the restore request for Pilar Pinilla's mailbox using the IncludeReport parameter and piping the results to the Format-List cmdlet.

Get-MailboxRestoreRequestStatistics -Identity "Pilar Pinilla\MailboxRestore" -IncludeReport | Format-List

This example returns additional information for all restore requests that have a status of Failed using the IncludeReport parameter, and then saves the information to the file AllRestoreReports.txt in the location where the command is being run.

Get-MailboxRestoreRequest -Status Failed | Get-MailboxRestoreRequestStatistics -IncludeReport | Format-List > AllRestoreReports.txt

For detailed syntax and parameter information, see Get-MailboxRestoreRequestStatistics and Get-MailboxRestoreRequest.

Get-MailboxRestoreRequestStatistics Output

By default, the Get-MailboxRestoreRequestStatistics cmdlet returns the name of the request, the status of the request, the alias of the target mailbox, and the percentage completed. The following table lists other useful information returned if you pipeline the cmdlet to the Format-List cmdlet.

Value Description
Name Specifies the name of the request.
Status Specifies the status of the request.
StatusDetail Specifies more details about the request status. For example, if the Status value returns InProgress, the StatusDetail value would return the specific stages for the InProgress status, such as CreatingFolderHierarchy and CopyingMessages.
SyncStage Specifies how far along the request is through the restore process.
Suspend Specifies whether the restore request is suspended. This value is true in the following scenarios:
  • MRS stopped or is in the process of stopping the request due to a failure.
  • An administrator suspended the request.
SourceExchangeGuid Specifies the GUID of the source mailbox from which data is being restored.
SourceRootFolder Specifies the name of the root folder in the source mailbox hierarchy from which data is being restored. If this value is blank, data is restored from the folder Top of Information Store.
SourceDatabase Specifies the name of the database on which the source mailbox is located.
MailboxRestoreFlags Specifies that the mailbox being restored is either Disabled or Soft-Deleted.
TargetAlias Specifies the alias of the target mailbox.
TargetIsArchive Specifies whether the mailbox is being restored into an archive.
TargetExchangeGuid Specifies the GUID of the target mailbox.
TargetRootFolder Specifies the name of the root folder in the target mailbox hierarchy to which data is being restored. If this value is blank, data is restored to the folder Top of Information Store.
TargetDatabase Specifies the name of the database on which the target mailbox is located.
TargetMailboxIdentity Specifies the identity of the target mailbox.
IncludeFolders Specifies the list of folders to include during the restore. If this value is blank, no folders were specified when the request was created, and all folders will be restored to the mailbox (unless the ExcludeFolders parameter is used to exclude specific folders).
ExcludeFolders Specifies the list of folders to exclude during the restore. If this value is blank, no folders were specified when the request was created, and all folders will be restored to the mailbox (unless the IncludeFolders parameter is used to include specific folders).
ExcludeDumpster Specifies whether the Recoverable Items folder was excluded when the request was created.
ConflictResolutionOption Specifies the action for MRS to take if there are matching messages in the target and source folders.
AssociatedMessagesCopyOption Specifies whether the associated messages are copied when the request is processed. Associated messages are special messages that contain hidden data with information about rules, views, and forms.
BadItemLimit Specifies the number of bad items that MRS will skip if the request encounters corrupted messages.
BadItemsEncountered Specifies the number of corrupted messages encountered by the command. If the BadItemsEncountered value is greater than the BadItemLimit value, the request fails.
QueuedTimeStamp Specifies the date and time at which the request was initiated to MRS.
StartTimeStamp Specifies the date and time at which MRS started processing the restore request.
LastUpdateTimeStamp Specifies the date and time at which the last change was made to the request. The change may have been made by an administrator or by MRS.
SuspendTimeStamp Specifies the date and time at which the request was suspended.
OverallDuration Specifies the amount of time it took to complete the request. If the request is in a Failed state, this value specifies the amount of time between the request being initiated and the request failing. If the request isn't complete, this value specifies the amount of time between the request being initiated and the Get-MailboxRestoreRequestStatistics cmdlet being run.
TotalSuspendedDuration Specifies the amount of time the request was in the Suspended state.
TotalFailedDuration Specifies the amount of time the request was in the Failed state.
TotalQueuedDuration Specifies the amount of time the request was in the Queued state.
TotalInProgressDuration Specifies the amount of time the request was in the In Progress state.
TotalStalledDueToHADuration Specifies the amount of time the request was stalled due to high availability.
MRSServerName Specifies the name of the Client Access server that processed the request.
EstimatedTransferSize Specifies the total file size that was restored or the file size that MRS expects to restore if the request is in the In Progress state.
EstimatedTransferItemCount Specifies the number of items that were restored or the number of items that MRS expects to restore if the request is in the In Progress state.
BytesTransferredPerMinute Specifies the average number of bytes that have been transferred per minute.
ItemsTransferred Specifies the number of items that have been transferred.
PercentComplete Specifies the percentage of the request that has been completed.
CompletedRequestAgeLimit Specifies how long a completed restore request will be retained before it's deleted. The default is 30 days.
PositionInQueue If the request hasn't started, this value specifies the request's position in the queue.
FailureCode If there is a failure, this value specifies the failure code.
FailureType If there is a failure, this value specifies the failure type.
FailureSide If there is a failure, this value specifies whether the failure occurred on the target mailbox or the source mailbox.
Message If there is a failure, this value specifies the failure message. This value can also specify the suspend comment.
FailureTimestamp If the request failed, this value specifies the date and time at which the request failed.
FailureContext If the request failed, this value specifies information about the action being performed at the time of failure.
ValidationMessage If the request isn't valid, this value specifies the reason.
RequestQueue Specifies the database on which MRS stores the detailed status of the request.
Identity Specifies the identity of the request.
Report If you used the IncludeReport parameter, this value specifies information that can be used to troubleshoot the request.

Run the Get-MailboxRestoreRequestStatistics cmdlet to verify that you can view the statistics for mailbox restore requests. If the cmdlet returns an error, verify that you're using the correct identity for the restore request.

Use the Shell to change restore request properties

If a mailbox restore request fails, you can use the Set-MailboxRestoreRequest cmdlet to change the request's properties to try to recover from the failure.

This example specifies that the restore request MailboxRestore1 for Debra Garcia's mailbox skips 10 corrupted mailbox items.

Set-MailboxRestoreRequest -Identity "Debra Garcia\MailboxRestore1" -BadItemLimit 10

This example specifies that the restore request MailboxRestore1 for Florence Flipo's mailbox skips 100 corrupted items. Because the BadItemLimit value is greater than 50, the AcceptLargeDataLoss parameter must be specified.

Set-MailboxRestoreRequest -Identity "Florence Flipo\MailboxRestore1" -BadItemLimit 100 -AcceptLargeDataLoss

For detailed syntax and parameter information, see Set-MailboxRestoreRequest.

How do you know you've successfully changed the properties of a restore request?

To verify that you've successfully changed the properties of a restore request, run the Get-MailboxRestoreRequestStatistics cmdlet to display the revised properties for the restore request. If the restore request was successfully created, the Status property will have a value of Queued, InProgress, or Completed. After the restore request is completed, the contents of the soft-deleted mailbox will appear in the target mailbox.

For detailed syntax and parameter information, see Get-MailboxRestoreRequestStatistics.

Use the Shell to suspend a restore request

You can suspend a restore request any time after the request was created but before the request reaches the status of Completed. See Use the Shell to resume a restore request later in this topic for the command syntax to resume the restore request using the Resume-MailboxRestoreRequest cmdlet.

This example suspends the restore request MailboxRestore1 for Pilar Pinilla's mailbox.

Suspend-MailboxRestoreRequest -Identity "Pilar Pinilla\MailboxRestore1"

This example suspends all restore requests in progress by first retrieving all requests that have a status of InProgress, and then piping the output to the Suspend-MailboxRestoreRequest cmdlet and including the suspend comment "Resume after FY13Q2 Maintenance."

Get-MailboxRestoreRequest -Status InProgress | Suspend-MailboxRestoreRequest -SuspendComment "Resume after FY13Q2 Maintenance"

For detailed syntax and parameter information, see Suspend-MailboxRestoreRequest.

How do you know you've successfully suspended a mailbox restore request?

To verify that you've successfully suspended a mailbox restore request, run the following command.

Get-MailboxRestoreRequest <identity> | Format-List Suspend,Status

If the value of the Suspend property equals True, the restore request was successfully suspended. Also, a value of Suspended for the Status property indicates that the restore request was suspended.

Use the Shell to resume a restore request

Use the Resume-MailboxRestoreRequest cmdlet to resume a restore request that failed or was suspended.

This example resumes the restore request Pilar Pinilla\MailboxRestore1.

Resume-MailboxRestoreRequest -Identity "Pilar Pinilla\MailboxRestore1"

This example resumes all restore requests that have a status of Failed.

Get-MailboxRestoreRequest -Status Failed | Resume-MailboxRestoreRequest

For detailed syntax and parameter information, see Resume-MailboxRestoreRequest.

How do you know you've successfully resumed a restore request?

To verify you've successfully resumed a restore request, run the following command.

Get-MailboxRestoreRequest <identity> | Format-List Suspend,Status

If the value of the Suspend property equals False, the restore request successfully resumed. Also, a value of InProgress for the Status property indicates that the restore request resumed.

Use the Shell to remove a restore request

You can use the Remove-MailboxRestoreRequest cmdlet to remove mailbox restore requests. If you remove a restore request after mailbox data begins being copied to the target mailbox, the mailbox data that's copied remains in the target mailbox.

Note

As previously stated, completed restore requests are retained for 30 days by default before they're automatically deleted.

This example removes the restore request Pilar Pinilla\MailboxRestore1.

Remove-MailboxRestoreRequest -Identity "Pilar Pinilla\MailboxRestore1"

This example removes all restore requests that have the status of Completed.

Get-MailboxRestoreRequest -Status Completed | Remove-MailboxRestoreRequest

This example cancels the restore request by using the RequestGuid parameter for a request stored on MBXDB01. The parameter set that requires the RequestGuid and RequestQueue parameters is used only for Microsoft Replication Service debugging purposes. You should use this parameter set only if instructed by Microsoft Customer Service and Support.

Remove-MailboxRestoreRequest -RequestQueue MBXDB01 -RequestGuid 25e0eaf2-6cc2-4353-b83e-5cb7b72d441f

For detailed syntax and parameter information, see Remove-MailboxRestoreRequest.

How do you ou've successfully removed a mailbox restore request?

To verify that you've successfully removed a mailbox restore request, run the following command.

Get-MailboxRestoreRequest -Identity <identity of removed restore request>

The command will return an error stating that the restore request doesn't exist.

You can also run the Get-MailboxRestoreRequest cmdlet. If a restore request was successfully removed, it won't be included in the results.