Copy link to clipboard
Copied
Hi everybody,
I'm deploying software on about 200 Windows 7 pcs using "Matrix42 - Empirum". So far, deploying Adobe Flash Player was quite easy, I downloaded the *.msi and deployed it with (more or less) this command line:
Call MsiExec /I "%SRC%\install_flash_player_21.0.0.242_active_x.msi" REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /qb-! /Li "%MSILogFile%"
After that, I copied "mms.cfg" to "C:\Windows\System32\Macromed\Flash" and everything was fine.
The second latest version of Flash Player I deployed was 21.0.0.182. Everything was fine until I started rolling out 21.0.0.242. When you roll out software via Matrix42, it looks if an older version of this software is installed, if yes, it uninstalls the old version first and installs the new version then.
During the last deploy, a few pcs threw an error while installing 21.0.0.242. I searched through the logs and noticed that a "procedure" named "IsIllegalUpgrade" returns a value "3", instead of "1" like the rest of the procedures. I found out, that the installer creates a script named "IsIllegalUpgrade.vbs", runs it and deletes it afterwards. I managed to keep the script and looked ad it, it just compares the old an new version of Flash Player and returns a value to the installer. In my case, the script returns "3", which causes the installer to abort. At this point, the uninstaller has already removed the old version (182), no Flash Player is installed on the pc.
Unfortunately it's not visible in the script WHERE it reads the values from. When I run the script manually, nothing happens.
Does anybody know this error or can tell me, WHERE the script gets its value from..?
Thanks in advance,
Markus
LOGFILE:
=== Logging started: 18.05.2016 14:04:56 ===
Action start 14:04:56: INSTALL.
Action start 14:04:56: ISSetAllUsers.
Action ended 14:04:56: ISSetAllUsers. Return value 1.
Action start 14:04:56: AppSearch.
Action ended 14:04:56: AppSearch. Return value 1.
Action start 14:04:56: LaunchConditions.
Action ended 14:04:56: LaunchConditions. Return value 1.
Action start 14:04:56: FindRelatedProducts.
Action ended 14:04:56: FindRelatedProducts. Return value 1.
Action start 14:04:56: ValidateProductID.
Action ended 14:04:56: ValidateProductID. Return value 1.
Action start 14:04:56: MakePropsAvailable.
Action ended 14:04:56: MakePropsAvailable. Return value 1.
Action start 14:04:56: IsIllegalUpgrade.
Action ended 14:04:56: IsIllegalUpgrade. Return value 3.
Action ended 14:04:56: INSTALL. Return value 3.
MSI (s) (68:94) [14:04:56:837]: Product: Adobe Flash Player 21 NPAPI -- Installation operation failed.
MSI (s) (68:94) [14:04:56:837]: Das Produkt wurde durch Windows Installer installiert. Produktname: Adobe Flash Player 21 NPAPI. Produktversion: 21.0.0.242. Produktsprache: 1033. Hersteller: Adobe Systems Incorporated. Erfolg- bzw. Fehlerstatus der Installation: 1603.
=== Logging stopped: 18.05.2016 14:04:56 ===
HERE IS THE SCRIPT (IsIllegalUpgrade.vbs):
Function LeftShift(ByVal Num, ByVal ShiftBy)
LeftShift = Num * (2 ^ ShiftBy)
End Function
Function ConvertVersionStringToArrayOfTwoLongs(ByVal VersionString)
'Converts a dotted quad version string into an array of two longs for easier comparisons
Dim VersionNumbers, VersionParts, Counter
VersionNumbers = Array(0, 0, 0, 0)
VersionStrings = Split(VersionString, ".")
For Counter = 0 To UBound(VersionStrings)
VersionNumbers(Counter) = CLng(VersionStrings(Counter))
Next
Dim MajorDotMinor, BugFixDotBuild
'Combine the Major and Minor numbers, then combine the BugFix and Build numbers
MajorDotMinor = LeftShift(VersionNumbers(0), 16) + VersionNumbers(1)
BugFixDotBuild = LeftShift(VersionNumbers(2), 16) + VersionNumbers(3)
ConvertVersionStringToArrayOfTwoLongs = Array(MajorDotMinor, BugFixDotBuild)
End Function
Function CompareTwoVersionStrings(ByVal VersionString1, ByVal VersionString2)
'Returns -1 if VersionString1 < VersionString2
'Returns 0 if VersionString1 = VersionString2
'Returns 1 if VersionString1 > VersionString2
Dim ConvertedVersion1, ConvertedVersion2, ReturnValue
ConvertedVersion1 = ConvertVersionStringToArrayOfTwoLongs(VersionString1)
ConvertedVersion2 = ConvertVersionStringToArrayOfTwoLongs(VersionString2)
If ConvertedVersion1(0) < ConvertedVersion2(0) Then
ReturnValue = -1
ElseIf ConvertedVersion1(0) = ConvertedVersion2(0) Then
If ConvertedVersion1(1) < ConvertedVersion2(1) Then
ReturnValue = -1
ElseIf ConvertedVersion1(1) = ConvertedVersion2(1) Then
ReturnValue = 0
Else
ReturnValue = 1
End If
Else
ReturnValue = 1
End If
CompareTwoVersionStrings = ReturnValue
End Function
Sub LogMessage(msg)
Dim rec
Set rec = Session.Installer.CreateRecord(1)
rec.StringData(0) = "Error : " & msg
Session.Message &H01000000,rec
End Sub
Function IsIllegalUpgrade()
Dim ProductVersion, PreviousVersion, ReturnValue
ProductVersion = Session.Property("ProductVersion")
PreviousVersion = Session.Property("PREVIOUS_VERSION")
ReturnValue = CompareTwoVersionStrings(ProductVersion, PreviousVersion)
If ReturnValue >= 0 Then
IsIllegalUpgrade = 0 'This tells the MSI that the upgrade should be allowed
Else
LogMessage("The version of the Player that you are trying to install is lower than what is currently installed.")
IsIllegalUpgrade = 3 'This tells the MSI to abort
End If
End Function
Copy link to clipboard
Copied
I'm not familiar with Matrix42, what does it use (reg entry, control panel, ??) to uninstall the previous version?
Did any of the systems that are failing have a beta version installed previous to deploying 21.0.0.242?
Please upload the entire MSI verbose log file and the FlashInstall.log file from an impacted system to cloud.acrobat.com/send using the instructions How to share a document . Post the link to the uploaded files in your reply.
The FlashInstall.log file is saved at C:\Windows\System32\Macromed\Flash. If this is a 64-bit OS, there's another FlashInstall.log file saved at C:\Windows\SysWOW64\Macromed\Flash. Both files are needed from a 64-bit OS.
Copy link to clipboard
Copied
No, we didn't deploy any beta-versions of Flash-Player, the second-latest version was 21.0.0.182 (official, not beta).
I uploaded the 3 requested files to
https://files.acrobat.com/a/preview/e17aafbd-bdd6-460f-9d02-28087d0229db
The MSI verbose log is called "FP_Test.log".
But I think the more important log is the one, that is created in C:\Windows\temp:
=== Logging started: 20.05.2016 11:37:02 ===
Action start 11:37:02: INSTALL.
Action start 11:37:02: ISSetupFilesExtract.
Action ended 11:37:02: ISSetupFilesExtract. Return value 1.
Action start 11:37:02: ISSetAllUsers.
Action ended 11:37:02: ISSetAllUsers. Return value 1.
Action start 11:37:02: AppSearch.
Action ended 11:37:02: AppSearch. Return value 1.
Action start 11:37:02: LaunchConditions.
Action ended 11:37:02: LaunchConditions. Return value 1.
Action start 11:37:02: FindRelatedProducts.
Action ended 11:37:02: FindRelatedProducts. Return value 1.
Action start 11:37:02: ValidateProductID.
Action ended 11:37:02: ValidateProductID. Return value 1.
Action start 11:37:02: MakePropsAvailable.
Action ended 11:37:02: MakePropsAvailable. Return value 1.
Action start 11:37:02: IsIllegalUpgrade.
Action ended 11:37:02: IsIllegalUpgrade. Return value 3.
Action ended 11:37:02: INSTALL. Return value 3.
MSI (s) (0C:F8) [11:37:02:415]: Product: Adobe Flash Player 21 ActiveX -- Installation operation failed.
MSI (s) (0C:F8) [11:37:02:420]: Das Produkt wurde durch Windows Installer installiert. Produktname: Adobe Flash Player 21 ActiveX. Produktversion: 21.0.0.242. Produktsprache: 1033. Hersteller: Adobe Systems Incorporated. Erfolg- bzw. Fehlerstatus der Installation: 1603.
=== Logging stopped: 20.05.2016 11:37:02 ===
I think, this is the reason why the MSI aborts (bold lines). The one-million-dollar-question here is, what this script (IsIllegalUpgrade.vbs) does and where it gets its values from.
Here is the script (I appended .txt to the end):
https://files.acrobat.com/a/preview/1a927c7d-9086-40d7-9c99-e3dc740f97a9
In my opinion, we have 2 possibilities here:
- The script reads some wrong information from the msi (a greater version number than 21.0.0.242)
- The script reads "bad information" and the calculation at the end of the script does something like a divison by zero.
I tried to run the script in a DOS-box with cscript.exe...unfortunately no output.
Just to be sure, I tried this procedure on a test machine:
- Open the Flash-Player-MSI with SuperOrca
- Delete any line that contains "IsIllegalUpgrade"
- Save msi
- Deployed it
===> THAT WORKS, no errors
That could be a workaround, at least for this version. But I am sure, I will have exactly the same problem when I deploy the next version of Flash-Player...
Best regards,
Markus
Copy link to clipboard
Copied
Hi,
Thanks for providing the files. We are reviewing the log files. How does Matrix42 attempt to uninstall the currently installed version?
On the systems that fail to upgrade, is 21.0.0.182 still installed? Or is the system left with Flash Player installed?
The script checks if the installation is a downgrade attempt, if it is, the installation stops:
If ReturnValue >= 0 Then
IsIllegalUpgrade = 0 'This tells the MSI that the upgrade should be allowed
Else
LogMessage("The version of the Player that you are trying to install is lower than what is currently installed.")
IsIllegalUpgrade = 3 'This tells the MSI to abort
End If
And as you've concluded, for some reason, it thinks the version being installed is lower than what is currently installed. We have seen similar situations in the past, where uses have deleted the previous MSI install files saved in the server cache, that are used to remove installed versions. This is usually with SCCM. I'm not at all familiar with Matrix42 and don't now the process it uses to uninstall software.
--
Maria
Copy link to clipboard
Copied
Hi,
Did you happen to modify the MSI installer (e.g. via transform file)? If so, what changes were made?
We're noticing some at least one missing item from the verbose log file that we'd expect to be there. Can you provide another verbose log file for the same upgrade scenario (along with the corresponding FlashInstall.log file)?
Thank you.
--
Maria
Copy link to clipboard
Copied
Hi Maria,
First, a short lesson in Matrix42: M42 uses a file named "setup.inf" to deploy software. In this file, all installtion opitions can be set. This file stays on the client until the software is removed. You should have at least an INSTALL and an UNINSTALL section in your setup.inf. For Flash Player 21.0.0.182, these two lines look like this:
INSTALL
Call MsiExec /I "%SRC%\install_flash_player_21.0.0.182_active_x.msi" REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /qb-! /Li "%MSILogFile%"
UNINSTALL
Call MsiExec /X {92C34178-B679-4C83-AC33-7EFCE6D36E01} REBOOT=REALLYSUPPRESS /qb-! /Li "%MSILogFile%"
When you deploy a software package to a client (e.g. PC1), the M42-Server looks in its database, if an older version of this software was deployed to PC1. If yes, it looks for the setup.inf of the old package for the uninstall string, uninstalls the software, takes the new setup.inf, looks for the install string and installs the new version.
I will answer your question from the last two post here:
- On all clients with this error, the uninstall of FP 21.0.0.182 works and is done. At the moment when the IsIllegalUpgrade-error comes up, no Flash Player is installed un the system. I searched the registry for the string "92C34178-B679-4C83-AC33-7EFCE6D36E01", no matches.
- I didn't provide any MST-file, I just opened the install_flash_player_21.0.0.242_active_x.msi, searched for "IsIllegalUpgrade", removed any lines that contained the string and saved the msi afterwards.
Sorry, at the moment, all pcs with errors are in use, I cannot generate any verbose log.
But it would really appreciate it, if you would answer the question I already asked twice: Where does the IsIllegalUpgrade.vbs script look for values..???
Thank you and best regards,
Markus
Copy link to clipboard
Copied
Here are 3 logs from another isillegalupgrade-error client:
https://files.acrobat.com/a/preview/b9c03396-10a6-4eed-b481-aa6b67d06f79
Both "FlashInstall_32.log" and "FlashInstall_64.log" don't contain any information about the latest installation (11:44h, FP 21.0.0.242).
"FP_install_v.log" = msiexec /i ... /lv c:\temp\FP_install_v.log
Best regards,
Markus
Copy link to clipboard
Copied
Hi,
The isIllegalUpgrade.vbs script looks for the previous version in HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX .
Looking through the MSI log file, we see the following:
MSI (s) (BC:C4) [11:44:12:602]: Doing action: IsIllegalUpgrade
Action start 11:44:12: IsIllegalUpgrade.
MSI (s) (BC:68) [11:44:12:602]: Generating random cookie.
MSI (s) (BC:68) [11:44:12:602]: Created Custom Action Server with PID 3828 (0xEF4).
MSI (s) (BC:A4) [11:44:12:618]: Running as a service.
MSI (s) (BC:78) [11:44:12:618]: Hello, I'm your 32bit Impersonated custom action server.
MSI (s) (BC:AC) [11:44:12:633]: Failed to marshal script action.
MSI (s) (BC:AC) [11:44:12:633]: Failed to marshal script action.
Action ended 11:44:12: IsIllegalUpgrade. Return value 3.
Action ended 11:44:12: INSTALL. Return value 3.
MSI (s) (BC:C4) [11:44:12:633]: MainEngineThread is returning 1603
This (Failed to marshal script action) seems to be what is causing the error. Performing an internet search for 'Failed to marshal script action' indicates this error has to do with something wrong with the OLE Automation library OLEAUT32.DLL (see Failed to marshal script action. - Advanced Installer and Failed to marshal script action - Custom Actions - InstallSite Forum, among other search results). This can explain why the MSI installer worked when you extracted the VB script. I suspect if you compare the MSI log file from a system where installation was successful with an MSI log file from a system where the upgrade was not successful, this 'failed to marshal script action' error will not be there in the MSI log file from the system where the upgrade was successful.
Also, some information still appears to be missing. It's possible this is due to how you are generating the log file. Can you run the MSI installer with /L*v instead of /Li? Thank you.
--
Maria
Copy link to clipboard
Copied
yes
2016-05-21 6:46 GMT+07:00 m_vargas <forums_noreply@adobe.com>:
Flash Player Deploy - "IsIllegalUpgrade" returns "3" created by m_vargas
<https://forums.adobe.com/people/m_vargas> in Installing Flash Player - View
the full discussion <https://forums.adobe.com/message/8763361#8763361>
Copy link to clipboard
Copied
I am having a similar issue. The installation for 21.0.0.242 was successful on 300+ machines in my environment, but I am getting the same 1603 error with the IsIllegalUpgrade returning the '3' on about 115 machines. We uninstall the current version through a WMI query, then proceed to install the new application through the MSI with a MSP SCCM package. I have searched the web and this is the only thread I have come across that has mentioned this specifically. Any help would be great!
Copy link to clipboard
Copied
Hi m_forbes
Do you see the same "Failed to marshal script action." comment above 'Return value 3'? If so, it's most likely the same issue. Failed to marshal script action has to do with the OLEAUT32.DLL library.
If not, please provide the following log files:
Upload the files to cloud.acrobat.com/send using the instructions How to share a document . Post the link to the uploaded files in your reply.
--
Maria
Copy link to clipboard
Copied
Maria - I did take a look at the articles for the OLEAUT32.DLL. It referenced a KB article and MS update. I went to install the update and received notification that the update was not needed on the system and would not install. I will get the install logs and upload then for you now. Thanks!
Copy link to clipboard
Copied
Hi,
Thanks for providing the additional information on the OLEAUT32.DLL. In addition to the update mentioned in the links, can you confirm that this file is installed on the target system(s), and that it is correctly registered?
What Windows versions are exhibiting the behaviour?
The link only contains the MSI log file. Please provide all files for the same installation attempt. To confirm, are you running the MSI installer with the /L*v option?
--
Maria
Copy link to clipboard
Copied
Maria,
I ran the "regsvr32 oleaut32.dll" command and the DLL registered successfully.
The machines experiencing this behavior are Windows 7 64 bit workstations.
I am running the package as you requested. I am running it from SCCM with the following string:
SET SOURCEDIR=%~dp0_INSTALL\
SET MSIFILE=install_flash_player_21_active_x.msi
SET MSTFILE=install_flash_player_21_active_x.mst
msiexec /i "%SOURCEDIR%%MSIFILE%" TRANSFORMS="%MSTFILE%" /l*v "%TEMP%\AdobeFlashPlayerActiveX21.0.0.242.log"
I attached the 2 log files that you requested above, but they have not been written to since 5/14/2016 - Let me add I attempted to run this install again this morning.
Copy link to clipboard
Copied
Hi everybody,
sorry for the late answer, the last days were quite busy.
I did a few tests, but nothing seemed to solve my IsIllegalUpgrade-problem.
1. I looked at the 2 links from Maria, downloaded and installed the hotfix on a test machine. Same error as before.
2. Then I copied the 2 (System32/SysWOW64) oleauth32.dlls from a client, that updated without errors. Here I noticed that the "error-version" was 6.1.7601.17676 and the "working-version" was 6.1.7601.23403. This fact filled me with a little hope, that this could be the reason for the error. So I took over the ownership of the ddls (original owner is "TrustedInstaller"), changed security settings, unregistered and renamed them, copied the new dlls, changed the owner of them back to TrustedInstaller, registered the new dlls and rebooted the pc. Unfortunately I received the same error as before.
3. Just to be sure, I downloaded the msi a second time from Adobe and built the package new from scratch. Same error.
4. I tried the installtion on the "regular" way, went to "Adobe Flash Player-Installation für alle Versionen " and started it. This time, Flash-Player was installed correctly. I uninstalled it and deployed my package again, error.
Maria, you said, that the IsIllegaUpgrade.vbs looks in HKLM\SOFTWARE\Macromedia\FlashPlayerActiveX for an installed version. As I mentioned before, the uninstall from FP 21.0.0.182 was successful, so at the time of the installation, the mentioned registry-key wasn't there (I checked it). I also didn't deploy any newer (beta-)versions of FP than 21.0.0.242...so the script could only find older versions (in case some uninstaller did not remove a registry-key).
Meanwhile, I am running out of "error-pcs", as our main application needs Flash-Player (no comments, please, I know..! ), I had to deploy my working version (the cleaned msi, that does not create and execute the IsIllegalUpgrade.vbs). This is a workaround for this version, but I am quite sure, that the error will come back with the next version of Flash-Player, I will deploy...
These were my latest experiences, sorry for no solution...
Best regards,
Markus
Copy link to clipboard
Copied
Thank you both for the additional information. We're still investigating this.
The installer posted at get.adobe.com/flashplayer worked because it's the EXE installer which doesn't utilize the VBScript to perform the downgrade check. EXEs perform the downgrade check differently.
Copy link to clipboard
Copied
any resolution to this? i have been working on this issue for last few days.
trying to install 21.0.0.242 using SCCM but it fails with same error code as above.
have tried Flash cleanup tool and manually install the MSI but no luck.
installing via EXE works.
have also looked at this but the KB does not apply.
Copy link to clipboard
Copied
@https://forums.adobe.com/people/Jack%20Pater
There is no resolution yet.
Did you check if OLEAUT32.DLL is properly registered, or try to re-register it?
What version, if any is installed on the system?
Are you uninstalling the installed version first and then installing 21.0.0.242? If so, how are you uninstalling?
Please provide a verbose MSI log (using the /L*v command to obtain the verbose log) and FlashInstall.log file for the same installation attempt from an impacted system. The FlashInstall.log file is saved at:
Upload the files to cloud.acrobat.com/send using the instructions at How to share a document and post the link to the uploaded files in your reply.
Thank you.
--
Maria
Copy link to clipboard
Copied
@JohnTheFisherman , M_Forbes , and https://forums.adobe.com/people/Jack%20Pater
If you are still experiencing the behaviour, please provide an MSI log file with the verbose AND extra debugging options enabled: L*vx
Upload the file to cloud.acrobat.com/send using the How to share a document instructions.
Thank you.
--
Maria
Copy link to clipboard
Copied
@m_vargas:
Hello Maria,
as I mentioned in my last post, I am running out of "error-pcs" as we have a production environment that (unfortunantely) needs Flash-Player. As a result of this, I cannot post any more logs. But I am sure, that the error still exists.
Do you know when the next version of Flash-Player will be released..? I am quite sure, that the error will come back..! 😉
Best regards,
Markus
Copy link to clipboard
Copied
Maria -
I am really not sure what happened, I have not made any changes. But checking my SCCM reporting this morning, over the weekend my 100+ failures all installed successfully. I really have no reason as to why this would resolve on its own. Right now I have 6 machines, (all currently have users on them) that I need to investigate what is going on with them. I will follow up if I can find anything further.
This is VERY strange to me.
Thanks,
Mike
Copy link to clipboard
Copied
I'm glad everything is working fine now, and I agree it is strange. Where there any updates installed on those system or other changes made (without your knowledge)? Perhaps the Event Viewer log files might provide some information?
Copy link to clipboard
Copied
Maria -
Found a machine that is still having the issue. I updated all MS updates on the machine to match and still getting the same error. I have captured the MSI log using the L*vx for you.
Thanks,
Mike