How to Migrate Exchange Server 2019 to Office 365 (Microsoft 365)?

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

Table of Contents

frx versionExchange Server 2019 has reached end of support in October 2025 along with Exchange Server 2016, thus making migration a crucial task and an important job to ensure security, compatibility, and compliance. This server version fully supports full hybrid and modern public folders for the migration, unlike older versions, like Exchange 2013. Nevertheless, to effectively migrate and make sure complete compatibility with the Hybrid Configuration Wizard (HCW), your server must be updated to the Cumulative Update (CU) 12 or later.

Why Migrating Exchange 2019 to Microsoft 365 is Different from Earlier Versions?

There are several factors that make Exchange Server 2019 different from previous versions. Here is the difference matrix you can refer.

 

Factor

Exchange 2019

Exchange 2016

Exchange 2013

End of Support

October 2025

October 2025

April 2023

Hybrid support

Native Full Hybrid — no workarounds

Full Hybrid

Requires CU23 minimum

Public folders

Modern Public Folders (MPF)

Modern Public Folders (MPF)

Legacy Public Folders

Migration alternative

Upgrade to Exchange Server SE

Upgrade to 2019 or SE

No upgrade path — EOL

Minimum CU for HCW

CU12 or later

CU13 or later

CU23 only

MAPI/HTTP enabled

Enabled by Default

Enabled by Default (requires configuration on older installations)

Must be enabled manually

Migration to Microsoft 365 vs Exchange Server Subscription Edition

If you have Exchange Server 2019, there are two migration options:

There are a number of reasons why you would opt to remain on-premises or migrate to the cloud. Below is a table that will help you in your decision.

 

Factor

Migrate to Microsoft 365

Upgrade to Exchange Server SE

Data location

Microsoft Cloud

On-premises (your control)

Cost model

Per-user monthly subscription

Server + CAL subscription

Maintenance

No server maintenance needed

Server maintenance required

Best for

Organizations wanting to eliminate on-premises servers

Organizations with data residency requirements

Migration effort

One-time migration project

Upgrade project (simpler than migration)

Upgrade path available

Not applicable — one-way move to Microsoft cloud

Only for Exchange 2019 and 2016 — 2013 and 2010 have no upgrade path to SE

Prerequisites before Migrating Exchange 2019 to Microsoft 365

The below prerequisites must be fulfilled to ensure a smooth migration and before running the first data seed:

  • Exchange Server 2019 CU 12 or later as this is a requirement for the Hybrid deployment prerequisites (HCW).
  • .NET Framework 4.8 is also needed for the Hybrid Configuration Wizard (HCW) and Microsoft Entra AD Connect. See Exchange Server prerequisites.
  • SSL Certificate from a valid certificate authority is a crucial requirement for the migration of data.
  • Verify that the MAPI over HTTP is enabled. This is enabled by default but before proceeding you should verify this by using the command - Get-OrganizationConfig | FL MapiHttpEnabled.
  • Make sure that Microsoft Entra AD Connect is installed and configured. A successful directory synchronization is running.
  • The domains - to be transferred - have their MX records Time to Live (TTL) decreased to 300 seconds to speed up the DNS propagation.

Exchange 2019 to Microsoft 365 Migration - Step-by-Step

Let’s now see the stepwise process to migrate Exchange 2019 to Microsoft 365.

Step 1 – Configure the Microsoft Entra AD Connect

Microsoft Entra AD Connect bridges the identities of the local Active Directory and Microsoft Entra ID to provide a seamless and single sign on from both the on-premises and the cloud identity.

After downloading and opening the executable, select the Express Setting to have a quick installation by keeping the defaults that are recommended by Microsoft. It’s the simplest installation with single forest and password hash synchronization.

Below are the steps you can take to configure the Microsoft Entra AD Connect:

  • Sign in to your Entra tenant.
  • Connect your local Active Directory and enter the credentials.
  • Select the Organization Unit (OU) filtering.
  • Set the uniquely identified users by group filtering or attribute filtering.
  • Configure and install.

After the installation is complete, it will run the first synchronization. You can see the users being synchronized in Microsoft 365.

Step 2 – Install and Run the Hybrid Configuration Wizard (HCW)

Assuming that the requirements have been met, you need to download the Hybrid Configuration Wizard (HCW). Once the installation is executed, in the type of tenant selection, select Office 365 Worldwide unless your tenant is a Government Community Cloud (GCC) or DoD environment. This will ask you to sign in using the on-premises Exchange Server administrator credentials and afterward with your Office 365 global admin.

