How to migrate from Microsoft Exchange 2010 to Exchange 2016

Microsoft Exchange 2016 is exciting as it comes with a host of cool features such as cloud deployments, improved reliability, and a new architecture that is much more conducive for today’s business environment.

If you haven’t done it already, it’s probably time to consider migrating your mail server from Exchange 2010 to 2016 because it is more convenient and lays the foundation for future progress.

So, what’s new in Exchange 2016 that makes it so exciting for system administrators world over?

Let’s briefly look at some of the key changes in 2016 that were not available in the 2010 version. Also, if you don’t want to miss my future Exchange configuration guides and best practices articles, sign up for updates here!


Exchange 2010 had separate components such as Mailbox,  Hub Transport, Unified Messaging, and Client Access for performing separate roles in the server. In 2016, all of these components have been combined into a single component called Mailbox, and this component performs the combined role of other components.

Exchange Admin Center

Exchange Admin Center (EAC) has been greatly enhanced to help you connect from anywhere using a web browser. It acts as a single point of control for all operations and is optimized for on-premise, online, and hybrid Exchange deployments. Due to this enhanced EAC, Exchange Management Console (EMC) of 2010 has taken a back seat. Microsoft observed delayed updates in EMC, and this is why it decided to limit its scope in 2016.

Hybrid Configuration Wizard (HCW)

Exchange 2016 has a cloud-based application called Hybrid Configuration Wizard (HCW) that helps to connect with other Microsoft tools like Office 365 in real-time. Improved diagnostics and troubleshooting make it ideal for hybrid deployments.


MAPI over HTTP is the default protocol in Exchange 2016, as it is more reliable and stable than the RPC over HTTP protocol of Exchange 2010. Also, this protocol allows Outlook to pause a connection, change networks, and resume hibernation, things that were difficult to implement in Exchange 2010.

Certificate Management

In 2010, you had to install certificate for every server through EMC, while in 2016, you can install certificates across multiple servers at the same time through EAC. You can also see the expiry details in EAC.

Now that you know why Exchange 2016 is better, let’s see how to migrate from version 2010 to 2016.

Update the existing environment

If you unsure of the version you’re using, open the Exchange Management Shell and run this command:

Get-ExchangeServer : Format-List Name, Edition, AdminDisplayVersion

This should bring up the current version you’re using. Make sure it says Exchange 2010.

The first step is to update the existing environment to make the 2010 version suitable for upgrading to 2016.  To do that, install Exchange 2010 Service Pack 3 and Exchange 2010 SP3 Update Rollup 11. These are the minimum supported patch level updates for 2010, and the installation process is fairly self-explanatory.



The next step is to consider updating the Directory Service Requirement and Outlook Client. For Exchange 2016, the minimum Directory Service Requirement is AD Functional Level 2008, and for Outlook Client, it is Exchange 2016 Support Outlook 2010 and above on Windows and Mac Outlook 2011 and above on Mac. You should update clients to this minimum supported version before implementing Exchange 2016.

Prepare the System for Exchange Server 2016

Do you have the system requirements needed to support Exchange 2016? Let’s double check the below requirements again, as Exchange Server 2016 supports only the following:

  • Windows Server 2012 / 2012 R2
  • Minimum memory requirement for Mailbox server role is 8GB plus an additional minimum requirement of 4GB for edge transport
  • Paging file size should be set to physical RAM, and an additional 10MB to 32788MB, depending on the size of the RAM. If you’re using 32GB of RAM, then go for the maximum of 32788MB
  • Disk space of at least 30GB on the drive on which you plan to install Exchange. Also, an additional 500MB is needed for every Unified Messaging (UM) language pack that you want to install. Additionally, you need 200MB of available disk space on the system drive, and a hard disk of a minimum of 500MB of free space for message queue database
  • A screen resolution of 1024 X 768 pixels.
  • Disk partitions that are formatted on the NTFS file system
  • .NET framework and UCS API should be installed before installing Exchange 2016. You can download both from Microsoft website and install it in your system.

Make sure your system meets all these prerequisites before installing Exchange 2016.

Next, you have to prepare the schema update. This step is irreversible, so make sure you have a full backup of Active Directory before proceeding.

