Exchange 2003 to 2010 Migration with Tips and Tricks

Now I know there are articles out there, but I wanted to write one that had enough detail for anyone attempting this to follow, but with as few steps as possible.

Obviously make sure you Exchange 2003 server is working well before moving to 2010.

  1. Check Default SMTP Virtual Server to ensure you do not have any smarthosts in there on the Exchange 2003 server (Under First Administrative Group – Servers – Servername – Protocols – SMTP). This will prevent mailflow between 2003 and 2010 servers.
  2. Install Exchange 2010 on the new server (I’m assuming single server here – not recommended by Microsoft). Plenty of articles on how to do this.
  3. Disable Linkstate on Exchange 2003 and reboot (or restart Exchange 2003 services) (Command Prompt to x:ExchSvrBin and type Regsvr32 -u xlsasink.dll)
  4. Move/create a mailbox onto the 2010 server. Connect Outlook or log into webmail on that server to conduct some tests. Test the following: Email flow between 2003 and 2010 mailboxes (both directions) and email flow from 2003 -> external and 2010 -> external
  5. If there are issues with mailflow between 2003 and 2010 delete and recreate the connectors. The connectors are setup automatically when you installed Exchange 2010.
  6. Replicate Public Folders and other instructions as per article (do everything but decommision the Exchange 2003 server): http://support.microsoft.com/default.aspx?kbid=822931
    Do not change Replication Schedule or Replication Priority when replicating the Public Folders. You could end up bogging down the connectors with excess traffic and grinding the Exchange servers to a halt.
  7. Move mailboxes. You will have to do this with the Exchange 2010 ESM (not the 2003).
  8. For seamless transition with Outlook 2003 clients, you need to disable the requirement for encrypted connection.
    Run this in the Exchange Powershell on the 2010 server:
    Set-RpcClientAccess –Server <servername> –EncryptionRequired $False
    Otherwise in Outlook 2003, you will need to choose the Encrypt Connection between Outlook and Exchange server option. This is not hard, however in migration scenerios, it will prevent seamless handover between legacy Exchange 2003 servers and Exchange 2010 servers when you are moving mailboxes.
  9. I would leave the Exchange 2003 server running for 2 weeks before removing to ensure there is a automatic handoff to the new Exchange 2010 servers when users connect in with Outlook for the first time. Otherwise you will be running around reconfiguring Outlook to point to the new 2010 server
  10. Rehome Receipient Update Services. Use the Exchange 2003 System Manager to do so. Point it to the other Exchange Server, and the correct Domain Controller.
  11. Remove Exchange 2003 server as per article above from Microsoft.
  12. It’s not unusual that during a process/migration like this to have errors with the Offline Address Book to Global Address List. If you are getting such errors during Sending/Receiving in Outlook, you may have to rebuild/recreate the Offline Address Book after all the above steps have been completed. Symptoms of a faulty OAB/GAL are that newly created users do not appear. A temporary workaround is to get your users to type in their full email address for the time being.

Migrating WordPress Blog to new server using same domain name

The import/export feature of WordPress is excellent. The issue is when you choose to import the images/media files and it needs to download them from your old WordPress site. You won’t have an issue if your old and your new site use different domain names (ie. oldblog.fuelip.com and newblog.fuelip.com).

However, if you’re like me and you just want to move from blog.fuelip.com to another server whilst still maintaining blog.fuelip.com then it’s a little more work. You’ll probably find that images may not display properly because WordPress embeds the full path of the image when it’s being uploaded.

Please note that I am writing this blog which details a method I used to get my site across. There may be alternative ways/easier ways, but this worked for me and I thought I’d share it.

This is how I did it.

Prerequisites:

  • Windows PC
  • Ability to modify DNS records on the linux server or a DNS server

Setup your new blog and have your old blog up and running.

For arguements sake, let’s say:
blog.fuelip.com -> 192.168.1.100
new wordpress -> 192.168.1.200

Now use the export feature to export your current blog to an XML file. This does not export the images. Images are pulled from the old site automatically (it’s an option) when you use the Import Feature.

Here’s the tricky bit.
Edit the host file on your Windows PC so that blog.fuelip.com points to 192.168.1.200 (which is the new site). This means that on your PC only, blog.fuelip.com will point to the new/empty blog site.

On the new WordPress server, the DNS should point to a DNS server you have access to. This should still be pointing to the OLD WordPress server ie. blog.fuelip.com still points to 192.168.1.100

So let’s recap, we have got a Windows PC that thinks blog.fuelip.com points to 192.168.1.200 which is the NEW WordPress server. The actual server hosting the new WordPress application thinks blog.fuelip.com points to 192.168.1.100 which is the OLD WordPress server.

Not on the Windows PC, lets use the Import feature and import the XML file we saved earlier. Make sure you choose to download images/media. Also make sure the users are setup the way you want. Then hit Import.

You should find that the whole site is imported perfectly.

Why does this work?

  • The references for the images are based on the URL that is shown whilst you’re browsing the site on the Windows PC (host file makes DNS point to the new site)
  • The downloading of the images from the old site is handled behind the scenes by the actual WordPress server which is looking at a different site due to the DNS change.

Hope this is not too confusing…

Comments welcome!

VMware to Hyper-V (STOP 0×0000007b)

Been migrating from Vmware to Hyper-V after my server crash. I was pretty damn impressed with Hyper-V. It’s extremely fast and easy to manage. It’s a great hypervisor, with the only draw back being the base OS taking just under 1GB of RAM. But that’s what you pay for to get a highly versatile virtualisation OS that will install onto any hardware.

Just a tip for those migrating from VMware to Hyper-V. It’s highly documented on the net that VMware uses SCSI hard drives to boot off (as this is what VMware suggests). Hyper-V only boots off IDE (even Hyper-V in 2008 R2).

To not get a STOP 0x0000007b BSOD error, you have to add a IDE hard drive into the virtual machine whilst it’s still running in VMware. Make sure you choose IDE Channel 1:0 or 1:1 as this installs the Primary IDE Channel. You probably already have a Secondary IDE Channel from the CDROM drive.

Last but not least, for me anyway I had to go to Computer Management and initialise the newly created IDE Hard Drive in VMware. I found that if I didn’t do this I’d end up with a BSOD in Hyper-V after the migration.

To summarise the steps in full (it’s been done a million times on the net already – but this is for those who want a one stop shop)

  1.  Uninstall VMware tools
  2. Shutdown virtual machine whilst it’s still in VMware
  3. Install an IDE hard drive on channel 1:0 or 1:1
  4. Startup the virtual machine
  5. Initialise the disk in Computer Management
  6. Shutdown virtual machine
  7. Convert from vmdk to vhd using the tool of your choice (I had most success with VDMKtoVHD from http://vmtoolkit.com/)
  8. Mount the image into Hyper-V
  9. Using the Legacy Network Card will allow the network to work without drivers but restricts you to 10/100.
  10. Otherwise, use the standard Network Card but make sure you install the Integration Services (requires SP2 or higher if you’re running Windows 2003 Server)
  11. You’ll probably get Service Failed to Start errors, so you’ll have to check in Event Viewer and teeth through those issues. Nothing is perfect right? Just keep in mind that it may be caused by some of the VMware Services still installed on the system (check in Service.msc). For some reason, the VMware Tools uninstall does not get rid of them all.