How to Migrate from Exchange Server 2016 to Office 365 (Microsoft 365)?

info-icon Our content follows trusted Editorial Standards - accurate & unbiased.

For migrating an Exchange Server 2016 to Microsoft 365, hybrid method is recommended as Exchange Server 2016 is out of support and end of life, since October 2025. The hybrid method offers zero downtime with seamless migration. It is a batch-based migration with full hybrid co-existence with Microsoft 365.

Exchange Server 2016 is still functioning but it is no longer receiving any security updates. It has several advantages compared to older versions. These are:

  • It can coexist with Exchange 2013 or 2019.
  • It supports modern public folders.
  • MAPI over HTTP can be manually enabled on older builds of Exchange 2016.
  • It supports hybrid migration if Cumulative Update (CU) 13 or later installed.

Why Exchange Server 2016 Migration is Urgent?

Running a core application such as Exchange Server 2016 would mean a big security risk for the business. Here’s the comparison with other server versions.

 

Factor

Exchange 2013

Exchange 2016

Exchange 2019

End of Support

April 2023 - Already EOL

October 14, 2025 - Already EOL

October 14, 2025 - Already EOL

Time Remaining

Zero. No support

Zero. No support

Zero. No support

Security Patches

None, since April 2023

Ended October 2025

Ended October 2025

Minimum CU for HCW

CU23 only

CU13 or later

CU12 or later

MAPI over HTTP

Must be enabled manually

Must be enabled manually on older installations

Default

Public Folder Type

Legacy Public Folders

Modern Public Folders

Modern Public Folders

Prerequisites for Exchange 2016 to Microsoft 365 Migration

You should make sure the following before proceeding:

  • Exchange Server 2016 CU13 or later is installed.
  • MAPI over HTTP is enabled.
  • .NET Framework 4.8 is installed.
  • Certificates from certificate authority are installed.
  • Microsoft 365 tenant is provisioned and licensed.
  • Microsoft Entra ID Connect configured. (Formerly Azure Active Directory Connect/Azure AD Connect.)
  • A valid certificate installed (not self-signed).
  • TLS 1.2 must be enabled.

Once the above are met, you can proceed with installing the Hybrid Configuration Wizard (HCW) and migrate the data.

Note: We’re taking into consideration that the Microsoft 365 tenant has been provisioned and the Microsoft 365 licenses have been purchased and assigned to the created users. The domain is also verified on the tenant and the users have the domain’s suffix.

Migration Methods for Exchange 2016

Listed below are the possible ways for Exchange 2016 to Office 365 migration.

 

Method

Best For

Notes

Hybrid Migration (HCW)

Recommended for all

  • Zero downtime
  • Batch migration
  • Co-existence during migration

Cutover Migration

Under 150 mailboxes only

  • All mailboxes are moved at once
  • Short maintenance window needed
  • No failback

Stellar Migrator for Exchange

Organizations without Exchange admin expertise

  • GUI-based
  • Supports all versions of Exchange Server
  • Easy migration of mailboxes and public folders
  • No PowerShell required
  • Free trial available

 

Note: Staged migration is not available for Exchange 2016. Only the above methods are available. To know more, read How to migrate mailboxes from Exchange to Office 365

Process to Migrate from Exchange 2016 to Microsoft 365 using Hybrid Method

Below, we will be explaining the stepwise process.

Step 1 – Install the Required Updates

You need first ensure that your server is fully updated and CU 13 or higher is installed. For this, the below PowerShell command.

Get-ExchangeDiagnosticInfo -Server <server name> -Process EdgeTransport -Component VersionCheck

Install the Required Updates

As an alternative, you can also use this command:

Get-Command ExSetup.exe | % { $_.FileVersionInfo }

use this command Get-Command ExSetup.exe | % { $_.FileVersionInfo }

Step 2 – Enable MAPI over HTTP

If you’ve an older build of Exchange Server 2016, this would not be enabled by default. So, you can use the below command to check MAPI ove HTTP is enabled on your server:

Get-OrganizationConfig | fl MapiHttpEnabled

command to check MAPI ove HTTP is enabled

If it’s disabled, use this command to enable it:

Set-OrganizationConfig -MapiHttpEnabled $true

command to check MAPI ove HTTP is enabled

After enabling the MAPI over HTTP, run the below command:

