Migrating email from Exchange On-Premises to Exchange Online consists of multiple components and the approach varies depending on the type of migration being performed.  In the case of mailbox migrations using Exchange Hybrid and MRS moves, ensuring readiness of a specific mailbox or batch of mailboxes is critical to a successful and error free move.

The Pre-flight Tool was originally developed by the FastTrack Team at Microsoft to assist customers and solution providers alike in validating readiness for mailbox moves.  The tool consists of a PowerShell script with a GUI interface that simplifies the user experience.  In a nutshell, the Pre-flight Tool runs a mailbox move using the New-MigrationBatch command with the –WhatIf parameter to simulate mailbox moves.

The Pre-flight Tool performs the following:

It validates migration readiness including:

  1. Does the target object exist in Office 365?
  2. Does it have the required e-mail addresses?
  3. Are all the e-mail addresses valid?
  4. Does the admin account have the required permissions?

What it does not check:

  1. Is the user properly licensed?
  2. Are there corrupt items in the mailbox?
  3. Does the network have enough bandwidth?


  1. Credentials:
  2. Exchange On-Premises – Organization Administrator
  3. Exchange Online – Global Administrator

Connect to Endpoint

      1. Download the latest version of the Pre-Flight tool here: https://github.com/euclidesmiguel/Pre-flight
      2. Launch an elevated PowerShell session and run the following command:
                     Set-ExecutionPolicy –ExecutionPolicy Unrestricted
                      Type Y to change the execution policy
      3.  Type .\PreFlight.ps1 and select R to run the script
      4. The GUI will launch – Click on the    icon.  The PowerShell instance will continue to run in the background.
      5. Under the Configuration window enter the information requested and click Ok.
      6. You will return to the Mailbox Migration window.  Click on the    icon to connect to the On-Premises and Exchange Online platforms.  The tool will connect to the endpoints using the credentials and information supplied in the previous step.  A progress bar will be displayed on the bottom right corner.  Note there is no confirmation when this is complete.  For more information reference the PowerShell instance.
      7. Click on the    icon to load the list of users from your Exchange On-Premises environment.  If you have a large environment with thousands of users, this may take a few minutes.  If all the information provided in Step 5 is accurate and valid, the mailbox list within the Exchange Organization should be populated in the left pane of the window.  Note there is no confirmation when this is complete.  For more information reference the PowerShell instance.

Import and Execute

      1. At this stage you can import a customized CSV file to run the pre-flight on a potential batch.  The CSV file should be formatted in the example to the right.  Click on File and Import.
      2. Locate the CSV file and import it into the tool.  The results will display on the right pane of the window.  Note that there is no confirmation as to when the entire list is loaded.  The updated version of the tool will use the Italics font to highlight potential errors encountered.
      3. Click on the    icon to run the Pre-Flight check.  A status bar in the bottom right corner of the window will display progress.  Note there is no confirmation when this is complete.  For more information reference the PowerShell instance.
      4. Once the status bar is no longer displays, the Pre-flight checks are complete.  You can check the report by locating it in the Reports directory within the root of the Pre-flight tool working directory.
      5. Remediate any errors as necessary.  In the case above the User Jeremy.Stephens@a2it.org does not exist in Exchange Online.  Once you have a Pass on all the objects to be migrated you can proceed to create a batch and begin a migration.


In addition to performing the validation for mailbox moves, the Pre-flight Tool also allows you to execute migrations from within the tool itself as an added feature.

      1. On the Mailbox Migration console, click the    icon.
      1. The Schedule Migration window will launch where you can configure your migration options. Click Ok and the batch will be created.


In addition to the migration option, the Pre-flight tool also has a handy reporting feature.

      1. Within the Pre-flight working folder, type .\Report.ps1 and type R to run the script.
      1. The Migration Reporting window will launch. Click on the   icon and enter credentials to connect to Exchange Online and click OK.
      1. Click on the    icon to initiate the connection to Exchange Online.
      1. Click on the    icon to load the current migration batches.  The batch should display along with the status and count.
      1. Click on the  icon to create the reports.
      1. Select a location to save the files and click Save. By default the reports will be saved in the Reports directory under the Pre-flight root directory.
      2. Two reports will be created. One in a CSV format and the other in HTML.