Home » Exchange Server » Exchange Server 2010 to 2013 Migration – Removing Legacy Servers

Exchange Server 2010 to 2013 Migration – Removing Legacy Servers

This article is an excerpt from the Exchange Server 2010 to 2013 Migration Guide.

With all of the services and data migrated to Exchange Server 2013 we can begin the removal of the legacy Exchange servers from the organization.

Exchange servers must be correctly uninstalled from an organization to avoid future issues due to orphaned objects. It is not enough to simply shut down the server.

Aside from your own regular server decommissioning steps such as taking a final backup, removing from monitoring systems, disposing of hardware etc, the Exchange Server application itself needs to go through a few simple decommissioning steps. These will depend on the server roles that were installed, but can generally be broken down as follows.

Note: When you remove the last Exchange 2010 server from the organization any Exchange 2010 management tools (eg on admin workstations) will stop working (although the management shell may still connect to Exchange 2013 servers). This may seem obvious, but I have seen people be surprised by this. By the time you are removing the last Exchange 2010 server all of your administrators should be using the Exchange 2013 management tools.

Edge Transport Servers

To decommission an Exchange 2010 Edge Transport server verify that no more mail is flowing through the server. This is achieved by configuring transport and cutting over SMTP namespaces. You can use protocol logs and message tracking logs to verify this.

In a typical case you may still see some traffic hitting the server. This could be due to incoming SMTP connections still hitting the server, eg spammers hitting an open firewall port that still allows access to that server. Or it may be due to the occasional outbound email still routing over that Edge subscription. Review any evidence of ongoing email traffic and either address it or choose to ignore it and proceed with the decommissioning anyway.

Before an Edge Transport server can be uninstalled the Edge Subscription must be removed, which can be done from the Exchange Management Console.


And from the Exchange Management Shell on the Edge Transport server run Remove-EdgeSubscription.

Launch the uninstall from Programs and Features in the Control Panel. If the readiness check passes you can click Uninstall to complete the process.


Client Access Servers

Client Access servers can be removed when they are no longer serving any client requests. This is achieved by completing the cutover of the client access namespaces to Exchange Server 2013.

You can verify that no more traffic is hitting the Client Access server by reviewing the IIS logs on the server. Note that you will likely see continued hits in the logs from the Exchange 2013 servers themselves, or from any connections to the /PowerShell virtual directory by administrators.


If there is too much log data to analyse visually you can use Log Parser to determine which users (if any) are still making connections to the server. For example:

Just be aware that querying a wildcard like ‘C:inetpublogslogfilesw3svc1*.*’ will return results from any log file in that directory, which may be months or even years worth of log data. You can refine the search by removing older log files from the directory, or changing the query to only search file names of a smaller date range, eg ‘C:inetpublogslogfilesw3svc1u_ex1407*.*’.

If the server is a dedicated Client Access server then you can launch the uninstall from Programs and Features in Control Panel and uninstall it. If it is a multi-role server you may wish to wait until you’ve verified all roles are ready to be uninstalled before doing them all together.

Hub Transport Servers

Hub Transport servers can be removed when there is no more email traffic passing through them, and they are not the source Transport server for any Send Connectors. As with the Edge Transport role you can use protocol logs and message tracking logs to verify this.

Because internal traffic may still be traversing the server you may still see some hits, particularly larger organizations where multiple routes exist between internal sites. The presence of a relay connector on the server could also be an indication that it is still in use by production systems that require SMTP.

But generally speaking, if there are no mailboxes or public folders still in the site, and no DNS aliases still pointing at the site for internal SMTP usage, then you can proceed with the uninstallation.

As a precaution you may consider pausing or stopping the Microsoft Exchange Transport service on the server for a period of time to verify that the server removal will have no impact on production services.

If the server is a dedicated Hub Transport server then you can launch the uninstall from Programs and Features in Control Panel and uninstall it. If it is a multi-role server you may wish to wait until you’ve verified all roles are ready to be uninstalled before doing them all together.

Mailbox Servers

Mailbox servers an be uninstalled when they no longer host mailboxes or public folders, are not members of DAGs, and are not responsible for generating offline address books.

The legacy offline address books can be removed from the organization when there are no more Exchange 2010 mailbox users. Exchange 2013 mailbox users will be using the new OAB created by Exchange 2013 setup.


Public folder databases can be removed if the migration of public folders to Exchange 2013 is complete. You can remove the databases using PowerShell, for example:

Mailbox databases can be removed if the mailbox migration to Exchange 2013 has been complete. Again, you can use PowerShell to remove them.

For DAG members the approach is a little different. The process involves:

  1. Removing database copies from the server (unless it is the last DAG member hosting the single copy of the databases)
  2. Removing the server from DAG membership
  3. Removing the databases from the standalone server
  4. Uninstalling Exchange from the standalone server
  5. Removing the DAG object from the organization

For example, removing database copies from HO-EX2010-MB2, first move any active database copies to another DAG member.

Verify that the server only hosts passive database copies. You should see no “Mounted” status in this output.