The next step is to select the hybrid mode. In the case of Exchange Server 2019, it is recommended that you select the full hybrid as it natively supports it and come with all the advanced features such as advanced routing and cross-premises message tracking. The minimal hybrid is used for older Exchange Servers as it only supports mailbox migration and is a less complex setup.

After this is complete, you need to setup the mail flow, which would be centralized, from the Exchange Server 2019 since the MX records are pointing to it. You can also use decentralized mail flow which will route emails directly to Exchange Online, reducing on‑premises load and simplifying operations once most of the mailboxes are on the cloud. However, it’s recommended to have the centralized mail flow since during the migration most of the mailboxes are on-premises and if there is an issue with the hybrid model, it will not affect the mail flow.

You must confirm that your certificates are valid and not expiring soon. A hybrid migration is one of the most seamless migrations, but it is the slowest as well and you don’t want to have a certificate expiring mid-way.

The last step is to enable the security authentication and OAuth to allow the token-based authentication for free/busy, mailboxes moves, and eDiscovery features. Along with many modern systems, the Hybrid Configuration Wizard requires TLS 1.2 on the on-premises server.

After this, the Hybrid Configuration Wizard (HCW) is ready.

Step 3 – Create and Start a Migration Batch

Now, you can use the hybrid migration method for Exchange mailboxes to begin migrating the data.

For details, refer the Microsoft document on how to create a hybrid deployment with the HCW.

To begin with, connect to Exchange Online. For this, launch a PowerShell window and execute the below command.

Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com

connect to Exchange Online

The next thing you have to do is create the migration batch. Here’s the command:

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

create the migration batch

Now, you run the migration batch (see the below command).

Start-MigrationBatch -Identity "<batch name>"

run the migration batch

This will start the seeding of data.

Step 4 – Monitor and Finalize the Migration Process

To monitor the status of the batch migration, you need to use the below command.

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

monitor the status of the batch migration

When it shows 100% complete status, proceed to finish the migration.

Warning: Once you run the command - Complete-MigrationBatch, the mailboxes will be permanently moved to the cloud. You should confirm accessibility before completing the batch.

The command below will run one last synchronization with the changes and finalize the migration.

Complete-MigrationBatch -Identity "<batch name>"

run one last synchronization with the changes and finalize the migration

Important: After finalizing a batch, you should check that the mailboxes are accessible in Outlook, before moving to the next batch

Step 5 – Migrating Exchange Server 2019 Modern Public Folders (if needed)

This step is for the migration of the public folders. If you do not use public folders, skip this step entirely.

To start, you have to use the migration scripts available by Microsoft from the link below.

Download Exchange 2019 Public Folder migration scripts from Microsoft

Below are the scripts that you need to use for completing the migration.

  • SourceSideValidations.ps1 – Performs pre-migration validations on the source public folders to ensure health and readiness for modern public folder migration.
  • Export-ModernPublicFolderStatistics.ps1 – Exports details such as size, item count, last modified and more, 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 destination.

These scripts will do the necessary preparation work, like creating the empty folders, mapping the folders, and validating the source. Next, you need to create the batches to migrate the data.

First, connect to your Exchange Online by using the below command:

Connect-ExchangeOnline -UserPrincipalName admin@contoso.com

connect to your Exchange Online

Then, create a new migration endpoint using this command:

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

create a new migration endpoint

After this, create a migration batch.

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

create a migration batch

Now, start the migration batch.

Start-MigrationBatch -Identity "PFMigration"

start the migration batch

You can use the below commands to monitor the status.

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

commands to monitor the status

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

commands to monitor the status

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

Set-OrganizationConfig -PublicFoldersLockedForMigration $true

command to complete the migration

Complete-MigrationBatch -Identity "PFMigration"

command to complete the migration

Step 6 – Updating the Domains MX Record and Complete Cutover

After migrating all the user mailboxes and public folders, you will need to change the MX record from pointing to your local Exchange Server so that all emails can be routed to the Exchange Online.

Depending on your provider, you need to change the MX records which can be found in the Admin Center and in the Domains section. The most important ones are the MX records for the email routing and the Autodiscover records for Microsoft Outlook and mobile phones to connect to the Office 365 accounts.

