Skip to content

Complete individual mailbox move request from migration batch

You created a batch to migrate the mailboxes from Exchange On-Premises to Exchange Online. Normally you complete the migration batch, and all the mailboxes will complete. This time you like to manually complete an individual mailbox move request from migration batch. In this article, you will learn how to complete an individual mailbox move request from a migration batch.

Before you start to complete individual mailbox move

At the moment of writing, it’s impossible to move a single mailbox move request from migration batch with Exchange Admin Center in Exchange Online. However, you can complete the individual move request with Exchange PowerShell.

Note: You need to connect to Exchange Online PowerShell and not the on-premises Exchange Management Shell.

Before you start, make sure to Install and Connect to Exchange Online PowerShell. I recommend installing Exchange Online PowerShell on the on-premises Exchange Server. This way, you can manage Exchange related tasks from one system.

Get move request status

Run Get-MigrationBatch cmdlet, including -BatchName parameter, in the connected Exchange Online PowerShell window. At the moment, only one migration batch shows up.

PS C:\> Get-MigrationBatch

Identity         Status Type               TotalCount
--------         ------ ----               ----------
MigrationBatch01 Synced ExchangeRemoteMove 5

Now that you have the migration batch name, you can get the move request of that batch. Add Get-MoveRequestStatics for more details.

PS C:\> Get-MoveRequest -BatchName "MigrationService:MigrationBatch01" -ResultSize Unlimited | Get-MoveRequestStatistics

DisplayName  StatusDetail TotalMailboxSize             TotalArchiveSize PercentComplete
-----------  ------------ ----------------             ---------------- ---------------
Stella Reyes Synced       264.5 MB (277,366,857 bytes) 0 B (0 bytes)    95             
Lisa Philips Synced       48.22 MB (50,562,011 bytes)  0 B (0 bytes)    95             
Craig Hansen Synced       320.9 MB (336,480,513 bytes) 0 B (0 bytes)    95             
Viola Simon  Synced       1.765 GB (1,894,902,086 b... 0 B (0 bytes)    95             
Nick Carlson Synced       1.147 GB (1,231,440,391 b... 0 B (0 bytes)    95

You can also use the Get-MigrationUser cmdlet, including the -BatchId, parameter to check the mailbox move request status of the batch.

PS C:\> Get-MigrationUser -BatchId "MigrationBatch01" -ResultSize Unlimited | Get-MoveRequestStatistics

DisplayName  StatusDetail TotalMailboxSize             TotalArchiveSize PercentComplete
-----------  ------------ ----------------             ---------------- ---------------
Stella Reyes Synced       264.5 MB (277,366,857 bytes) 0 B (0 bytes)    95             
Lisa Philips Synced       48.22 MB (50,562,011 bytes)  0 B (0 bytes)    95             
Craig Hansen Synced       320.9 MB (336,480,513 bytes) 0 B (0 bytes)    95             
Viola Simon  Synced       1.765 GB (1,894,902,086 b... 0 B (0 bytes)    95             
Nick Carlson Synced       1.147 GB (1,231,440,391 b... 0 B (0 bytes)    95

This is what MigrationBatch01 looks like in Microsoft 365 Exchange admin center.

Complete individual mailbox move request from migration batch synced

Before you like to complete the individual mailbox move request, it’s good to know that you can get the move request of a single user only. Read the next part.

Get move request of a single user

Get the move request of a single user only. Run Get-Moverequest cmdlet with the -Identity parameter. The -Identity parameter specifies the identity of the mailbox or mail user.

PS C:\> Get-MoveRequest -Identity "Craig Hansen"

DisplayName  Status TargetDatabase    
-----------  ------ --------------    
Craig Hansen Synced EURPR05DG055-db032

In the next step, you will complete the move request of that single user from migration batch.

Complete individual move request from migration batch

Run the Set-MoveRequest cmdlet, including the -CompleteAfter parameter, with the value of 1. That will trigger the complete mailbox move immediately.

PS C:\> Set-MoveRequest -Identity "Craig Hansen" -CompleteAfter 1

Another option is to specify the date/time value in UTC format and complete the single mailbox.

PS C:\> Set-MoveRequest -Identity "Craig Hansen" -CompleteAfter (Get-Date).ToUniversalTime()

Verify individual move request completion

After running one of the above commands, check the move request. First, it will show the status InProgress. Next, the mailbox will sync for the last time and complete it.

PS C:\> Get-MoveRequest -Identity "Craig Hansen"

DisplayName  Status     TargetDatabase
-----------  ------     --------------
Craig Hansen InProgress EURPR05DG055-db032

Verify the move request, and it will show as Completed.

PS C:\> Get-MoveRequest -Identity "Craig Hansen"

DisplayName  Status    TargetDatabase
-----------  ------    --------------
Craig Hansen Completed EURPR05DG055-db032

This is what an individual mailbox completion looks like in Microsoft 365 Exchange admin center.

Complete individual mailbox move request from migration batch one completed

Complete individual mailbox move in the migration batch completed successfully.

Keep reading: Move mailbox to Exchange Online with PowerShell »

Conclusion

You learned how to complete individual mailbox move request from migration batch. Connect to Exchange Online PowerShell to manage the Exchange Online settings from the command line. Get the mailbox move request status of the user and complete the mailbox migration.

Did you enjoy this article? You may also like Check move request status Exchange. Don’t forget to follow us and share this article.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 5 Comments

  1. We have scheduled some individual moves to occur while the main batch is still syncing (with no set completion date). We have seen where the scheduled time resets to the batch setting (of an open completion time). Is there a window that the move must be completed within before the batch settings may overwrite the individual scheduled time?

  2. I’m getting error while completing the migration of user the above command i.e. completeAfter 1.
    The StartAfter time must be earlier than CompleteAfter time on the move request.

    The batch has 250 mailboxes and I need to complete migration for one user.

  3. I have a migration batch with two users.
    If I do a Get-MigrationUser -BatchId xxxx | Get-MigrationUserStatistics I see the two users with stats, but if I try what you suggested (Get-MovereRequest) I don’t see them and I cannot complete them individually .

    How should I do to complete them individually ?

    1. I followed the article right now, and everything works as expected. The Get-MoveRequest cmdlet shows the mailboxes, and I completed a single mailbox.

      You can also complete an individual user with the Set-MigrationUser cmdlet.

Leave a Reply

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