SuspendWhenReadyToComplete when using a migration batch in Office 365

Currently I’m working with a customer in a hybrid Exchange 2010 environment. There are multiple offices around the US, and one office in California will close soon. Therefore, all Mailboxes need to be moved to Office 365. The customer created multiple migration batches, and all batches are set using the -SuspendWhenReadyToComplete option. So, when a Mailbox migration in this batch reaches 95% the move will stop, and both Mailboxes will be kept in sync.

So, I started a Remote PowerShell session to Exchange Online (completing an individual move request as part of a batch is not possible in the Exchange Admin Console) and executed the following command:

Get-MoveRequest -Identity John@contoso.com | Resume-MoveRequest -Confirm:$false

While no error message was generated, the move requests were not finished. After some head scratching I realized that the -SuspendWhenReadyToComplete option is set on the migration batch, and that the move requests ‘inherit’ this setting. So, when resuming the move request it will automatically suspend again when hitting 95% (which is a matter of seconds).

So, I executed the following commands:

Get-MoveRequest -Identity John@contoso.com | Set-MoveRequest -SuspendWhenReadyToComplete:$false
Get-MoveRequest -Identity John@contoso.com | Resume-MoveRequest -Confirm:$false

Unfortunately, nothing happened and the move request stayed in the ‘synced’ state and was not willing to finalize. And of course no errors were logged.

At one point I realized I read something in the New-MoveRequest page on TechNet, where it says at the SuspendWhenReadyToComplete option:

“The SuspendWhenReadyToComplete switch specifies whether to suspend the move request before it reaches the status of CompletionInProgress. Instead of this switch, we recommend that you use the CompleteAfter parameter.”

This time I executed the following commands:

$Date = Get-Date
Get-MoveRequest -Identity John@contoso.com | Set-MoveRequest -CompleteAfter $Date
Get-MoveRequest -Identity John@contoso.com | Resume-MoveRequest -Confirm:$false

And this time the individual move requests in the migration batch were successfully finalized.

5 thoughts on “SuspendWhenReadyToComplete when using a migration batch in Office 365”

  1. Hi Jaap,

    I tried the above steps recently ( last week ) with a few mailboxes which were already set in Migration batch with AutoSuspended value True.

    I did remove the flags Autosuspended & PreventCompletion on the mailboxes, but I was still unable to set the attribute completeAfter and finish the move request automatically.

    The environment i am working with is (exchange 2010 SP3 hosting mailboxes and legacy OWA, Exchange 2013 CU10 used for Hybrid MRS connections.)

    Do you happen to know if this actually works as of today with Exchange Hybrid ?

    Like

    1. Hi,
      in my case the customer was running Exchange 2010 only without an Exchange 2013 server. I know Microsoft has made some changes when it comes to autosuspend, for example when setting the time to finalize the move. But it should (and did :-)) work.

      Like

Leave a comment