Once this is done, all the emails will be routed through Office 365.

Using Stellar Migrator for Exchange (No PowerShell Required)

If you are looking for a way to migrate without using PowerShell and without the complexity of hybrid model, you should look for a specialized Exchange migration tool like Stellar Migrator for Exchange. This tool also comes in handy when you have an Exchange Server 2019 where due to some constraints or issues, you cannot comply with the requirements of the hybrid model. You should also consider the complexity and point of failures in the hybrid model. Additionally, when it comes to public folders migration, you can use scripts but it could lead to several issues and chance of human errors.

You can make the migration smooth and seamless by using Stellar Migrator for Exchange. This specialized migration tool facilitates direct migration of user mailboxes, archives, shared mailboxes, and public folders from local Exchange to Microsoft 365. You can get benefitted from its features such as automatic mailbox matching, incremental (delta) synchronization, and real-time and post migration reports.

You can leverage this tool in scenarios where your Exchange 2019 Server is not updated with the CU12, your organization cannot meet the .NET Framework 4.8 requirement and SSL certificates are due to expire.

Post-Migration Checklist

Once the migration is successful, it’s highly suggested to keep at least one Exchange 2019 server running for Active Directory attribute management. This is required after a migration to ensure data clarification. Here are some tasks you should perform:

  • Verify all mailboxes migrated by using Get-Mailbox -ResultSize Unlimited | measure.
  • Confirm MX records are updated and mail flow is working.
  • Reconfigure Outlook profiles (users may need to re-add account).
  • Update mobile device configurations (new ActiveSync endpoint).
  • Wait 30 days minimum before decommissioning Exchange Server after migration to Office 365.
  • Remove stale DNS entries after confirmed decommission.

Common Migration Errors

Here are some common errors that you may encounter during the migration, along with their causes and fixes.

 

Error

Cause

Fix

HCW8078 — endpoint creation failed

Certificate mismatch or firewall blocking port 443

Verify that SSL certificate covers Autodiscover and check port 443 is open. Also check the validity of the SSL certificate.

See also: fix HCW8078 endpoint creation error.

TooManyTransientFailures

Network throttling or oversized mailboxes are timed out

Reduce batch size and check MRS throttling policy.

See: TooManyTransientFailures error fix

StalledDueToTarget

Target Microsoft 365 mailbox quota exceeded

Increase quota or remove holds on the target mailbox See: fix StalledDueToTarget error

Mailbox size exceeds allowed maximum

Source mailbox over 100 GB

Archive older items before migrating or contact Microsoft for quota increase

Migration batch stuck in syncing

MRS service issue or batch limit reached

Restart MSExchangeMailboxReplication on Exchange 2019 and check batch limits

To Conclude

This article explained the complete stepwise process of migrating from Exchange Server 2019 to Microsoft 365. You can go for the full hybrid (a recommended approach) but you should also be aware that it is a little bit complex to setup and requires a lot of time to complete. So, you can utilize Stellar Migrator for Exchange to simplify the process. This  Exchange migration tool can be of great assistance when it comes to migrating data from on-premises server to Microsoft 365 as it doesn’t require any complex setup and PowerShell scripts.



Was this article helpful?
FAQs

Yes - you can use the Office 365 cutover migration method or staged migration for Exchange mailboxes, or Stellar Migrator for Exchange. But you can’t use the cutover method as it is not recommended with Exchange Server 2019.

This depends on the regulatory compliance as well as the company needs.
Yes, keeping the Exchange Server 2019 running for 30 days is essential to ensure that all the data has been transferred and there is enough time to the full cutover of data.
Depending on the volume of data, performance of the server, and internet bandwidth, it may take approx. 3 to 4 weeks if you’re doing a hybrid migration.
Your current server version must be updated with the Cumulative Update 12 or higher.
Yes - you can migrate the public folders by using specific migration scripts provided by Microsoft.
You can use the Hybrid Modern Authentication (HMA). It uses OAuth 2.0 tokens.
Yes - you can have a hybrid model but you will not be able to decommission the Server. Some companies keep a hybrid system due to limitations on some mailboxes and to control email delivery.
Yes - in a default installation of an Exchange Server, MAPI over HTTP is enabled.
These are preserved as the identities of the local Active Directory are synchronized with Microsoft Entra AD.
About The Author
author image
Shelly Bhardwaj linkdin Icon

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

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
×