• Home
  • Topics
    • Office 365
    • Teams
    • SharePoint
    • Exchange 2019
    • Exchange 2016
    • Exchange 2013
    • Hybrid
    • Certificates
    • PowerShell
    • Migration
    • Security
    • Azure
  • Blog
  • Podcast
  • Webinars
  • Books
  • About
  • Subscribe
    • Facebook
    • Twitter
    • RSS
    • YouTube

Practical 365

You are here: Home / Exchange Server / Using CompleteAfter to Manage Automatic Completion of Mailbox Move Requests

Using CompleteAfter to Manage Automatic Completion of Mailbox Move Requests

February 23, 2017 by Paul Cunningham 5 Comments

When Exchange Server 2010 brought us the miracle of online mailbox moves there was much rejoicing, for it meant no longer burdening our users with lengthy outages while their mailboxes were moved. However, the online mailbox move process was not without some minor disruption, as the very last stages of processing for a move request involved a brief outage while the final cut over of mailbox data and Active Directory attributes is completed.

For migrations and general capacity management moves the standard approach for performing mailbox moves with the least disruption to end users usually went like this.

  1. Start some move requests or a migration batch
  2. Wait for the migration to suspend when it is ready to complete
  3. Initiate the completion of the migration at a time that is least convenient for users

That last step either meant an administrator logging in late one evening or weekend to manually initiate the completion, or for more capable organizations an automated script would run, check for moves that are suspended ready to complete, and initiate the completion.

Now there’s a better way. In fact this has been available since Exchange Server 2013 CU7 (December 2014), according to an email I dug up. In CU7 (or thereabouts), a new CompleteAfter parameter was added to the New-MoveRequest cmdlet. The new parameter lets you specify a date and time that the move request will wait for until it completes. Microsoft now recommends using this parameter instead of the SuspendWhenReadyToComplete parameter that was used previously (it’s still available though).

Here’s an example of CompleteAfter in action, moving the mailbox for “Mahera Bawa”, and specifying a CompleteAfter time and date of 2:00am on February 23rd (in US date format). The CompleteAfter parameter requires UTC time and date, so the easiest approach is to convert a local time into UTC as shown below.

1
[PS] C:\>New-MoveRequest -Identity Mahera.Bawa -CompleteAfter (Get-Date "2/23/2017 2:00 AM").ToUniversalTime()

I left the move request to run, and checked it again the next day. The move request statistics tell the story of what happened.

1
2
3
4
5
6
7
8
9
10
11
[PS] C:\>Get-MoveRequest "Mahera Bawa" | Get-MoveRequestStatistics | Select *TimeStamp
 
 
QueuedTimestamp                  : 2/22/2017 2:10:33 PM
StartTimestamp                   : 2/22/2017 2:18:15 PM
LastUpdateTimestamp              : 2/23/2017 2:04:14 AM
InitialSeedingCompletedTimestamp : 2/22/2017 2:30:43 PM
FinalSyncTimestamp               : 2/23/2017 2:01:04 AM
CompletionTimestamp              : 2/23/2017 2:04:13 AM
SuspendedTimestamp               :
FailureTimestamp                 :

The move requested started at 2:18pm, completed initial seeding at 2:30pm, and then waited until 2:01am the next day before it automatically completed (which only took a few minutes).

As you can see, using CompleteAfter to control the completion of mailbox move requests is quite simple, and makes it very useful for migration scenarios or any time you’re trying to move a mailbox with the least impact on a user. The only caveat is that you need to be fairly confident that the move requests will be ready to complete at the time you specify. If the mailbox move in my example was still doing the initial seeding well into business hours the next day, it would have proceeded to completion and potentially disrupted the user for a few minutes. That’s a risk you can manage with proper planning and by understanding typical move performance in your environment.

Exchange Server Exchange 2013, Exchange 2016, Migration

Comments

  1. Yves says

    December 18, 2020 at 7:51 pm

    Have you ever seen instances of when a mailbox move is set to manually complete but is completing automatically regardless?

    Reply
  2. Raj says

    October 22, 2020 at 3:28 am

    Hello,
    Let’s say I have started a batch with moverequest set to “SuspendwhenReadytoComplete” to TRUE.
    Later sometime, is it possible to set the individual moverequest of the batch (or) entire batch to use “completeafter” parameter ?
    Thanks for any of your valuable hints!

    Reply
  3. Mani says

    September 24, 2019 at 4:05 pm

    I am facing issues with updating complete after the date for some users.. it’s not updating the value.. I can only update after recreate the move request…Do you have any suggestion without recreating move request

    Reply
  4. Paul says

    October 7, 2017 at 10:31 am

    Hi Paul

    How would you do a batch of mailboxes with new-move request? Would you recommend import-csv and a foreach statement. If so would this go thru each mailbox in the list at the same time or would it run only one move request at a time?

    Thanks!!

    Paul

    Reply
  5. Dinesh L says

    July 6, 2017 at 11:08 pm

    Also -completeafter is used for cutover of mailboxes in PAW enabled tenants where Resume-MoveRequest doesn’t help with 100% completion.

    Reply

Leave a Reply Cancel reply

You have to agree to the comment policy.

Recent Articles

  • Hands-on SharePoint Syntex Blog Series – Part I
  • The Practical 365 Weekly Update: S2, Ep 8 – What to expect in 2021, Solarigate, TLS in Exchange and new Teams updates
  • Security updates released for Exchange and SharePoint Servers 2010 to 2019
  • The Practical 365 Weekly Update: S2, Ep 7 – Urgent Exchange security updates, new Teams features launch
  • How to train your users against threats with Attack Simulation Training
Practical 365

Related Posts

Related Posts

Training Courses

  • Configuring and Managing Office 365 Security
  • Office 365 Admin Playbook
  • Exchange 2016 Exam 70-345
  • Managing Exchange Mailboxes and Distribution Groups in PowerShell
  • More Training Courses...

Recommended Resources

  • Office 365 Security Resources
  • Office 365 Books
  • Exchange Server Books
  • Exchange Server Migrations
  • Exchange Analyzer
  • Digicert SSL Certificates

About This Site

Practical 365 is a leading site for Office 365 and Exchange Server news, tips and tutorials. Read more...

Find out more about advertising with us.

Contact us


Subscribe to our newsletter
  • Facebook
  • Twitter
  • RSS
  • YouTube

Copyright © 2021 Quadrotech Solutions AG · Disclosure · Privacy Policy
Alpenstrasse 15, 6304 Zug, Switzerland