A good part about this migration is you don’t have to worry much about changing HTTPS names for OWA as both the versions support the same set of naming services and active sync directories.

Install Active Directory for Exchange 2016

Next, run the Exchange 2016 setup. Choose a specific directory to extract all the files of this setup. Once the extraction is complete, run the following commands, one after the other. Open the command prompt and go to the directory where you have extracted the files.

The first command is to prepare the schema, which is, setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms


Now your schema is prepared, so move on to the next command, which is, setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms. Once that’s done, prepare your domain with the command setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms. With this, we have completed the Active Directory installation for Exchange 2016.

Install Exchange 2016

Now that you have the environment set up, it’s time to do what you’ve come for, which is installing Exchange 2016. Fortunately, this is also the easiest step in the migration process as the configuration wizard takes care of most things for you!

Browse through the setup directory, and run the file called Setup.exe.


During the installation, you’ll be prompted to choose the server role selection. Choose “Mailbox role,” and the other options will automatically be deactivated because Mailbox and Edge Transport cannot coexist in the same machine.


Installation will complete within the next few minutes.


Once the installation is complete, click on the Finish button. This will load the Exchange Admin Center on the browser.


Exchange management console in 2010 is replaced with a web-based Exchange Admin Center in 2016. This is the place where you can have greater control over all operations.


Other Configurations

After installing Exchange 2016 successfully, update the Service Connection Point for AutoDiscover. To do this, use the Set-ClientAccess command from Exchange Management Shell.

Go to the Exchange Management Shell, and type this command:

Set-ClientAccessService -Identity E2016 -AutoDiscoverServiceInternalURI

Next, update the settings of Outlook Anywhere. To do this, go to EAC, and click on servers on the left hand side. This will open up the list of servers. Click the Edit icon and a pop-up will open. Choose the Outlook Anywhere option, and update the DNS lookup and IMAP4 settings with the name of your new server.


Once you’ve configured the settings, run IIS RESET. To do this, go to your command prompt and run the command iisreset. This will stop and restart IIS services.

The next step is to configure your Receive Connector to relay email applications. To configure this, go to the mail flow option in your EAC, click on a connector, and edit it.


Next up is your Mail Database installation. When you install 2016, a default database is created. You can rename this database and move it from C Drive to another drive. Open the EMC shell and run these commands to rename and move your database.

Get-MailboxDatabase -Server E2016 : Set-MailboxDatabase -Name DBExchange2016

Move-DatabasePath -Identity DB01 -EdbFilePath E:\Database\DB01\DBExchange2016.EDB. -LogFolderPath E:\Database\DBExchange2016_Log

Once that’s done, update the OWA directory. Exchange 2016 supports acting-as-a-proxy for 2010, so both the versions can coexist using the same URLs. Now, change the OWA and autodiscover URL to Exchange 2016, to ensure all URLs go through Exchange 2016. You can use the below script to do that.

$Server  = “E2010”
Get -OWAVirtualDirectory -Server $Server | Set -OWAVirtualDirectory -ExternalURL $null
Get -ECPVirtualDirectory -Server $Server | Set -ECPVirtualDirectory -ExternalURL $null
Get -OABVirtualDirectory -Server $Server | Set -OABVirtualDirectory -ExternalURL $null
Get -ActiveSyncVirtualDirectory -Server $Server | Set -ActiveSyncVirtualDirectory -ExternalURL $null
Get -WebServicesVirtualDirectory -Server $Server | Set -WebServicesVirtualDirectory -ExternalURL $null
Enable -OutlookAnywhere -Server $Server -ClientAuthenticationMethod Basic -SSLOffloading $False -ExternalHostName $HTTPS_FQDN

Lastly, update the DNS, so it points to autodiscover and OWA. To do that, open your Accu Directory Domain Controller Machine. Open the DNS Manager, and change the record to ensure that it points to the new server.

Whew! With this, you’re almost done with the migration.

Test your configuration

Finally, it’s time to test if your configurations work. It’s best to create a new user to login and test the account functionality. To create a new user, open EAC and click on Recipients. From here, add a new user and check if everything is working fine.

If all is good, migrate all users from the Exchange 2010 to the Exchange 2016 database.