iisreset /noforce

use this command iisreset /noforce

Note: This step is crucial. Else, the HCW will fail with connectivity errors.

Step 3 – Ensure Certificates are Updated

Certificates form an integral part of the migration project. The HCW and hybrid method rely on them. These are required for secure communication between on-premises server and Office 365 (Exchange Online). Self-signed certificates will not work. Moreover, certificates which are due to expire during the migration can negatively impact the migration process.

Check current certificates:

Get-ExchangeCertificate | fl FriendlyName, Subject, NotAfter, Services

Enable a certificate for SMTP/IIS (replace thumbprint with your actual value):

Enable-ExchangeCertificate -Thumbprint <thumbprint> -Services SMTP,IIS

Note: Make sure the certificate covers your Autodiscover and mail.contoso.com hostnames. The expiry date is not within the next 60 days, once you’ve planned the migration completion date.

Step 4 –Configure Microsoft Entra ID Connect

The Entra ID connect is essential for the hybrid method. It will synchronize the users from your local Active Directory to Microsoft Entra ID.

You can choose either the Express Settings or the Custom Installation, during the setup process. The Express Setting is the simplest one as it sets up a single forest, with password hash synchronization.

During the process,

  • Connect to your Microsoft Entra ID tenant.
  • Connect to your Active Directory.
  • Select the Active Directory OU filtering.
  • Set the Uniquely Identified Users.
  • Configure and install.

This will install Entra ID Connect and immediately run a full synchronization.

Step 5 – Run the Hybrid Configuration Wizard (HCW)

Note: Make sure the above steps are completed.

Once you’ve downloaded the Hybrid Configuration Wizard (HCW), select the Office 365 Worldwide. Sign in using the on-premises server credentials and then Office 365 global admin credentials.

You can select the suitable hybrid mode depending on your business needs. The wizard offers:

  • Minimal Hybrid: It is suitable if you want just mailbox migrations.
  • Full Hybrid: It is suitable if you would need advanced routing, cross-premises message tracking, and full coexistence.

After this, you need to set the mail flow configuration. You can select the Centralized Mail Transport to route emails through the Exchange Server. Confirm the certificates to be used. During the setup, it will continue and create the required connectors.

Next, you need to enable the Security authentication and OAuth which will allow the token-based authentication for free/busy, mailbox moves, and eDiscovery features. The wizard enforces TLS 1.2. It may fail during the authentication process, if your on-premises server doesn’t support it or it is not enabled.

Note: If the wizard fails, refer to our guides on fixing HCW8078 and HCW8064 — common HCW errors.

Step 6 – Create and Run Migration Batches

Now, you can start the migration of data. First, you have to connect to Microsoft 365 by using the below command:

Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com

Connect-ExchangeOnline

Next, create the batch for migration. Use the below command:

New-MigrationBatch -Name "<batch name>"  -SourceEndpoint "<source endpoint>" -TargetDeliveryDomain "mydomain.mail.onmicrosoft.com" -CSVData ([System.IO.File]::ReadAllBytes("<csv file location>"))

 create the batch for migration

After this, you can start the batch by using this command:

Start-MigrationBatch -Identity "<batch name>

start the batch

Here’s the command to check the migration batch status:

Get-MigrationBatch -Identity "<batch name>" | FL Identity,Status, TotalCount, SyncedCount, FinalizedCount, PercentageComplete

check the migration batch status

For a full reference of PowerShell commands to monitor migration progress, see how to check migration status with PowerShell.

Once ready, run the complete command (see the below example) to finalize the batch.

Complete-MigrationBatch -Identity "<batch name>

finalize the batch

When all the batches are completed, confirm that the mailboxes are accessible in Outlook client.

Note: If you face any error during batch migration, refer our hybrid migration troubleshooting guide.

Step 7 – Migrate Modern Public Folders

Note: You can skip this step, if you do not have public folders.

You can use the migration scripts provided by Microsoft to migrate public folders. For a full version-by-version guide, see our public folder migration to Office 365 guide.

