Completing individual moverequests from a migrationbatch

While working on a hybrid migration from Exchange 2010 to Office 365, I found myself in a place where I had a migration batch of approximately 350 mailboxes that was ready to complete, but I only wanted to complete around five of them so my costumer could do some further testing. This was something that was decided later on in the migration traject, so the migration batch was already set up and had synced.

Now, when you use PowerShell, you can complete the entire migration batch with the complete-migrationbatch cmdlet. But there’s no such thing for completing individual mailboxes. With some workarounds though, you can complete individual moverequests from within a migration batch.

First, get the moverequest you’re completing:

1
get-moverequest john.doe@365dude.nl

You’ll see the status is synced, so the mailbox is ready to complete. To do this, we change some properties for the individual moverequest:

1
set-moverequest john.doe@365dude.nl -SuspendWhenReadyToComplete $false -PreventCompletion $false -CompleteAfter 5

In this example, I set the completeafter propertiy to 5 minutes. You can also provide a date/time string to already schedule the completion for a few days from now.

After this is set, we need to resume the migrationbatch so it will complete:

1
resume-migrationbatch john.doe@365dude.nl

After a while, you can do another get-moverequest and see the status will be completed.