Remove the database copies from the server.

If you are removing the second last DAG member you’ll first need to turn off DAC mode.

Remove the server from the DAG.

You can then proceed with the uninstall.


When all members have been removed from the DAG you can also remove the DAG object itself.

Wish all Exchange 2010 servers uninstalled the migration from Exchange 2010 to Exchange 2013 is complete.

For more information see the Exchange Server 2010 to 2013 Migration Guide.

Paul is a Microsoft MVP for Office Servers and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul is a co-author of Office 365 for IT Pros and several other books, and is also a Pluralsight author.
Category: Exchange Server


  1. Enterprise IT says:

    After uninstalling Exchange 2010, I’ve found that the Exchange 2010 Server and virtual directories still show up in EAC under Servers>Virtual Directories. Have you ran into this?



  2. Jo says:

    Paul, very much thanks for the information you are providing here. I have successfully completed my exchange 2013 migration and decommissioning of 2007. However, one thing baffles me is that all outlook clients, in the server address still shows the same temporary server and not the dns name. i.e. here is the existing server name f5894395-1313-4011-948f-519602bf8ebe@companydomain.com as suppose to exchange2013@companydomain.com

    Any help would be greatly appreciated.

  3. Jim D says:

    Hey there Paul,

    Excellent article. Question – I am in the migration phase, just about wrapped up. One thing I have noticed since the start of migrations, is all mailboxes still connect to the old server first, then back to the new.

    My exchange servers are at different locations, ran in co-existence, over a VPN tunnel. So if a migrated user at the new server site (site B) opens Outlook, it will make connections to the old server site (site A), first, then to site B where its actual mailbox sits.

    Since I am going over a tunnel, this makes for a slow Outlook experience for all migrated users. Further – if the tunnel goes down, no one can access email via Outlook.

    At what point in your guide/steps does Outlook finally realize to stop bouncing off the old server and only connect to the new where the mailboxes are?


    • Jim D says:

      When I say connect – I mean in the Outlook “Connection Status” screen. All rows show my proxy as the correct address… mail.domainname.com, but then in server name there are a handful of connections, including the very first made as Outlook opens, that still point to old server. My DNS isn’t doing this – so what is?


  4. kjstech says:

    Good article. We did this from 2007 to 2013 though. Came here from a google search. Our issue isn’t negatively affecting any end user or operation at all. Howerver I just want to get rid of the event log spam every 15 minutes.

    Our legacy 2007 exchange migration has been completed. It has been cleanly uninstalled and the server removed from the domain.

    For whatever reason in Exchange 2013 we are still getting these event message periodically.

    EVENT #









    MSExchange Front End HTTP Proxy






    3/12/2015 10:30:08 AM




    [Ews] Marking ClientAccess 2010 server mail.diamondcu.com (https://mail.domain.com) as unhealthy due to exception: System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse() at Microsoft.Exchange.HttpProxy.ProtocolPingStrategyBase.Ping(Uri url)

    We get 8 of these messages every so often, and each one is a slightly different tail end of the URL: /PowerShell, /owa/Calendar, /rpc/rpcproxy.dll, /owa, /ecp, /OAB, /Microsoft-Server-ActiveSync, /EWS.

    Some of those aren’t even available in Exchange 2007!

    I double checked in 2013 ECP and there are no other exchange servers found besides the 2013 one.

    Running Get-WebServicesVirtualDirectory only shows the proper 2013 exchange server. So no where should it be thinking the old server needs a health check.

    How can I clean up these periodic event log messages?

  5. Oliver says:

    Great series of articles Paul regarding migrating Exchange 2010 to Exchange 2013 – thanks!

    We are trying to decomission our EX2010 (old SBS 2011) after migrating all mailsboxes to the new EX2013, but unable to delete the old database using “Remove-MailboxDatabase ex2010-servername” – I get an error mentioning that the DB has at least 1 mailbox. Running “Get-Mailbox -Database ex2010-db” confirms that the database still have all the old mailboxes.

    I have tried “Move-ActiveMailboxDatabase -Server ex2010-servername” but I get an error that the server is in not in a database availability group. When I run “Get-MailboxDatabaseCopyStatus -Server ex2010-servername” it still shows a ‘mounted’ status.

    We would like to deinstall Exchange 2010 from the old SBS 2011 – but running into these problems. Any ideas?

    Many thanks, Oliver

  6. Tim says:

    Massive thank you Paul for an excellent series of articles. These and the rest of the background information on this site have been invaluable. Clear and concise unlike the Microsoft documentation.

    Just completed a 2010 – 2013 DAG migration. It didn’t go without a hitch, but these things never seem to go quite to plan, but often I’d find the answers in the comments below the article.

  7. Shah says:

    Hi Paul, First thanks for this great website. I have done two successful migrations with the help of this website and your books. Everything has been transferred to 2013 but below messages are still being logged in IIS on the old Exchange 2010 server.
    Below messages are only appearing for users connecting with Outlook 2007 V 12.0.6728 which is supported and working fine with Exchange 2013. Should I be worried about them or can go ahead and decommission the old server?
    All mailboxes, OAB, send connectors etc are functional on the new server. No message has been logged for send or receive connectors on the old server and mail flow is all through the new server.
    Internal DNS records have been set up to point to the new 2013 server and Outlook Proxy Setting has been set up to connect to the new server. HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 0 POST /Autodiscover/Autodiscover.xml – 443 TESTDOMAINpeter Microsoft+Office/12.0+(Windows+NT+6.1;+Microsoft+Office+Outlook+12.0.6728;+Pro) 302 0 64 15 POST /Autodiscover/Autodiscover.xml – 443 TESTDOMAINpeter Microsoft+Office/12.0+(Windows+NT+6.1;+Microsoft+Office+Outlook+12.0.6728;+Pro) 302 0 64 15 HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 0 HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 0 HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 0 HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 15 HEAD /rpc/rpcproxy.dll EXCHANGE2010.TESTDOMAIN.local:6001 443 TESTDOMAINpeter MSRPC 200 0 0 0

  8. SomoIT says:

    Hi Paul!
    Nice article.
    Just migrated all my 2010 mailboxes to 2013.

    One question: In my environment I’ve two public folder databases (each server of my 2 node DAG) but public folders are not used. I want to ensure I can avoid migrating the public folders to 2013 without breaking, free&busy data or any other feature it depends on…

    How could I ensure I have no need at all of maintaining the public folders?


  9. Fred Laidman says:

    Hi Paul,

    Very helpful article, I was hoping I could ask you a question regarding RpcClientAccessServer attributes. We migrated to 2013 and currently planning decommissioning 2010, I see that all 2013 databases are listing the 2010 CASARRAY as the RpcClientAccessServer, would you know if we need to do anything with this value given the fact that we will be decommissioning the 2010 environment soon? Thank you.

    • Vince K. says:

      The RpcClientAccessServer value will be removed when you run Remove-ClientAccessArray -Identity “NAME”
      Before uninstalling Exchange 2010 from all Exchange 2010 servers, remove the client access array with that cmdlet. The command is not available in 2013/2016.
      Not a big deal if you missed it since RpcClientAccessServer seems to be ignored in Exchange 2013/2016.
      I believe an unsupported way to fix this would be to remove the Client Access Array from the exchange organization using ADSIedit.msc and then I bet future databases you create won’t have the RpcClientAccessServer value set.

  10. Steve says:

    Hi- I’m finally at this phase of the project (Yay!) I’m not clear on the first step about removing the Edge Subscription from 2010. I actually didn’t subscribe the 2010 Server to Edge, it was using the 2010 Edge Transport role on the same box. But when I do Get-EdgeSubscription, my 2013 Edge Server shows up. And if I remove the Edge Subscription that is displayed in the 2010 ECP, it removes the subscription for the organization (2013 Edge)… Can you tell me what I’m missing (i.e. not understanding)? -Thanx

    • Steve says:

      Oh…. Also, all Exchange services have been stopped and disabled on the 2010 server for several weeks and all mail flow is working as expected in the 2013 environment.

  11. Mathew says:


    User migration from 2010 to 2013 is completed and I am about to decommission 2010 servers (2 x MBX servers are physical, 2 x CAS/HT and 2 x UM are Virtual).
    I have a requirement to be able to restore to PST for the next million years from 2010 and trying to work out my options:
    1. Is it possible to decommission all of 2010 and if required later just stand up 1 multi role 2010 server and use PowerShell to export to PST ?
    2. Can I keep one of our current 2010 virtual servers (CAS) install MBX role on it and create a Recovery DB and just have it offline until required.

    Is there any articles that you know of that can help me come up with an appropriate solution without 3rd party tools.

    Also wondering if we had to keep 2010 in play at all for this, would this cause issues if we move to 2016 next year for example, (any issues with having multiple (3+) versions of Exchange in play. ?? It doesn’t sound pretty, my thoughts are to avoid…

    Many thanks,

    • Some backup products can restore the DB and open it to extract data without requiring an Exchange server. So you might not need one at all.

      Another option is being ready to stand up a 2010 server in an isolated temporary environment that matches the production one in terms of AD forest, domain, Exchange org etc.

      Keeping an old server around on the off chance that a restore might be necessary is going to be a pain in the long run.

  12. Peter says:

    Thanks for the great article.
    After migrating to Ex13 and uninstalling CAS roles from all Ex10 servers I still have two CAS arrays left with no members in them. Is it safe to remove those?

  13. Peter says:

    I have decommissioned all Ex10 servers. It looks like “Remove-ClientAccessArray” command is not available in Ex13 PowerShell. Should I remove using ADSI Edit or just leave them? –thanks

  14. Dan says:


    Thank you very much for the information. I have successfully decommissioned 2010 servers with Mailbox, Client Access, Hub Transport server roles.

    Working on decommissioning 2007 Edge Transport Servers


Leave a Reply

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