The first part is to prepare the on-premises infrastructure by running the following scripts to ensure that the public folders are compliant.

  • SourceSideValidations.ps1 – Performs pre-migration validation on the source public folders to ensure health and readiness for migration.
  • Export-ModernPublicFolderStatistics.ps1 – Exports details such as size, item count, last modified, etc. to support analysis, reporting, and migration planning.
  • ModernPublicFolderToMailboxMapGenerator.ps1 – Generates the folder to mailbox mapping file required during the migration.
  • Sync-ModernMailPublicFolders.ps1 – Synchronizes the mail-enabled public folder objects between the source and the destination.

These scripts will create empty public folders on Microsoft 365.

Now, connect to the tenant by executing this command:

Connect-ExchangeOnline -UserPrincipalName admin@contoso.com

connect to the tenant

When connected, create a new migration endpoint. Use this command:

New-MigrationEndpoint -PublicFolder -Name "PFEndpoint"  -RemoteServer "mail.contoso.com" -Credentials (Get-Credential)

create a new migration endpoint

After creating the migration endpoint, create the migration batch using the public folder mailbox mapping file:

New-MigrationBatch -Name "PFMigration" -CSVData ([System.IO.File]::ReadAllBytes("PFMailboxMap.csv")) -SourceEndpoint "PFEndpoint

create the migration batch

Now, start the migration batch by running the below command:

Start-MigrationBatch -Identity "PFMigration

start the migration batch

You can use the following commands to monitor the migration status:

Get-MigrationBatch "PFMigration" | FL Status, TotalCount, SyncedCount

monitor the migration status

Get-MigrationUser -BatchId "PFMigration" | FL DisplayName, Status, PercentageComplete

monitor the migration status

Once done, use the below commands to complete the migration.

Set-OrganizationConfig -PublicFoldersLockedForMigration $true

commands to complete the migration

Complete-MigrationBatch -Identity "PFMigration"

commands to complete the migration

Simplify Exchange to Microsoft 365 Migration - Use Stellar Migrator for Exchange

The native methods involve complex scripting and require technical expertise to setup the hybrid model, maintain and support it, as well as administrative effort. Stellar Migrator for Exchange – a specialized Exchange migration tool – can help simplify the process.

This tool allows to directly connect to the on-premises Exchange and Microsoft 365. You can then select and migrate mailboxes to Office 365. It comes with features such as automatic mailbox matching, and real-time and post migration reporting. It supports cross-forest migration and delta (incremental) synchronization.

Before purchasing the license, you can use its free trial version (with 2 mailboxes limit). It is compatible with all versions of Exchange - from 2007 to the newest Subscription Edition (SE).

Post-Migration Checklist

Below are some tasks you should perform  after the migration:

  • Confirm that the MX and Autodiscover DNS records are verified in the Exchange Online portal and all the necessary services are running. After this is done, the DNS zone of the domains should be checked for any stale records which could be from previous migrations and ensure that the DNS zone is clean. If you need to reconfigure connectors, read our guide on configuring mail flow on Exchange Server.
  • Check that all the mailboxes have been successfully migrated. You can use the Get-Mailbox -ResultSize Unlimited command. This will allow you to compare the count returned with your mailbox count to confirm the success of the migration.
  • Confirm that all the Outlook profiles have been changed and pointing to the Exchange Online. If not, you need to setup the profile in Outlook. The same procedure needs to be done on the mobile devices with the ActiveSync endpoints.
Note: It is suggested to have your existing server running (at least for 30 days). This helps to verify that everything is working properly.

Once all done and verified, decommission your Exchange Server.

Conclusion

In this guide, we have explained the detailed process of Exchange Server 2016 to Office 365 migration. The full hybrid migration process can take a lot of time and is considered complex to setup and maintain. To make the migration process easier, you can opt for Stellar Migrator for Exchange. This specialized tool supports migration from any local server to Office 365 and vice versa. It also supports on-premises to on-premises and tenant to tenant migration. 



Was this article helpful?
About The Author
author image
Shelly Bhardwaj linkdin Icon

Shelly is technology expert and core knowledge of Exchange Server, Outlook.

Table of Contents

WHY STELLAR® IS GLOBAL LEADER

Why Choose Stellar?
  • 0M+

    Customers

  • 0+

    Years of Excellence

  • 0+

    R&D Engineers

  • 0+

    Countries

  • 0+

    PARTNERS

  • 0+

    Awards Received

BitRaser With 30 Years of Excellence
Technology You Can Trust
Data Care Experts since 1993
google-trust
×