And that’s a wrap!

In short, much has changed between Exchange 2010 and Exchange 2016, so it’s best you migrate to the latest version to make the most of the new functionalities. Migrating to 2016 is not so difficult when you follow the aforementioned steps.

Do the migration right away to enjoy the new functionalities of Exchange 2016, not to mention the reduced workload of mundane tasks. With all Exchange has to offer, you best prepare to upgrade to appreciate the benefits. (Remember, an upgrade is usually one-time only!)

About The Author

26 thoughts on “How to migrate from Microsoft Exchange 2010 to Exchange 2016”

  1. EMS commands should be corrected, as “-Server E2013” doesn’t fit. Post about “Migrate from Microsoft Exchange 2010 to Exchange 2016”.\

  2. I have done my first two 2010 to 2016 On prems projects recently and both are having the same problem. Outlook (I’m using Outlook 2013) will NOT make an Outlook profile to 2016 mailbox. I made all scps “autodiscover” which is in the SSL. Made all urls “OWA” which is also in the cert. OWA works great for the 2016 mailbox. Outlook will not make a profile, keeps popping for creds, never makes the profile or opens outlook. Two for Two like this. I have been working with Exchange for 20 years, but sort of leap frogged over 2013, as I have been doing a ton of 365. What am I missing? Outlook should see the SCP and make an outlook profile, even if I got a cert error and it made the profile it would be a move in the right direction. Any ideas?

    1. Mike, did you ever get this figured out? I’m getting ready to do first of two 2010 to 2016 on prems myself. Thank you in advance!

  3. For planning purposes, I’m hoping someone can give some guidance in how long project to migrate from 2010 to 2916 would take, particularly design component and doing – not actual migration of data.

  4. @ Mike as for the cred prompt, just type in the domain\username.
    I get that too and I can’t find any other solution yet.

    My environment is 2010 to 2016

    1. Did this article assist you with the move to 2016 from 2010? If so did you need to make any additional changes?

    2. @Nuks, Exchange Admin Center -> Servers -> Virtual Directories -> Authentication: Select “Use forms-based Authentication”, Select “Username only” and enter your local domain. BOOM.

  5. Hi All,

    I follow all the steps, and installation was successful. After restart i try to login into EAC but without success. I am use domain admin for installation and with same account i try to login. Exchange Management Shell working normaly.

    Please help!

  6. I am looking to install the Microsoft UCS API as mentioned in the pre-requisites. The only thing closest to this description on the Microsoft site that I can find is labeled: “Unified Communications Managed API 5.0 Runtime”. Is this the correct package?
    Thank you.

  7. The first instruction contains an invalid character:
    Cannot process argument transformation on parameter ‘Identity’. Cannot convert value “:” to type
    “Microsoft.Exchange.Configuration.Tasks.ServerIdParameter”. Error: “‘:’ is not a valid value for the identity.
    Parameter name: identity”
    + CategoryInfo : InvalidData: (:) [Get-ExchangeServer], ParameterBindin…mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-ExchangeServer
    + PSComputerName : server.domain.local

  8. I’m in the process of migrating from 2010 to 2016. After changing DNS to point to the new 2016 server… All my mobile devices are prompting for passwords. The users type in their current password and it just prompts again. They refuse to login. Has anyone else had this same problem and how can I fix it?

    1. @Kevin: it is because of different certificate. For some mobile phones you have to remove account and add email account again.

  9. is it possible to keep both servers active?

    , the old 2010 and the new 2016?

    per fare del load balancing?

  10. Zero detail on how to configure the receive connector. Instructions just say to edit it. Edit what? Where? What do I change?

  11. Obviously the recommended method would be to upgrade Exchange during off hours. However we are a small business (about 150 employees) and we run 3 shifts 7 days a week. If it possible to install 2016 and update schemas without hurting the 2010 environment?

  12. alex alexandre

    i am migrating from exch10 to 16 i have done everything created a new users i cant receive or send email with the new user account.

      1. We are planning to start to migrate from exchange 2010 to exchange 2016 and windows server 2008 R2 to Windows server 2016 would you please advice what the most important steps for this process in details.

Leave a Comment

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top