Server 2008R2, Exchange 2010 SP3, ROLLUP 27 installed, 2x DAG Mailbox Server (Netapp Snap Manager for Exchange 7.2.1), CAS-Servers all went fine to Upgrade to RU30
This KB is all about a built in Exchange 2010 Powershell Script from Microsoft where they complain or wonder about Powershell from Microsoft. A finally statement has following comment:
"Curious PS behavior: It appears that 'return' trumps 'throw', so don't return..."
What we try to do:
We install RU28/29 or 30 on Exchange 2010 SP3 with some "World famous" Netapp Software for Exchange Backup SnapManager or some Netapp Partner tool.
Because it's "Freaky" the Netapp people install Microsoft Management Framework 3.0 or 4.0. So they have a little plug-in somewhere or can freak around with Power shell to show off their skills to other people. Because their football field size compatibility matrix shows they have to upgrade they update.
So the real problem is the Management Framework 3.0 or 4.0 installed by some Netapp Software or a partner plugin from a Netapp company.
This is what happens:
Regular approved setup, elevated, services no needed Stopped, Execution Policy Unsigned.
Setup Wizard for Update Rollup for Exchange Server 2010 Service Pack 3 ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.
Event 1023, Msiinstaller, Application, Update Rollup
As always you did check:
- The account you update is not some lockdown crap admin.s admin.c User which has no Schema, ADS-permission
- Set-executionpolicy unrestricted
- Disabled Cert Revocation Check in IE/EDGE > Options
- Make a cmd.exe on Desktop run that ELEVATED (Run as Administartor)
- Shortly disable AV even if it's Mcafee ENS ;-)
But that was not the error here….
Try to re-run it with debug option so you see more:
D:\edv\RU30\Exchange2010-KB4536989-x64-en.msp /lvx D:\edv\RU30\RU30_InstallationLogFile.log
Also check everything under C:\ExchangeSetupLogs\*.log
MSI (c) (C4:C8) [21:28:16:082]: Product: Microsoft Exchange Server - Update 'Update Rollup 30 for Exchange Server 2010 Service Pack 3 (KB4536989) 14.3.496.0' could not be installed. Error code 1603. Additional information is available in the log file D:\edv\Exchange_2010_SP3_ROLLUP_30\RU30_InstallationLogFile.log.
MSI (c) (C4:C8) [21:28:16:082]: Windows Installer installed an update. Product Name: Microsoft Exchange Server. Product Version: 184.108.40.206. Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Update Rollup 30 for Exchange Server 2010 Service Pack 3 (KB4536989) 14.3.496.0. Installation success or error status: 1603.
MSI (c) (C4:C8) [21:28:16:113]: MainEngineThread is returning 1603
Return MSI error normal helps if the MSI just copied a few files and registry keys. If the MSI starts one hundred powershells and it fails the error means almost nothing. That's like you trigger a start.cmd which calls a start.bat and that calls a start.vbs and somewhere you should capture an %errorlevel%
Lets search for [ERROR] in all Exchange logs > As example under c:\exchangesetuplogs\*.log
Check the logfile C:\ExchangeSetupLogs\ServiceControl.log for [ERROR]
[20:18:24] [Error] System.Management.Automation.ParseException: At D:\Program Files\Microsoft\Exchange Server\V14\Scripts\ManageScheduledTask.ps1:462 char:5
+ return $success
Microsoft recommends to UNINSTALL Management Framework 3.0 or 4.0 > Install the Rollup > RE-Install Management Framework 3.0 or 4.0 and pray.
Just give the Service Pack RU (The Powershell) what it wants. A return value $success. ;-) As you can guess not official supported says the guy who wrote the comments in the PS code? It's really in the beginning when the Rollup checks Services, Checks that Powershell runs etc.
Backup the file then Modify file ManageScheduledTask.ps1 from "D:\Program Files\Microsoft\Exchange Server\V14\Scripts" Line 462.
Change line 462 from "Return $success" To "# Return $success"
Just put the # and a space in front of it (Exclude)
OR this worked too….
Change line: "Return $success" to "Write-Output $success"
The comments speaks for their self in this Microsoft Script. Microsoft about Microsoft ;-)