Migrating Exchange 2010 to 2013


Hello everyone,
In this How-To, I will illustrate how to Migrate & Update an existing Exchange 2010 environment to Exchange 2013. I have used Server 2012 as an O/S environment, but the version of O/S you use, doesn't matter.
Throughout this documentation we will perform steps and test them to ensure that everything was done properly and ensure that decommissioning goes smoothly.

As you know, Exchange has many different aspects at many different levels of complexity.
This How-To, will focus on upgrading Exchange 2010 to 2013 in a co-existence mode but only on the Mailbox side.
Hopefully down the line, I will be able to provide something else such as Public Folders migration.

So here are the Pre-requisites needed:
  • Functional Exchange 2010 environment (I have 2 CAS, 2 MBX and 1 Edge Servers)
    • Ensure you have a few test accounts and can send emails without issues.
  • Active Directory (Duh!)
  • Servers dedicated for Exchange 2013 environment. (I have 1 CAS and 1 MBX server)
To get started, you will to do the following:
  • Install Exchange 2013 CAS and Mailbox roles on the dedicated servers (Normal Installation).
    (You can't just install Exchange 2013 on the 2010 servers. It will give "Inconsistency errors")
  • Refer to this link on how to Install Exchange 2013 if you have any difficulties
  • Please note that when you install Exchange usualy on a clean install it tells you that you can't install any other Exchange 2010 servers. In this scenario, since you already have Exchange 2010 servers it tells you, you won't be able to install any Exchange 2007 servers in the future.I take it as a sign that it detected the Exchange 2010 information. so... YAY! :)
Now here is where things get interesting:

