Interesting Exchange 2010 SP1 Install Error

Over the weekend, I decided to upgrade my Exchange 2007 environment to Exchange 2010.  The upgrade itself went smoothly, but I ran across an error when when trying to install Service Pack 1 and Update Rollup 2.

After you extract the Service Pack 1 files to your hard drive, there is an updates folder that allows you to add in Microsoft Installer patches, and the update rollup comes as an MSP file.  So I placed the update rollup into the updates folder so it would be installed with the Service Pack.  That led to an error where Setup exited with an error halfway through.

The error from the error log file was:
[02/05/2011 22:47:12.0567] [1] Installing MSI package ‘C:\Users\admin\Desktop\SP1\exchangeserver.msi’.
[02/05/2011 22:47:12.0583] [1] Patch file ‘C:\Users\admin\Desktop\SP1\Updates\Exchange2010-KB2425179-x64-en.msp’ was found in the patch directory.
[02/05/2011 22:47:12.0724] [1] Found a valid order for the available patches.
[02/05/2011 22:47:12.0724] [1] Patch ‘C:\Users\admin\Desktop\SP1\Updates\Exchange2010-KB2425179-x64-en.msp’ has order ‘0’. The status code returned was ‘0’.
[02/05/2011 22:47:12.0724] [1] Patch ‘C:\Users\admin\Desktop\SP1\Updates\Exchange2010-KB2425179-x64-en.msp’ is valid for the current .msi package. The patch order is ‘0’.
[02/05/2011 22:47:12.0724] [1] The patch attribute will be set to ‘C:\Users\admin\Desktop\SP1\Updates\Exchange2010-KB2425179-x64-en.msp;’ for the .msi package.
[02/05/2011 22:47:12.0740] [1] Installing a new product. Package: C:\Users\admin\Desktop\SP1\exchangeserver.msi. Property values: PATCH=”C:\Users\admin\Desktop\SP1\Updates\Exchange2010-KB2425179-x64-en.msp;” DISABLEERRORREPORTING=1 PRODUCTLANGUAGELCID=1033 DEFAULTLANGUAGENAME=ENU DEFAULTLANGUAGELCID=1033 INSTALLCOMMENT=”Installed language for this product: English (United States)” REBOOT=ReallySuppress TARGETDIR=”C:\Program Files\Microsoft\Exchange Server\V14″ ADDLOCAL=Bridgehead,ClientAccess,Mailbox,AdminTools,AdminToolsNonGateway
[02/05/2011 22:48:34.0354] [1] [ERROR] Unexpected Error
[02/05/2011 22:48:34.0354] [1] [ERROR] Installing product C:\Users\admin\Desktop\SP1\exchangeserver.msi failed. Fatal error during installation. Error code is 1603.
[02/05/2011 22:48:34.0354] [1] [ERROR] Fatal error during installation
[02/05/2011 22:48:34.0479] [1] Ending processing install-msipackage
[02/05/2011 22:49:45.0389] [0] End of Setup
This left my Exchange setup in an unusable state.  Not only were all the Exchange services disabled, but this error occurred after the Service Pack 1 installer removed all the Exchange 2010 binaries from my system.
Rebooting the server and trying to reinstall Service Pack 1 forced me to try out the RecoverServer command option that is included with the Exchange 2010 installer (it works very well).  Googling for the error turns up a Microsoft Support KB that applies to cases where the Powershell Execution policy is set via Group Policy.  That didn’t apply to my system as I don’t use Group Policy for that.
I placed my Powershell Execution Policy settings into bypass and tried again, with the same results.  Unlike my previous attempt, though, I didn’t reboot my server.  At this point, I decided that I really didn’t need Update Rollup 2.  I just wanted to install it to be at the latest patch level, so I removed it from the updates folder and reran the Service Pack 1 installer.
I thought the installer would fail, and I would have to do a Server Recovery again.  But it didn’t, and the Service Pack installed successfully, even though it had previously removed all my Exchange binary files.
Interesting things learned:
1.  Do Not Try to Slipstream Update Rollups Into A Service Pack Install
2.  Exchange 2010 Service Pack installers do not have a rollback feature that will return the server to a state it was in before installation
3.  If the Service Pack install fails after it removes the Exchange binaries, do not reboot your system.  Correct the error that is causing the installer to error out and restart the installation.  It will start over from the beginning and complete the install.