Mission Impossible: In-Place Upgrading Microsoft Exchange Server 2007 from Windows Server 2003 to Windows Server 2008


As you may have read in our Exchange Server 2007 and Windows Server 2008 blog post, the RTM version of Exchange 2007 cannot be installed on Windows Server 2008, but Exchange 2007 Service Pack 1 (SP1) will be supported for installation on Windows Server 2008. Here’s the tricky part: Exchange 2007 SP1 can be installed on Windows Server 2008, but Windows Server 2008 cannot be installed on Exchange 2007 SP1. This means that all computers running Exchange 2007 SP1 must have Windows Server 2008 already installed before Exchange can be installed on the system. This also means that you cannot take an existing Exchange 2007 server (RTM or SP1) running on Windows Server 2003, and do an in-place upgrade of the operating system to Windows Server 2008.

Or can you?

I decided to give it a try myself (so you don’t have to – please don’t try this at home, or at work). I was completely undeterred by the many technical reasons why an in-place upgrade of the operating system cannot be performed on an Exchange server. For example:

  • There is the paradox of needing the Exchange pre-requisites for Windows 2008 before Exchange 2007 SP1 is installed. This includes Windows 2008 counterparts pre-requisites, such as RSAT-ADDS (the Active Directory Management tools in Windows Server 2008), Windows PowerShell (which ships in Windows Server 2008), and IIS (IIS 7.0 ships in Windows Server 2008, and it is significantly different from IIS 6.0, which ships in Windows Server 2003). If Exchange is already on the box (Windows 2003), you’re installing the Exchange pre-requisites for Windows 2008 after Exchange is already installed on Windows 2008 (because you have to upgrade the OS to Windows 2008 before you can install any of the Exchange pre-requisites).
  • The same is true for new Exchange pre-requisites for Windows 2008, such as ADLDS (Active Directory Lightweight Directory Services (AD LDS), which was previously known as Active Directory Application Mode (ADAM)) for Edge Transport servers, and Desktop-Experience (the Windows Server 2008 name for the Windows Media Player audio and video codecs) for the Unified Messaging server role.
  • For clustered mailbox servers, there is the pre-requisite of Failover-Clustering, which installs the Cluster service. In addition to the pre-requisite install paradox, Windows itself blocks failover clusters running different versions of operation systems. As a result of the significant changes introduced in Windows Server 2008 failover clusters (called server clusters in previous versions of Microsoft Windows), rolling upgrades of a failover cluster from Windows Server 2003 to Windows Server 2008 are not possible. See http://support.microsoft.com/kb/935197 for documentation on this.

Of course, these are blockers that directly affect Exchange. There may be additional technical barriers for 3rd party applications (such as those applications not being tested or supported on Windows Server 2008).

Because the cluster issue was a hard blocker, I used a standalone Mailbox server running Exchange 2007 SP1, and upgraded the operating system from Windows Server 2003 to Windows Server 2008. Except for one hard-block as noted below, the operating system upgraded with minimal intervention from me and clearly demonstrated to me that the Windows team has done a great job with their operating system upgrade process. Unfortunately, though, after the operating system upgrade completed, Exchange was broken beyond repair.

During the operating system upgrade, the only hard-block I encountered (and perhaps the only one that others will encounter, depending on what is installed on the Exchange server) was Windows PowerShell. You need to remove Windows PowerShell before you can perform an in-place upgrade of Windows 2003 to Windows 2008. The upgrade will not proceed if PowerShell is still installed. Removing PowerShell out from under the Exchange Management Tools requires a reinstall of Exchange, because once you do that the Management Tools are completely broken on the system. But I didn’t care that Exchange was broken at this point, and there was nothing stopping me from moving ahead. So I ran through the upgrade and Windows 2008 got installed.

That’s when things went really bad. When the system came back up, only one of the Exchange services started: the AD Topology service. Others did not start because a core dependency service for them, NtlmSsp, does not exist in Windows 2008. Not to be deterred, I went into the registry, removed the dependency listing for NtlmSsp, and rebooted the system. That got other services to start, namely the System Attendant, Search Indexer, and the Store. But all of the other services started crashing on startup (Mail Submission service, Replication service, Exchange Search service, and Service Host service).

Still, I had some services running, so I proceeded with installing the Windows 2008 pre-requisites on the box. After those were installed, Exchange was not in any better shape. Next, I right-clicked the ExchangeServer.MSI file in my install tree, and chose Repair. Setup ran through the repair process, but it ended up making things worse. Services that were starting no longer started, and the system didn’t provide any clues as to what to try to fix next. All I had were event log entries showing that the process for each failed service was crashing in Kernel32.dll. Rebooting did get my three original services to start again, but none of the rest started, basically rendering the box dead from an Exchange perspective.

So, it was game-over for my standalone server. Because of the hard-block for mixed-OS failover clusters, there’s no in-place operating system upgrade for clustered mailbox servers either. In other words, it’s not supported and it doesn’t work. You cannot take an existing Exchange 2007 server (RTM or SP1) running on Windows Server 2003, and do an in-place upgrade of the operating system to Windows Server 2008! Moreover, even if you do manage to get some or all of the Exchange services running, Microsoft Support Services cannot and does not support a server that is in this state, as the integrity of the deployment has been compromised beyond repair.

So how do you get Exchange 2007 SP1 on Windows Server 2008? There are three migration paths that you can use to do this:

  1. Build a new server or cluster by doing a fresh install of Windows 2008, and then Exchange 2007 SP1, and migrate the mailbox data using the move mailbox tasks.
  2. Build a new server or cluster by doing a fresh install of Windows 2008, and then Exchange 2007 SP1, and migrate the mailbox data using database portability and/or backup and restore.
  3. Preserve the data on an existing server, uninstall Exchange, uninstall PowerShell, uninstall any other in-place upgrade blockers, upgrade to Windows Server 2008 (or perform a fresh install of Windows Server 2008), install PowerShell and other pre-requisites, install Exchange 2007 SP1, use database portability or backup/restore, reconfigure the server, reinstall 3rd party applications, etc.

