Konstantin Emelyanov - Fotolia

How to uninstall Exchange 2013 after a cutover migration

Don't throw a retirement party for that Exchange 2013 server and pull the plug prematurely without going through this checklist to avoid any issues.

It might feel like the Exchange Server migration is complete when the mail starts to flow into the new server, but a premature shutdown of the old system could bring things to a grinding halt.

After a cutover migration from Exchange 2013 to Exchange 2016 in a hybrid configuration, you should wait several weeks to make sure the setup works properly before you uninstall Exchange 2013. If the system folders do not get moved from Exchange 2013, then there will be problems with mail flow, connection to virtual directories and more severe issues with functionality.

All user mailboxes, public folders and archive mailboxes should reside in the new configuration, which could be on-premises Exchange 2016 or Exchange Online. Check the following items off the list before you decommission Exchange 2013.

1. Check the send connectors

Verify the status of the new servers by checking the send connectors, and then remove the old servers. Go to the Exchange admin center, select Mail Flow and then click Send Connectors.

Change the external connector to include the new Exchange servers, restart the transport service on the old servers and then pause the service. This forces any messages on the old servers over to the new ones and stops mail processing on the old servers.

2. Test email flow

Next, see if mail flows to an internal and external email address. Open Exchange Management Shell, and type the following command using your own email addresses and Simple Mail Transfer Protocol (SMTP) server name:

Send-MailMessage –From [email protected] –To [email protected] –Subject “Test Email” –Body “Test E-mail (body)” -SmtpServer smtp.domain.com

If the mail arrives in your inbox, then the test was a success.

3. Test the PowerShell connection

You might have some scripts that integrate with your remote PowerShell, so it's important to confirm connectivity. Type in the following PowerShell command:

Add-PSSnapin *.exch*

Then, type the following, but change the URL to align with your remote PowerShell URL:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.domain.com/PowerShell/ -Authentication Basic -Credential $UserCredential

Change the -ConnectionUri parameter to test each new server as well.

4. Adjust the Autodiscover settings

Change Autodiscover to point your new servers to your organization's Autodiscover URL. Check the Autodiscover settings with this PowerShell command:

Get-ClientAccessService | fl identity,*uri*

A message similar to the one below will appear showing the old server's settings and the new one's configuration.

Identity                       : OLDServerName
AutoDiscoverServiceInternalUri : https://autodiscover.domain.com/Autodiscover/Autodiscover.xml

Identity                       : NEWServerName
AutoDiscoverServiceInternalUri : https://newservername.corp.domain.com/Autodiscover/Autodiscover.xml

Next, change the new server's Autodiscover entry to match the old server entry by using Exchange Management Shell and typing in the following command but swapping the URI to match your domain:

Set-ClientAccessServer -Identity NEWServerName -AutoDiscoverServiceInternalUri https://autodiscover.domain.com/Autodiscover/Autodiscover.xml

Verify that change by typing the following command:

Get-ClientAccessServer | fl identity,*uri*

You might need to make Client Access Server changes on the virtual directories. To check, go to the Exchange admin center, click Servers and then select Virtual Directories. For each site in the virtual directory, check both the general settings and authentication settings against what is in place in the existing servers.

Verify the settings for all the following virtual directories:

  • Autodiscover (Default Web Site)
  • ECP (Default Web Site)
  • EWS (Default Web Site)
  • MAPI (Default Web Site)
  • Microsoft-Server-Active-Sync (Default Web Site)
  • OAB (Default Web Site)
  • PowerShell (Default Web Site)

Next, reboot the server, or recycle MSExchangeAutodiscoverAppPool via IIS. A server reboot requires brief downtime, while the IIS recycle does not.

5. Move the arbitration mailboxes to Exchange 2016

Exchange 2013 creates several system mailboxes during the setup process. You cannot uninstall Exchange 2013 if these mailboxes still exist. First, get a list of the arbitration mailboxes using the following command:

Get-Mailbox –Arbitration

To move the arbitration mailboxes, use this command:

Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase DBName

Verify the move to the new server database with the following command:

Get-Mailbox –Arbitration

6. Uninstall Exchange 2013

Decommission Exchange 2013 by uninstalling the old server's programs and features. This is the best way to confirm all the Exchange 2013 features are now on the Exchange 2016 system. After you reboot the Exchange 2013 server, then you can shut it down.

Dig Deeper on Microsoft messaging and collaboration

Cloud Computing
Enterprise Desktop
Virtual Desktop