Exchange 2016 to 2019 Migration Done Right
Organizations that are operating an Exchange Server 2016 environment want to continue with an on-premise email server. To do this, they must perform an Exchange 2016 to 2019 migration ASAP. This is because only those servers that are on the latest CU 15 version of Exchange 2019 can transition into the upcoming Exchange Server SE edition. Moreover, the recent Exchange Online outage and privacy concerns with keeping critical company data on the cloud encourage many companies to continue with the on-premises systems.
So that is why, here in this guide, we give you an in-depth understanding of how to undertake the upgrade in a safe and step-by-step manner. Additionally, the tutorial is made in such a language that admins, regardless of prior experience or technical know-how, can move data across the versions with minimal downtime and zero loss. So, without further ado, let us start with the prerequisites.
Pre-Requisites to Complete Before an Exchange 2016 to 2019 Migration
Check and make sure that the groundwork for the migration goes smoothly. If you skip any step here, then you put the entire migration in jeopardy.
Check the current hardware and upgrade if needed. It is well known that Exchange 2019 is more demanding than the 2016 version. Moreover, the upcoming Exchange Server Subscription Edition (SE) uses the same hardware requirements as Exchange Server 2019 CU15. So keep a minimum of 128GB RAM for the Mailbox role (a significant jump from 2016) and 64-bit Intel or AMD processors.
Plus, while allocating the total disk space, keep the OS, Exchange installation, and message queue database in your calculations.
Like the hardware, the underlying software needs a refresh as well. For OS, you need Windows Server 2019 (or 2022 with later CUs). Additionally, upgrade/update all of the following .NET Framework (typically 4.8), Visual C++ Redistributables (2012 & 2013), UCMA 4.0 (even though Unified Messaging gets deprecated in 2019 and later versions), Server Media Foundation, and the IIS URL Rewrite Module.
Apart from that, your AD forest and domain functional levels must be on Windows Server 2012 R2 or later. Sometimes the schema needs extending, do it during setup via /PrepareSchema and /PrepareAD. Also, the new server must be domain-joined, and the AD site needs a writable DC and Global Catalog.
Migration is done on healthy servers. So, check which CU your Exchange 2016 is on and if it is on any version earlier than Cumulative Update 11 (CU11) update.
It goes without saying that your Exchange 2019 licenses must be ready.
Before you proceed, make a full, tested backup of your existing Exchange 2016 environment and Active Directory. Once done see the steps to set up the target server:
Install Exchange 2019 and Configure Coexistence with Exchange 2016
Always install the most recent available Cumulative Update (CU) for Exchange 2019 from the start using either the Setup Wizard or unattended mode.
- User-friendly Setup: An installation wizard walks you through role selection (Mailbox role + Management tools), installation path (avoid the system drive if possible), and readiness checks.
- Unattended Mode: Perfect for automation and consistency across several server deployments, using switches like /Install /Role:Mailbox /InstallWindowsComponents and /IAcceptExchangeServerLicenseTerms.
Check installation using setup logs (C:\ExchangeSetupLogs\ExchangeSetup.log) or the Get-ExchangeServer cmdlet; restart.
The Exchange 2016 to 2019 Migration should cause little to no downtime if the administrators complete the following activities.
- Create virtual directories. On Exchange 2019, set internal/external URLs for OWA, ECP, ActiveSync, Autodiscover, etc., to reflect your 2016 configuration. PowerShell cmdlets such as Set-OwaVirtualDirectory should be used.
- Configure Outlook Anywhere: Match host names to your 2016 setup.
- Correct Service Connection Point (SCP): To avoid early client connections to the new, not-yet-fully-configured server, initially set the SCP on the 2019 server to $null or point it to the 2016 environment using Set-ClientAccessService.
- Match Authentication Techniques: Your 2016 configuration should be consistent (NTLM, Basic, Kerberos).
- Set up Mail Flow Connectors: Include the 2019 server in the current Send Connectors and modify/create Receive Connectors to reflect it.
- Certificate Copy: From Exchange 2016, export your current SSL certificate (including its private key) and import it to Exchange 2019. Turn it on for SMTP and IIS. Using the same certificate makes client confidence easier.
Options to Migrate Exchange 2016 to Exchange 2019
Mailbox Migration Strategies: Whichever way you choose, don’t try to move everyone at once! Start with a pilot group. The following migration options are available:
1. EAC: The Exchange Admin Centre offers a graphical way to create migration batches and move mailboxes from the 2016 version to a different database on the 2019 server. The process, when done via EAC, looks something like this:
- Log in to EAC, go to Recipients > Migration
- Click on the + icon > Select Move to a different database.
- Pick mailboxes > Specify target db.
- Configure move settings > Migrate.
2. PowerShell: The New-MoveRequest command is your workhorse.
Example:
Get-Mailbox -Database "OldDB" | New-MoveRequest -TargetDatabase "NewDB2019" -BatchName "PilotBatch".
Monitor with:
Get-MoveRequestStatistics.
3. Using the SysTools Exchange 2016 to Exchange 2019 Migration Tool:
- Step 1. Launch the tool on your system, and on the setup screen, choose Exchange Server as both the source and the destination.
- Step 2. On the setup screen, mark the check box next to the workloads you wish to transfer and apply a date filter. Then press Next.
- Step 3. In the source screen, you put the Exchange Details, i.e., admin ID, password, and IP addresses of both the server and the AD. Plus, you can include the subdomains for this Exchange 2016 to 2019 Migration. Validate and, when successful, press Next.
- Step 4. Likewise, do a similar admin + server credential validation for the destination, and once done, press Next.
- Step 5. The user mapping screen has three options: Fetch users directly, Import a premade CSV, or Download, edit a template, and upload it. Choose the one that is best for you.
- Step 6. Once the user list appears inside the tool, mark the check box next to the user names, prioritize a few critical accounts, validate, and begin migration.
Post-Migration Tasks and Verification
- Make updates to both internal and external DNS records ( including Autodiscover, OWA, and MX) so that they now point to Exchange 2019 instead of Exchange 2016.
- Lower TTL values beforehand for quicker propagation, this gives the admin the option to conduct a rollback if a need arises
- Test Outlook (desktop & mobile) and OWA connectivity and functionality.
- Ask users to send test emails internally and externally.
- Continuous performance monitoring should be done for a few weeks post-migration to see if the 2019 servers’ performance is on par.
- Now, point the SCP on Exchange 2019 servers to themselves so new clients automatically connect there.
- Revoke the Exchange Server 2016 in the same way we decommissioned Exchange Server 2013.
Which Method to Choose for Exchange 2016 to 2019 Migration
Although the native EAC and PowerShell methods are available and technically free, they carry inherent risks of migration failures, lost mailboxes, data corruption, and more. The error resolution itself is quite time-consuming, increasing the overall timeline of the integration significantly. That’s why it’s better to choose an automated solution with a built-in retry failure option and the following features.
- Simple GUI design that matches the configurability of PowerShell.
- Keeps record of all data items and generates post-migration reports for admins.
- Eliminates the risk of human error disrupting the migration.
- Can safely upgrade deprecated server editions to the currently active versions, like Exchange 2013 to 2016 or 2019 migration.
Conclusion
So now you know how an Exchange 2016 to 2019 migration is done. Here, we saw that there are, in fact, two different methods through which the upgrade can be done. One is a manual method, which is error-prone and slow. The tool, on the other hand, transforms the complex process into an easy step-by-step process. So, using it is in the best interest of any organization that wants its on-premises system ready for the SE edition.