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:
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.
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.
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: