Move Request status monitoring

Move Request status monitoring provides valuable information about the current progress of triggered moves and further more you can get a hint what causes a move to fail. Fortunately there are several parameters we can use to query to put the puzzle pieces together. The most useful parameters for a move request status monitoring are :

Get-MoveRequestStatistics and the switch -IncludeReport

Let’s assume you have triggered a couple of move requests to run at night and you want check their result in the morning.


The following command provides a good overview of the completed move requests :

Get-MoveRequest -resultsize unlimited | Where-Object {$_.status -like “Completed”} | Get-MoveRequestStatistics | select DisplayName, StatusDetail, *Size, *Percent* | ft

Next we want to see if there are move requests in any other state than completed :

Get-MoveRequest -resultsize unlimited | Where-Object {$_.status -notlike “Completed”} | Get-MoveRequestStatistics | select DisplayName, StatusDetail, *Size, *Percent* | ft

The output will show moves in states like Queued, InProgress, Failed or any other state.
Should you have move requests with status failed you can grab them and gather more information using the following line :

Get-MoveRequest -resultsize unlimited | Where-Object {$_.status -like “failed”} | Get-MoveRequestStatistics -IncludeReport | select DisplayName, Message, FailureType, FailureSide, FailureTimeStamp, *bad*, *large*, Report, Identity | fl

Message, FailureType and FailureSide will show you the reason for a failed move request and provides information where the error ouccured. ( Source or target side )

Report lists the details step by step for a move reqeust.

BadItemLimit , BadItemsEncoutered, LargeItemLimit and LargeItemsEncountered will show you limits and possible encountered items which quantities are over the given limits.

In many cases corrupted items in the source mailbox can cause the move to fail with too many bad items.
Too many large items can cause the move to fail as well.

With this information at your hand you will hopefully have an entry point to solve the problem and get the move request completed when you resume it. You will need the output of Identity to resume a certain move request.

To only resume the move request :

Get-MoveRequest -Identity “OutputOfIdentity” | Resume-MoveRequest

To resume a move request caused by bad or corrupted items : ( for LargeItems use -LargeItemLimit )

Get-MoveRequest -Identity “OutputOfIdentity” | Set-MoveRequest -BadItemLimit 50
Get-MoveRequest -Identity “OutputOfIdentity” | Resume-MoveRequest

To resume a move request with a BadItem count higher than 50 :

Get-MoveRequest -Identity “OutputOfIdentity” | Set-MoveRequest -BadItemLimit 51 -AcceptLargeDataLoss
Get-MoveRequest -Identity “OutputOfIdentity” | Resume-MoveRequest

2 Likes

Leave a Reply

Your email address will not be published. Required fields are marked *