|Event 1024 MSiInstaller – Error code 1603
I had an interesting problem installing Exchange 2010 SP2 Update Rollup 4 (UR4) on servers that have never had issues installing updates before. When I tried to install SP2 UR4 on the Edge Transport or typical installation servers it would rollback the installation and log the following error in the application log:
Product: Microsoft Exchange Server – Update ‘Update Rollup 4 for Exchange Server 2010 Service Pack 2 (KB2706690) 14.2.318.2′ could not be installed. Error code 1603. Windows Installer can create logs to help troubleshoot issues with installing software packages.
Normally this issue us fixed by installing the Update Rollup from an elevated CMD prompt (see http://blog.c7solutions.com/2011/03/exchange-2010-update-rollups-and-error.html), but this time it still wasn’t working.
I enabled MSI Installer logging as per http://go.microsoft.com/fwlink/?LinkId=23127 and dived into the setup logs. I found the following error being logged in the ServiceControl.log:
System.Management.Automation.ParseException: At C:\Program Files\Microsoft\Exchange
cannot leave a finally block.
input, Hashtable errorResults, Boolean enumerate)
at System.Management.Automation.PipelineOps.InvokePipeline(Object input,
Boolean ignoreInput, CommandParameterInternal pipeElements,
CommandBaseAst pipeElementAsts, CommandRedirection commandRedirections,
I examined the ManagedScheduleTask.ps1 script which apparently disables the ‘Database One Copy Alert’ scheduled task, but could not determine what the error is. I also ran the script from EMS, which returned the same error. Nothing showed up on the Interwebs other than a few references to PowerShell 3.0, which is not installed on these servers.
I finally resolved it by renaming the ManageScheduledTask.ps1 script to ManageScheduledTask.old and creating a new empty ManageScheduledTask.ps1 script. The script must exist and return a non-error code when executed for the UR4 installer to work. I renamed the script back when the installer finished.
This may be an esoteric problem, but I wanted to document it in case anyone else has the same problem. If this does happen in your environment, please leave a comment below. Thanks.