Table of Content
    EDB to PST Converter

    How Do I Migrate from Exchange 2013 to 2019?


    Table of Content

      Summary: In this guide, we have discussed the steps to migrate Exchange 2013 to Exchange 2019. You will find detailed instructions on setting up and configuring the new Exchange Server 2019 with steps to transfer components, such as virtual directories, certificates, mail flow, etc., from Exchange 2013 to Exchange 2019. Further, we will use an EDB to PST converter software to move mailboxes from Exchange 2013 to Exchange 2019 directly to reduce downtime and finish the Exchange migration with complete integrity and minimal efforts.

      The major things to see when migrating from Exchange Server 2013 to 2019 are the requirements, limitations, and co-existence. For this free guide, we will assume that only one Exchange Server is installed.

      Prerequisites for Exchange 2013 to 2019 Migration

      If you are migrating from Exchange 2013 to Exchange 2019, you need to ensure the following before getting started:

      • Update Exchange 2013 with the latest Cumulative Update 23 (CU23) released in July 2021 or later.
      • Active Directory Servers must be hosted on Windows 2012 R2 Standard or Datacenter and higher with Windows Server 2012 R2 or higher Active Directory Forest functionality.
      • If you still host Windows 2008 R2 domain controllers, you need to make sure that these are decommissioned before the installation and migration of Exchange 2013 to Exchange 2019.
      • Exchange 2019 supports Outlook 2013 and higher.

      Important Note: With Exchange 2019, you don’t have any Unified Messaging (UM). Thus, if you have Lync or Skype for Business Server, you will lose the ability to save voicemail messages in your mailboxes, and an alternative needs to be found, like CX-E or Azure Voicemail on Office 365.

      Steps to Migrate Exchange Server 2013 to 2019

      • Deploy Exchange 2019
        • Install Windows Server 2019
        • Install Exchange 2019 Prerequisites
          • .Net 4.8 Framework
          • Visual C++ Redistributable Package for Visual Studio 2012 and 2013
          • Remote Tool, Administration Pack, and Windows Features
      • Install Exchange Server 2019 using Setup Wizard
      • Setup Outlook Anywhere
      • Setup Service Connection Point
      • Import Certificates from Exchange 2013 to Exchange 2019
        • Export and import Certificates using PowerShell cmdlets
        • Export and import Certificates using Exchange Admin Center
      • Configure Exchange 2019 Virtual Directories
        • Configure Virtual Directories on Exchange 2019 using EAC
        • Configure Virtual Directories on Exchange 2019 using EMS
      • Update DNS Records
      • Move mailboxes from Exchange 2013 to Exchange Server 2019
        • Move Mailboxes using EAC
        • Move Mailboxes Using EMS
      • Decommission Exchange 2013 server
      • Conclusion

      Deploy Exchange Server 2019

      Install Windows Server 2019 on a VM or Physical Machine

      Start by installing Windows Server 2019 Standard or Datacenter on a Virtual or physical machine. Microsoft recommends installing Exchange 2019 on Windows Server 2019 Core, but the Desktop Experience feature is still supported. So, it’s your choice at this stage. You cannot install it on any other operating system.

      Install Windows Server 2019

      If you install Management Tools on another machine, you need to install them on a Windows 10 64-bit edition. After installing and setting up Windows Server 2019, install the OS updates and following software.

      Install Exchange 2019 Prerequisites

      • .NET Framework 4.7.2 or later (preferably 4.8)
      • Download the .NET 4.8 on your Windows Server 2019 machine and run the software package as an administrator.
      install net framwork 4.7.2
      • Accept the Terms and Conditions and then click ‘Install.’
      installing .net framework 4
      • After the installation, click ‘Finish.
      Installation completed
      • Then click ‘Restart Now.
      restart system
      • Install Visual C++ Redistributable Package for Visual Studio 2012 and 2013
      • Download Visual C++ Redistributable Package for Visual Studio 2012 and 2013 packages and install them as administrators.
      Visual C++ Redistributable Package
      • Install the Remote Tool Administration Pack and Windows features via PowerShell using the below command.
      Install-WindowsFeature NET-Framework-45-Features, RSAT-ADDS, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
      install windows features

      Install Exchange Server 2019 using Setup Wizard

      To install Exchange Server 2019, connect the Exchange Server 2019 media to the server machine and mount the ISO. Then open the Command Prompt window to navigate to the Setup.exe location using the cd (change directory) command.

      Then run the below command in Command Prompt window to prepare the Schema and the AD.

      Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
      Setup.exe /PrepareAD /OrganizationName:”Contoso” /IAcceptExchangeServerLicenseTerms

      Note : If you send diagnostic data to Microsft, use /IAcceptExchangeServerLicenseTerms_DiagnosticDataON, and if you do not need to send diagnostic data to Microsft, then use /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF.

      Here you have prepared the Active Directory to be Exchange 2019 friendly and now you can start the installation. Before you start, make sure that no new updates are available for the prerequisites you’ve installed.

      • Now launch the Setup.exe.
      laucnh exchange setup
      • Click ‘next’.
      follow exchange server installation wizard
      • Accept the license agreement and click ‘next.’
      accept license terms and conditions
      • Select ‘Recommended settings’ and click ‘next.
      select recommended settings
      • On the Server Role Selection page, make sure to tick Mailbox Role and Management Tools and check ‘Automatically install Windows Server roles and features required to install Exchange Server.’ Click ‘next’.
      choose mailbox role management tools
      • Choose the location of the installation of the Exchange Server and click ‘next’ (Make sure not to install Exchange on the system drive).
      choose exchange server install location
      • Enter the organization’s name and click ‘next.’
      Stellar
      • On the Malware protection setting, click No for now as this can be enabled in the future. You don’t need it for now.
      rediness check exchange server
      • After the Readiness screen, the installation will start. After finishing, make sure again to see if any updates are available.
      Exchange Server 2019 setup is installing

      Setup Outlook Anywhere

      • Login to Exchange Admin Center and click ‘servers.
      Exchange server 2019 admin center
      • Select the Exchange 2019 Server and clickthe edit icon.
      enable outlook anywhere
      • Click ‘Outlook Anywhere’ and update the internal and external FQDN (Fully Qualified Domain Name). Click ‘Save’.

      Setup the Service Connection Point (SCP)

      The next step is to set up the Service Connection Point (SCP), an attribute on Exchange Server stored in the AD schema that directs domain-joined client computers using Outlook to the server using auto-discover settings. By default, it will change to the new server. You need to stop the users from connecting to the new server for now due to issues with certificates as the default with the installation is a self-signed one. This can be changed by running the following PowerShell cmdlet:

      Set-ClientAccessService –Identity ExchangeServer2019 –AutoDiscoverServiceInternalUri https://mail.mydomainname.com/Autodiscover/Autodiscover.xml

      This will point the users to the current server.

      Import the Certificates into Exchange 2019

      Now you need to import the certificates into the new server. Again, you can use the PowerShell commands or Exchange Admin Center to import and export certificates from Exchange 2013 to Exchange 2019.

      Export and Import Certificates via EAC

      To export and import certificates from Exchange 2013 to 2019, follow these steps:

      • Open Exchange Admin Center and navigate to servers > certificate.
      • Select the certificate, click … (three dots), and choose ‘Export Exchange Certificate.
      export exchnage certificate
      • Enter the UNC path where the certificate will be exported and enter a password to protect the certificate. Remember this password or note it down somewhere safe. Click ‘ok.’
      enter unc path add password

      Copy the exported certificate from the UNC path on Exchange 2013 Server to an external storage device and transfer it to a UNC folder path on Exchange 2019. Then open the Exchange Admin Center in Exchange 2019 and follow these steps to import the certificate:

      • Go to servers > certificate. Click on three dots (…) and choose ‘Import Exchange Certificate.
      import exchange certificate
      • Enter the UNC path where the certificate is stored and then enter the password. Click ‘next.
      enter unc path to import certificate in exchange
      • Select the server where you want to apply the certificate and click ‘finish.’

      Now assign the POP, IMAP, IIS, and SMTP services to the imported certificates by following these steps:

      • Select the imported certificate and click the ‘Edit button.
      • Click ‘services’ and then check the POP, IMAP, IIS, and SMTP options.
      enable smtp pop imap iis services
      • Click ‘Save’.

      Export and Import Certificates via PowerShell Cmdlets

      First, you need to identify the certificates to move by using the below PowerShell cmdlet:

      Get-ExchangeCertificate | fl Thumbprint,NotAfter,Issuer,CertificateDomains,Services
      use ems to export exchange server certificate

      This will give you a list of certificates, along with the thumbprint and the services they are used for so you know the certificates and on what services to assign them to. On the Exchange 2013 Server, use the following PowerShell cmdlet to export the certificate for the Exchange 2019 Server.

      $CertPass = ConvertTo-SecureString "LetMeIn" -AsPlainText –Force
      Export-ExchangeCertificate -Thumbprint C87C1CBA43733D177B2679BC825808C7BECC659B -FileName C:\temp\Exchange2013Certificate.pfx -Password $CertPass | Out-Null

      Once done, keep a note of the password. In case you forget it, you can always redo the above and use a new password. Copy the file to the Exchange Server 2019 and run the below command in PowerShell:

      $CertPass = ConvertTo-SecureString "LetMeIn" -AsPlainText –Force
      Import-ExchangeCertificate -FileName C:\temp\Exchange2013Certificate.pfx -PrivateKeyExportable $true –
      Password $CertPass | Enable-ExchangeCertificate –Services POP,IMAP,IIS,SMTP –DoNotRequireSsl

      This will import the certificate and assign it to POP, IMAP, IIS, and SMTP services.

      Configure Virtual Directories

      The next step is to set the URLs for internal and external access using Outlook Anywhere. On Exchange Admin Center,

      • Go to servers > virtual directories.
      • From the Select type, choose OWA.
      • Double-click on OWA and go to authentication.
      • Select ‘Use forms-based authentication’ and choose Domain\user name. You may choose another option based on your preference.
      enable form based authentication
      • Click ‘Save’.

      Now set and update the internal and external URLs of virtual directories for Outlook Anywhere, OWA, ECP, Web Services, ActiveSync, Offline Address Book, and MAPI. Again, you can use the CLI interface or Exchange Admin Center to configure the virtual directories.  

      Set and Update Virtual Directories via EAC

      The steps are as follows:

      • In EAC, under server > virtual directories, double-click on OWA.
      • Paste or enter the FQDN in Internal URL and External URL section.
      enter internal external url
      • Repeat the steps and update the Internal URL and External URL fields for ecp, oab, activesync, webservices, mapi.

      Set and Update Virtual Directories via PowerShell Cmdlets

      On Exchange 2019, run the below command.

      Get-OutlookAnywhere -Server srvexc2019 | Set-OutlookAnywhere -InternalHostname ex02.mydomain.com -InternalClientAuthenticationMethod Ntlm -InternalClientsRequireSsl $true -ExternalHostname ex02.mydomain.com -ExternalClientAuthenticationMethod Basic -ExternalClientsRequireSsl $true -IISAuthenticationMethods Negotiate,NTLM,Basic
      Get-EcpVirtualDirectory -Server srvexc2019 | Set-EcpVirtualDirectory -InternalUrl https://ex02/mydomain.com/ecp -ExternalUrl https://ex02.mydomain.com/ecp
      Get-OwaVirtualDirectory -Server srvexc2019 | Set-OwaVirtualDirectory -InternalUrl https://ex01.mydomain.com/owa -ExternalUrl https://ex02.mydomain.com/owa
      Get-WebServicesVirtualDirectory -Server srvexc2019 | Set-WebServicesVirtualDirectory -InternalUrl https://ex02.mydomain.com/EWS/Exchange.asmx -ExternalUrl https://ex02.mydomain.com/EWS/Exchange.asmx
      Get-ActiveSyncVirtualDirectory -Server srvexc2019 | Set-ActiveSyncVirtualDirectory -InternalUrl https://ex02.mydomain.com/Microsoft-Server-ActiveSync -ExternalUrl https://ex02.mydomain.com/Microsoft-Server-ActiveSync
      Get-OabVirtualDirectory -Server srvexc2019 | Set-OabVirtualDirectory -InternalUrl https://ex01.mydomain.com/OAB -ExternalUrl https://ex02.mydomain.com/OAB
      Get-MapiVirtualDirectory -Server srvexc2019 | Set-MapiVirtualDirectory -InternalUrl https://ex02.mydomain.com/mapi -ExternalUrl https://ex02.mydomain.com/mapi

      Replace the URL in the command with your domain name (URL).

      To ensure these changes are in effect, recycle the Application Pool for MSExchangeAutodiscoverAppPool. To do this,

      • Open IIS, expand the server, and click on Application Pools.
      • Find the Application Pool and click on Recycle.
      recycle msexchangeautodiscoverapppool

      Update DNS Records

      Now that the URLs are changed, it’s time to point the DNS records to the new Exchange 2019 Server. For this, contact your network team to see that any ports open and forwarded with NAT to the current Exchange 2013 are replicated to also point to Exchange 2019.

      All open ports to Exchange 2013 should be opened for Exchange 2019. Any forwarding from the outside to the inside should be changed to point to the Exchange 2019 Server instead. It’s now the time to point the SCP record, you set before, to point to the Exchange 2019 rather than 2013.

      Now the users should be able to work by accessing Exchange 2019 as their Exchange Server while being redirected to the Exchange 2013 Server as the location of their mailbox. It’s time to go round and work on the multi-function devices to point to the new Exchange 2019 Server. From the server, set up the transport rules to allow the devices to pass through it.

      You need to make sure that the URL being used internally is also changed and propagated. Then connect one Outlook and check that it’s connecting to the right Exchange Server by opening the Outlook Connection status.

      Mailbox Move from Exchange 2013 to Exchange 2019

      The next step is to move the mailboxes from your current Exchange Server 2013 to Exchange Server 2019. This is done by creating a migration batch job. You can create the migration batch via Exchange Admin Center or Exchange Management Shell.

      Create Mailbox Move Migration Batch via EAC

      The steps are as follows:

      • Open the Exchange Admin Center and click on Recipients. Click on Migration, click the + sign, and select Move to a different database.
      move mailboxes from exchange server
      • Select the mailboxes you want to move and click Next.
      add users you want to move
      • Then you can select to move everything or select specific mailbox only or the archive mailbox only.
      • Select the Target database for mail and archive and click next. You can select multiple mailboxes at once in a job, depending on the volume and size.

      Create Mailbox Migration Batch via Exchange Management Shell

      The steps are as follows:

      • Open the Exchange Management Shell and execute the following PowerShell command:
      Get-Mailbox -Database MBX-DB-2013 | New-MoveRequest -TargetDatabase DB19 -BatchName “DB13toDB19”
      • Also, move the Arbitration mailboxes to complete the mailbox move.
      Get-Mailbox -server ExchangeServer2013 -Arbitration |New-MoveRequest
      • You can check the progress using the following command:
      Get-MoveRequest | Get-MoveRequestStatistics

      The process is slow and requires you to export and import the mailboxes manually.

      For faster mailbox move, download and install Stellar Converter for EDB. With this EDB to PST converter software, you can scan and migrate mailboxes from online or offline Exchange databases to PST. In addition, you may also directly export the mailboxes from your Exchange 2013 offline database (EDB) directly to Exchange 2019 or Office 365.

      Unlike EMS or EAC, the software does not impact the server resources or performance and moves the mailboxes from one Exchange Server to another at up to 4x speed. You can download it for free to evaluate yourself.

      free download

      Decommission Exchange Server 2013

      Proper decommissioning of the Exchange Server is critical. Login to EAC and follow these steps:

      • Go to mail flow > send connector.
      remove mailboxes database
      • Double-click on send connector name and go to scoping.
      remove smtp connectors
      • Remove the server’s name. 

      Once all mailboxes are moved, you can go ahead and remove the mailboxes from the Exchange Server 2013 using EAC or EMS command (as given below).

      Get-MailboxDatabase –Server ExchangeServer2013 | Remove-MailboxDatabase

      Finally, uninstall Exchange 2013 from the current server from the Control Panel. Then shut down the Exchange 2013 Server.

      This completes the decommissioning of the Exchange Server. At this stage, your Exchange Server migration is complete.

      Conclusion

      This is a comprehensive guide on how to migrate Exchange 2013 to Exchange 2019. From deploying Exchange Server 2019 to decommissioning Exchange 2013, this guide covers every step in detail to help IT and Exchange administrators migrate Exchange 2013 to 2019 without any hiccups.

      However, if you face any issue, experience errors, or need help in migrating Exchange 2013 to 2019, you can reach us via the comments section below.

      Was this article helpful?

      No NO

      About The Author

      Eric Simson linkdin

      Eric Simson is an Email Platform Consultant and is associated with Stellar Data Recovery from last 6 years. He writes about the latest technology tips and provides custom solutions related to MS Outlook, MS Exchange Server, Office 365, and many other Email Clients & Servers.

      47 comments

      1. Curious about migrating a 2013 Exchange server to 2019 that is already in a hybrid setup. At what point would you want to run the hybrid wizard on the 2019 box?… Maybe after DNS updates and Firewall / NAT changes? Do the connectors for sending migrate or get setup by the wizard again?

        1. When you have made the DNS updates and Firewall/NAT changes then you can run the hybrid wizard. The Hybrid Configuration Wizard will help set up or migrate the connectors needed for sending and receiving emails.

      2. I am going through your guide and have a couple of questions. For virtual directories I noticed you are using ex01 and ex02. I assume you have split dns and already have addresses or will have addresses assigned for these machines and that ex01 is he old server and ex02 is the new server. Is the correct? Then after the mailbox migration step and you are ready to decommision the old server (ex01?) you would revisit the virtual directories and set all to ex02?

        1. Yes, your assumption is correct. If you’re using split DNS, you should have or will assign addresses for both servers to ensure smooth operations during the migration.
          After migrating all mailboxes to the new server (EX02), and once you’re ready to decommission the old server (EX01), you would indeed need to revisit the virtual directories to update it and verify that it points to EX02, ensuring that all services are correctly routed through the new server.

      3. Thank you for doing this guide. I have moved all my mailboxes over to my 2019 Exchange server. Email works fine both Exchange servers running. If I disconnect the old 2013 Exchange network wire. Try to connect through the new 2019 Exchange with Outlook 2021 LTC program it asks for logon credentials over and over? Not sure if you have ran into this? I’m just using self signed certificate. I connect the old Exchange 2013 back up and the login prompts go away. I want to make sure it can run on its own before I decommission the old Exchange.

        1. So, there could be many things that could be wrong
          • He would need to confirm that the all the services have been moved to the new Exchange Server and the self-signed certificate is working fine and attached to the certificates.
          • Internal DNSs should be updated to point the mail.domain.com or any other suffix to the new server.
          • As from the looks of it, the DNS seems to be pointing to the old server

      4. I am getting an error from all of my internal Outlook clients when they try and connect. It says:

        There is a problem with the proxy server’s security certificate. The name on the security certificate is invalid or does not match the name of the target site new-exchang.xxx.local. Outlook is unable to connect to the proxy server> (error code 10)

        When I close that pop up, it says I am connected to Exchange and it all looks alright.

        When I run the TestConnectivity.microsoft.com website it fails.

        On the Virtual Directories do I make the Internal and External paths the same or should I keep the internal as… internal (.local)

        1. There seems to be an issue with the certificate, which should be regenerated using the self-signed certificate. Thou as best practices, one shouldn’t use self-signed certificates on a production server.
          Without inspection of the Exchange Server, it’s very difficult to exactly know what is wrong.

      5. Hi, I am in the process of upgrading my Exchange server 2013 to a new server with Exchange 2019
        I have the server built with Windows server 2022 & have done the pre-reqs on that server.
        how far or at what step can I go setting up the new server before we have to we can use the 2013 server.
        I am trying to have as less down time as possible,

        1. You can do it without downtime. However, it takes solid planning, good knowledge of Exchange server, and checking twice that you are not missing anything.

      6. Great doc!
        Eric, Can I use this doc for my hybrid setup?
        All my mailboxes are in Office365 and we only use Exchange on-prem for user mailbox creation and for internal apps mail relay.

          1. I sort of think Dolinhas meant that he has a Hybrid setup with 2013 and he wants to migrate to 2019 using your instructions. I’m currently doing the same thing.
            I think at some point you have to run the hybrid wizard again on the 2019 server after moving things. I’d also confirm the connectors are setup correctly to use that server.

          2. Once you have completed Migration to Exchange 2019, you must re-run the HCW. At that point, you can select which servers are included in the configuration and also need to create the send connectors.
            It would help if you can lookout for any other custom send connectors you currently have on your Exchange 2013 mailboxes.
            Also, check Testing a New Exchange Hybrid Configuration with Office 365 for more insight – https://www.stellarinfo.com/article/testing-new-exchange-hybrid-configuration-office365.php

      7. Mate… you are stellar!!!!
        I am looking for a guide to upgrade my on-prem 2013 servers to 2019.
        I am on hybrid with all mailboxes in the cloud.
        Only use the on-prem boxes to create mailboxes in the cloud and for internal apps to relay email.

        Would this guide be good for my project?

        1. As per Microsoft, you need Exchange 2013 Cumulative Update 21 (CU21). However, when our expert wrote this blog, Exchange 2013 Cumulative Update 23, was released. It’s always a good practice when you have an updated Exchange server.

      8. Thank you the great guide which actually works. The only additional info may be required for migration of Public Folders. Move all Exchange 2013 public folder mailboxes at once:
        Get-ExchangeServer | Where {($_.AdminDisplayVersion -Like “Version 15.0*”) -And ($_.ServerRole -Like “*Mailbox*”)} | Get-Mailbox -PublicFolder | New-MoveRequest -TargetDatabase Ex2019MbxDatabase

      Leave a comment

      Your email address will not be published. Required fields are marked *

      Image Captcha
      Refresh Image Captcha

      Enter Captcha Here :

      Related Posts

      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