We’re currently working on documentation for each of the above migration paths, and we expect to have that content published around the time SP1 is released. And, we are also working on documentation that will help you recover as much data as possible if for some reason an in-place operating system upgrade of an Exchange server was done, which should not be done in the first place!

In the meantime, we encourage you to try out SP1 and Windows Server 2008 in your labs. Here’s some fresh content and other useful links to help you get started:

Scott Schnoll


Share this post :

Comments (13)
  1. Arne Lovius says:

    I hope that something better than database portability/backup and restore comes out for upgrading a CCR cluster from Windows Server 2003 to Windows Server 2008…

  2. Brian Hoyt says:

    This article just shows the pitfalls of Exchange Server and Windows Server being out of sync.  Small shops like me that wanted to wait for Win2008 before doing Ex2007 couldn’t do to the one year delay.  Now I have to basically do a forklift upgrade and rebuild the box from scratch.  I find that to be a poor solution.  If all these issues are known before the release of either Win2008 or Ex2007SP1 why can’t they be resolved.  Even having an automated uninstall of Ex (saving data), upgrade to Win2008 then reinstall of 2007SP1 and restore data would be an alternative.  The other way would be disable Ex2007 do upgrade to Win2008 and then reinstall Ex2007SP1, this is assuming the EX2007SP1 install is intelligent enough to know what has to be repaired on the new OS.

    I think this should have been communicated from day one, just like the fact that you couldn’t in place upgrade from Ex2003 to Ex2007.  If I had known this was 100% I probably would have waited until I could go through the combined pain of Win2008 and Ex2007 upgrades instead of doing them individually and getting the joy of the pain twice.

  3. Rob says:

    Brian,

    If you’re really a small shop, why even bother upgrading to win2k8?  As far as I know, Exchange doesn’t gain any features by running the latest greatest server OS.

    Save yourself the pain, run on win2k3.

  4. Scott says:

    Arne, you do have another option for migrating a clustered mailbox server (CMS) from Windows Server 2003 to Windows Server 2008.  It is option 1 mentioned above, where you install a new cluster, and then use our Move Mailbox tools to move the mailboxes from the old CMS to the new one. This has the benefit of less downtime per user, because each person is only offline while their mailbox is being moved. Whereas, with database portability, everyone is offline until the whole database is migrated. This also has the benefit of not having to touch desktop messaging profiles, as the original CMS will be online, it will redirect clients after their mailboxes have been moved, and it will cause their desktop profiles to be updated with the new CMS name automatically.

  5. I agree with Rob… after using WS08 in a virtual lab environment, I will not be upgrading any of our servers to it any time soon. It seems to be just as disruptive to management as Vista is on the desktop side.

  6. Loren says:

    Yet another bone-headed move by MS. Look folks, these decisions you are making about dumb-@ss EMS-only functionality, 64-bit only Exch2007, and OS/Exch incompatibilties are crippling to small shops that don’t have a dozen Exchange servers, and in many cases more than one server in total. Your arrogance and ego-centric decision making process for this sort of thing is driving away customers and alienating small-shop IT admins and consultants. Someone there needs to take a long look at the real-world impact of these decisions on the SMB market.

  7. Rob says:

    Actually I like win2k8 so far in my virtual machine, especially the server core abilities and the virtualization (still undecided on powershell in general).  I just don’t see any reason for a small shop to care about upgrading an existing working production Exch2k7 server’s OS.  If you don’t have the budget or the hardware to support the move, just keep using what’s already working.  Rule number 1, if it ain’t broke don’t fix it.

    As for the added complexity, hardware requirements/specifications, and scalability of the newest range of MS server products, they have to do something to get more exposure in the "super gigantor global bigger-than-most-2nd-world-countries enterprise" market, and building these types of products should give them more good answers for their pre-sales engineers when on a conference call with a sr. admin or a technically inclined "C" who knows what he really needs for his environment.

    Plus they can get away with it now since SBS2003 is an outstanding solution for Small Shops, and I’m sure by 2009 their "SBS2008" product will be in the same level of excellence.

    The only market stuck between a rock and a hard place seems to be those 75-200 user companies who struggle with the new hardware requirements for the new products (plus the obvious licensing costs), but I’m of the opinion that they should keep using the old products on the old hardware until hardware pricing drops a bit, and pick their MS products more carefully based on business needs instead of the mindless "we’re a MS shop" approach to all things IT.

  8. Renato Jr says:

    Reading these problems in this scenario, i think that Microsoft Windows Server 2008 Team dont talk closer with Microsoft Exchange Server 2007 Team befor planning upgrade process…

  9. user says:

    it would be better to wait till the issue is resolved

  10. Uzih says:

    Can we use SCR to migrate the information from Windows 2003 server to the Windows 2008 server ?

  11. Scott says:

    Hi Uzih,

    No you cannot because one of the requirements for SCR is that operating system for the SCR source and the SCR target must be the same. The documentation is in the process of being updated to reflect that.

  12. Matt says:

    What about just flattening your existing E2K7/W2K3 box.

    then install W2K8 and then running /recoverServer and then bringing back your databases?

  13. Exchange says:

    Matt,

    We have discussed this with our Setup team and have been told that using a /recover option to jump across OS versions is not a supported method. /Recover option can be used to ecover a server but it should not be used as a means to move between server OSes as we are not completely sure that everything will work properly.

Comments are closed.