Running an Exchange continuous-replication cluster can seem rather intimidating, but it’s really not that bad. When it comes to patches, upgrades, etc it really just boils down to working on the passive node, flipping roles, and then working on the (former) active node.

Upgrading an Exchange 2007 CCR to SP2 is no different, and is explained in great detail on this TelnetPort25 guide. It is a relatively simple process, but I guess I was groggy because I managed to skip a step and royally screw things up. My folly is documented here in case anyone else runs into a similar situation.

  1. Upgrade the passive node.
  2. Flip active/passive roles.
  3. Stop the cluster.
  4. Upgrade the virtual CMS.
  5. Upgrade the (former) active node.
  6. Start the cluster.

Step #4? Pretty darn important. But while #1 and #5 involve running SETUP.COM with a /m Mode switch, step #4 uses a special /UpgradeCMS switch.

If you overlook the subtle difference and miss that critical step, you will end up with 2 physical installations upgraded to SP2, but with the virtual node of the cluster still on the previous release. Exchange will not start because the versions are mismatched, and you cannot run the /UpgradeCMS command after the damage has been done.

At least not right away.

If you are unlucky enough to duplicate my stupidity, the fix is actually rather simple.

To fake the CMS out and allow it to be upgraded (even though both physical nodes are already up-to-date), you need to delete the registry key that marks the CMS as installed:


Once the key has been removed, the /UpgradeCMS command will be able to run as it originally should have been.

Lots of panic and self-flagellation, plus one extra step.