When you log into the address of the CAS 2013 ECP URL (https://cas2013/ecp), You will see the Exchange 2010 interface. This is a good sign. it's transferring the traffic to the Exchange 2010 CAS.
to access the Exchange 2013 ECP you need to enter the following URL: https://cas2013/ecp?ExchClientVer=15

Now we will test a client mailbox access on the Exchange 2010 MBX server through the Exchange 2013 CAS as well as a user with a mailbox on the Exchange 2013 MBX
I have 2 mailbox users. user1 (Exchange 2010) and user2 (Exchange 2013).

  • Enter the following URL to access the OWA of user1. https://cas2013/owa
  • The login screen will be the one of the CAS 2013 but the mailbox interface is that of the Exhange 2010 OWA.
  • Now, Try the same URL but log in with user2 instead.
    Voila! you have the Exchange 2013 OWA layout.
At this point it's safe to say, you officially have Exchange co-existence with version 2010 and 2013!
Next steps are to migrate and point everything to Exchange 2013 and then decommission the 2010 servers.

Integrate CAS 2013 into existing NLB:
  • Configure the CAS virtual directories to use the NLB FQDN
    • In the Exchange 2013 EAC, go to Servers --> Virtual Directories.
    • Select on the Wrench Icon to "Configure External Access Domain"
    • Also go to each virtual directory and put the NLB FQDN as your existing configuration
  • Add the CAS 2013 server to the existing NLB configuration.
  • Once the Server is added to the NLB configuration, stop the CAS Array 2010 servers on the NLB
 ** By putting these hosts as "Stopped" you're forcing the incoming traffic to use the CAS2013 server
  • Connect to the NLB FQDN (for example https://mail.domain.com/ecp)
At this point you should see the Exchange 2013 login screen. Feel free to run the tests again to ensure all the users/maiboxes are accessible like the pre-2013 installation/configuration.

Migrate mailboxes

Now that we have transferred traffic to the CAS 2013 server(s), let's migrate the mailboxes.
we'll do one mailbox as an example and then you can do it for the batch that you want.
please keep in mind, that although you can migrate A LOT of mailboxes at the same time, it's safer to migrate a through a few batches.

The account/mailbox we'll migrate is the "Test User" account.
Earlier when we did tests, you saw that the "Test User" account had the Exchange 2010 OWA layout. You will see after the migration, the Exchange 2013 OWA layout will appear.

This portion will be the test to validate that the migration has completed successfully.

I would recommend doing the normal user mailboxes in the migration first and do the Administrator account last. It's never a good idea to use the Administrator account in the first batch.

To migrate please do the following:
  • Log in to the EAC.
  • Navigate to Recipients --> Migration.
  • Click on the "+" and select "Move to a different Database".
  • On "Select a User to move", click on the "+" sign
  • When the pop up appears, select & add the Test User account and press "OK".
  • Press "Next".
  • Name the Batch job
  • Press "New"
    This will start the batch migration.

if you'd like you can also use PowerShell. The command that can get it done is:

Set-mailbox user1 -database "Mailbox Database 1919191919191"you will have to confirm 2 statements and the process will start.

Please note that even if the command ends in powershell, it doesn't always mean the job is done. it's still running in the background

Now that the test user has been moved, create another migration process. Repeat the same steps as above, only this time select all the database that are in Exchange 2010. This includes the system mailboxes. The Exchange 2010 Databases need to be completely empty.

  • Once the migration has been successfully completed, you can either check the EAC to see that all the Mailboxes are in the new Database or run the following Powershell commands:
    Get-MailboxDatabase -IncludePreExchange2013 will list all the databases. Even those for Exchange 2010 etc.
  • Run get-mailbox -Database "Mailbox Database 191919191919" to see if you have any other mailboxes that you might of forgotten to migrate.


Some more Testing

Now we have come to the final testing. in comparaison, it's a little bit more hardcore.
What we will do is shutdown the Exchange 2010 mailbox servers and see if everything is accessible.
If everything has been smooth, there shouldn't be anything to worry about.
So far we've tested the following:
  • The migrated mailbox loads on OWA with the Exchange 2013 layout once moved
  • Through EAC/Powershell we tested that no rogue mailboxes exist.
Let's turn off the machines and see if the test users mailboxes, EAC and powershell connectivity as well as sending emails still work:
  • Turn off Exchange 2010 Mailbox Servers (Either shutdown the machine or disable all NICs)
  • Once the mailbox servers are offline, log into OWA using a few mailboxes that used to be in the Exchange 2010 environment
  • Load powershell for Exchange 2013 and see if you can list the Exchange 2010 databases
    • PowerShell should load and if you type the command:
      Get-MailboxDatabase -IncludePreExchange2013 -Status,
      you will see that there is a warning in yellow. This is normal because the machines are unavailable. But it lists them and still tries to refer to them.
  • Log into EAC to ensure you can see all the mailboxes.
    (Please note, that even if EAC says that the version is version 14, don't worry. if you look at the database, it's on the Exchange 2013 DB and OWA works. so all is good)
  • If you've configured a connector to send external email, send a test email to ensure that it's still sending (After all, this is why we have Exchange isn't it?).
So far here is what we tested/validated:
  • OWA works
  • Powershell works
  • EAC works
  • And finally sending emails work.
Turn back on the 2 Mailbox servers and let's decommission them!
Decommissioning Exchange 2010.

Decommissioning CAS 2010.Let's start by uninstalling the CAS and Hub Transport servers (in my Case, these 2 roles are on the same machines)
Let's start by removing the CAS 2010 servers from the NLB then uninstalling Exchange 2010

  • Load up the NLB inwhich your servers are a part of and remove them. The CAS servers should still be stopped in the NLB
  • I have the Microsoft NLB. if you do too, Please do the following once the NLB is loaded.
    • Right click on each CAS Server and select "Delete Host"
  • For each CAS Server Navigate to the Control Panel and uninstall Exchange 2010 from the Server
  • When the Exchange 2010 installation wizard loads, clear all the checkboxes of all the rules (including the management tools) and press "Next".
  • Once finished, reboot each server to finalize the installation. Please note that it won't prompt you to reboot, but it's good practice to do that to ensure everything is clean.
You can now shut down the CAS machines for good!

Decommissioning Mailbox Servers 2010

Decommissioning the 2010 Mailbox servers is a bit more complicated than the CAS. We can only remove these roles once they're completely empty and unused. Here is what we need to do:
  • Remove copy

    • Through the EMC, Navigate to Organization Configuration --> Mailbox.
    • Click on the Database Management Tab.
    • At the bottom of the screen in the Database Copies tab, remove all the database copies
  • Remove members from DAG


    • On the top of the EMC, click on the Database Availability Group tab.
    • Right click the DAG name and choose "Manage Database Availability Membership".
    • Click on the red X to remove the mailbox servers listed in the window and click "Manage".
    • Then click "Finish".
  • Remove DAG

    • Now that there are no Database copies nor member servers, right click the DAG and remove
  • Remove databases


    • Now that all the redundancy configuration has been removed, we can erase the databases. Just right click your databases and click "Remove".
    • Please note that you will get a pop up message that you will have to erase the actual files manually, but if you don't need to keep them, don't even bother.
  • Remove/move OAB

    • If you'd like you can move the OAB of Exchange 2010. Exchange 2013 does have an OAB generator so if decide not to keep it, you can delete it.
    • Right-click the OAB and choose "Remove".
Please note that Since Exchange 2013 is installed, this OAB is no longer the one used by default.
  • On each Mailbox server, go to the Control panel and uninstall Exchange 2010

    • When the Exchange 2010 wizard loads, clear all the checkboxes and proceed with uninstalling Exchange 2010.
And that's all she wrote!
Let's recap really quick
  1. We installed Exchange 2013 on new dedicated servers
  2. We added the Exchange 2013 CAS server(s) into the existing NLB and disabled the 2010 CAS servers.
  3. All traffic flowed through the CAS 2013 servers even for Exchange 2010 mailboxes
  4. We migrated all accounts into the Exchange 2013 Mailbox databases
  5. We destroyed the DAGs by removing Database copies, and removing the member servers
  6. We deleted the OAB and the empty Mailbox databases
  7. We uninstalled Exchange 2010.
let's not forget that throughout this entire documentation we also tested.
Notice that in this How-To, we did have an Edge server that is still the 2010 version But that's OK. it doesn't need upgrading. it's an optional feature that I will try to cover in a future How-To.

On the off chance that you have issues with the Edge server, redo the subscription and you should be fine.
of course first you should test to ensure that everything is OK. In PowerShell you can run Test-Edgesubscription to ensure all is well. In my tests, everything went well and emails were transmitting properly. Hopefully this will be the case for you also.

I hope you find this documentation useful or at the very least interesting.
If you have any constructive criticism and feedback, I more than welcome it.

Thank you for your time,

Daniel Moscovici

No comments:

Post a Comment

Latest Post

Migrating File Server to Sharepoint Online

Hi Everyone, I ran across an interesting project and thought I'd share my experiences in this how to "Migrate an On-Premises file...