In this article, we are going to migrate an Exchange environment from Microsoft Exchange 2010 to Microsoft Exchange 2016. We have added a new server to our domain to act as the 2016 server, none of the domain names, certificates or external access URLs will change.
The basic steps to the migration are:
- Exchange Server Sizing
- Meeting Exchange Server Requirements
- Installing Exchange Server
- Configure Exchange Server
- Setting up co-existence
- Migrating Mailboxes
Exchange Server Sizing
You already know roughly the performance requirements of your existing 2010 server - take these numbers, CPU, RAM, Disk space, increase them enough to cover any new mailboxes you might expect over the next year.
If you are currently having performance issues with your Exchange 2010 I would recommend using the role requirements calculator from Microsoft to work out what you should be having -
This is also your time to think about quotas, make sure you have the disk space and the disk space for backups of your total quotas. If you don’t consider reducing them. Now’s also a good time to think about your disk layout.
Consider separating the windows volume, exchange logs and the exchange database onto separate drives.
Meeting Exchange Server Requirements
Now that you have your new server with the correct resources you need to prepare it for Exchange 2016.
- Full Windows Server 2012 onwards, don’t use server core, yep 2008 R2 isn’t supported.
- At least .Net 4.5.2 (Just use the latest)
- Exchange 2010 needs to be updated to SP3 Update Rollup 11
- Atleast Outlook 2010 SP2 with KB2956191 and KB2965295
- AD Functional level 2008 or above
Once all of these are ready it’s time to install Exchange 2016.
Installing Exchange 2016
Download the latest version of Exchange 2016 available to you, the RTM version doesn’t actually work on Server 2016. We will mostly be using the command line and default settings to set things up, this just makes It easier for you to follow!
Change directory to the exchange download location and then
- Prepare the AD Schema
setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
- Update AD With the new Exchange objects
setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms
- Prepare the Domain (You have to do this for each domain that you have)
setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms
- Install Exchange on this server
setup.exe /Mode:Install /Roles:Mailbox /IAcceptExchangeServerLicenseTerms
- Reboot the server
Exchange should now be installed. Move onto to the next step to set everything up.
Configure Exchange Server
- Test that everything is OK by logging into to ECP, In a browser browse to https://servername/ECP
- Update the Service Connection Point in AD. Make sure that this points towards your intended (Likely existing) autodiscover url e.g.
autodiscover.domain.com/autodiscover/autodiscover.xml (Later on we will point this name at the new exchange server)
- Export your public ssl from the old Exchange server. To this
- Open Exchange 2010 Management console
- Go to Server configuration
- Click on the server
- Select the correct SSL Certificate
- Click Export Exchange Certificate.
- Save the PFX file in a location that is available to the new server, give the certificate a password.
- Import the public ssl onto the new server
- Login to the EAC
- Browse to Servers -> Certificates
- From the ellipses (…) select Import Exchange Certificate
- Put in the UNC path of the PFX file and the password.
- Click Next
- Click Finished
- Click on the Certificate, Select Edit
- Enable the Certificate for IIS (Autodiscover)
- Click Save
- Restart IIS to apply the certificate. You can verify it by running:
- Open the Exchange Management Shell and use the following script to set all of your Exchange 2016 URLS
$Server = “ServerName”
$HTTPS_FQDN = “mail.domain.com”
Get-OWAVirtualDirectory -Server $Server | Set-OWAVirtualDirectory -
InternalURL “https://$($HTTPS_FQDN)/owa” -ExternalURL
Get-ECPVirtualDirectory -Server $Server | Set-ECPVirtualDirectory -
InternalURL “https://$($HTTPS_FQDN)/ecp” -ExternalURL
Get-OABVirtualDirectory -Server $Server |
Get-ActiveSyncVirtualDirectory -Server $Server | Set-
Get-WebServicesVirtualDirectory -Server $Server | Set-
Get-MapiVirtualDirectory -Server $Server | Set-MapiVirtualDirectory -
InternalURL “https://$($HTTPS_FQDN)/mapi” -ExternalURL
- Review your Exchange Database settings, make sure you create your databases based on your disk configuration. I won’t walk you through this as this will be very speicifc to your organisation.
Setting up Co-Existence
Now we have out Exchange server setup it’s time to link to the new server to the old.
- Point all of your external DNS Records for email to the new Exchange Server, update any firewall rules. Mail will now flow into the new Server and then into your old one.
- Remove the ExternalURL Value from the old Exchange server.
- Point any internal email related Exchange Records to the new server
Migrate the Mailboxes
I would recommend that you migrate users in test batches first but the process to migrate users is simple.
- Login to the Exchange 2016 EAC
- From the Recipients Page, go to Migration
- Select Move to a Different Database
- Select any users from the list that you want to migrate.
- Click on Next
- Click Finish.
- You’ll now have to wait a short while the mailboxes migrate.
Once you are happy with your test run migrate the rest of the mailboxes. Users will get a prompt saying
"Your administrator has made a change to your mailbox, please close and re-open outlook"
And that’s it. Migration completed.
The Best Method for Exchange/Office 365 Migrations
Kernel Migrator for Exchange is an advanced solution for Exchange/Office 365 to Exchange/Office 365 migrations in all types of environments. Exchange Migration tool has all the features for smooth and hassle-free migration – Pre-Migration Analyzer, Load Sharing Agents, Alerts/Notifications, Report Console, Mapping, Smooth Co-existence, and many more.
The Pre-Migration feature will help you to deduct the time required to migrate your mailboxes and public folders. Load sharing feature will allow you to share the migration load with the network computers. With mapping, you can map your source mailboxes with the target mailboxes. Synchronization feature helps you in updating the source and target environments with the new changes. Alerts/Notifications will keep you informed of the migration progress, and the Report Console will keep you in command of the migration. Also, it has a very intuitive and easy to use interface. Simply, this is the best tool for Exchange/Office 365 migrations.