Migrate from Exchange 2007 to Exchange 2010

Scenario

You’ve just installed Exchange 2010 and now you want to migrate from Exchange 2007 to Exchange 2010.

Here’s the steps I took.

Solution

  1. Open the Exchange Management Console (EMC) on the new Exchange 2010 server.
  2. Navigate to Organization Configuration > Hub Transport > Send Connectors tab.
  3. Add the new Exchange 2010 server to the relevant Send Connectors:

  4. Check all Receive Connectors have the correct settings:
  5. Find the user with the smallest mailbox by running this command in the Exchange Management Shell (EMS) on the old Exchange 2007 server:
    Get-MailboxDatabase * | Get-MailboxStatistics | Sort-Object TotalItemSize –Descending | ft displayname, totalitemsize, itemcount
  6.  You cannot move mailboxes from 2007 to 2010 from the Exchange 2007 server, so from the 2010 EMC, right-click on the smallest mailbox and select New Local Move Request…:
  7. Select the Mailbox Database on the new Exchange 2010 server, click Next:
  8. Select the Move Settings then click Next:
  9.  Confirm details, then click New:
  10. Whilst the mailbox is being moved, checkout the advantages of the new move method. It’s impressive! I tested various scenarios, and can confirm the moves work whilst users are working online with Outlook open. If they are in Outlook, they will get this message eventually:
  11. Once complete, click Finish:
  12. Open a browser and login to Outlook Web App on the Exchange 2010 server (https:///owa):
  13. Click OK on the next screen:
  14.  Send a test email to an internal and external recipient to test the Send Connector we modified earlier.
  15. Reply back to the test emails to confirm routing between Exchange 2007 and 2010.
  16. Read more info on upgrading from Exchange 2007 Transport here: http://technet.microsoft.com/en-us/library/dd346708.aspx
  17. If all test emails come through fine, you can now move the rest of the mailboxes. No need to wait until out of hours with the new moving method. However, you do need to consider your mobile users. If they use Outlook Web Access (now called Outlook Web App) – or if they use iPhone/Androids etc – you will need to update your DNS records to point to the new Exchange 2010 server. You will also need to update your NAT translations. For a Cisco router, the following removes the NAT translations for ports 25 (SMTP), 80 (HTTP), 143 (IMAP) and 443 (HTTPS):
    no ip nat inside source static tcp 25 25 route-map RMAP_DENY_VPN_TRAFFIC extendable
    no ip nat inside source static tcp  80  80 route-map RMAP_DENY_VPN_TRAFFIC extendable
    no ip nat inside source static tcp  143  143 route-map RMAP_DENY_VPN_TRAFFIC extendable
    no ip nat inside source static tcp  443  443 route-map RMAP_DENY_VPN_TRAFFIC extendable
  18. If there are open sessions, you may get the following error:
    %: Error: static entry still in use, cannot remove
  19. If so, use the following command to clear:
    do clear ip nat translation *
    source: http://www.phirebird.net/2009/07/cant-remove-ip-nat-entries-on-cisco-router-static-entry-in-use-cannot-remove/
  20. Once the old NAT translations have been removed, add your new ones:
    ip nat inside source static tcp  25  25 route-map RMAP_DENY_VPN_TRAFFIC extendable
    ip nat inside source static tcp  80  80 route-map RMAP_DENY_VPN_TRAFFIC extendable
    ip nat inside source static tcp  143  143 route-map RMAP_DENY_VPN_TRAFFIC extendable
    ip nat inside source static tcp  443  443 route-map RMAP_DENY_VPN_TRAFFIC extendable
  21. Don’t forget to save the router config once you know everything works:
    copy running-config startup-config (or wr if you’re lazy like me)
  22. Now test external and internal emails once more, on client PCs, mobiles and via Outlook Web App (OWA).
  23. To update the Offline Address Book (OAB), navigate to Organization Configuration > Mailbox > Offline Address Book tab, right-click your OAB and select Move…:
  24. Browse to the new Exchange 2010 server, then click Move:
  25. Click Finish once completed:
  26. Lastly we’re going to replicate the Public Folders to a new database. Navigate to Organization Configuration > Mailbox > Database Management tab.
  27. Click New Public Folder Database in the Actions Menu.
  28. Enter a DB name, select the new Exchange 2010 server, then click Next:
  29. Select your paths, then click Next:
  30. Click New to create the Public Folder DB:
  31. Once created, update the Mailbox Database properties to use the new Public Folder Database:
     
  32. We could move the Public Folders by using the Toolbox > Public Folder Management Console, but it’s a long process if you have too many folders.
    My preference is to use the following PowerShell (PS) cmdlet found by default, at <Exchange Installation Path>\v14\ Server\Scripts. Open the EMS and run these commands:
    cd “C:\Program Files\Microsoft\Exchange Server\V14\Scripts”
    .\MoveAllReplicas.ps1 -Server Server01 -NewServer Server02
    Source: http://technet.microsoft.com/en-us/library/aa997966.aspx and http://technet.microsoft.com/en-us/library/bb331970.aspx
  33. You can list the Public Folder Replicas by running:
    Get-PublicFolder -Recurse | Format-List Name,Replicas
  34. Read more on understanding Public Folders here: http://technet.microsoft.com/en-us/library/bb397221(EXCHG.140).aspx
  35. Once the Public Folders have replicated, you can work towards uninstalling Exchange 2007 from the old server.
  36. Remove every entry for the old Exchange 2007 server from Public Folder replicas, Send Connectors etc.
  37. Lastly, uninstall Exchange 2007.
  38. If you get this error during uninstallation:
    Object is read only because it was created by a future version of Exchange: 0.10 (14.0.100.0). Current supported version is 0.1 (8.0.535.0).

    Run the following command from the Exchange 2010 EMS:
    Remove-PublicFolderDatabase -Identity “[Exchange2007ServerName]\[StorageGroupName]\[PublicFolderDBName]”

References