Update: An updated script has been posted with some improvements, here.
“The file ‘installax.exe’ is not marked for installation”
This post details how to fix this issue, when Flash won’t uninstall correctly from a GPO deployment.
The Problem
I deploy the latest Flash versions through Group Policy, because it’s quick and simple. Some time ago, there was a version of Adobe Flash Player (10.1.5xx I think) that began causing problems with later versions.
What would happen is upon upgrades to Flash being pushed out, when updating the previous version an error would be logged. The GPO would successfully update the player, however it would continue to try updating every day, every time the computer started.
This occurred for both Windows 7 and Windows XP, and got to be quite annoying for my users.
When trying to update manually, the error that appeared was:
"The file 'installax.exe' is not marked for installation"
Here’s how I resolved it:
Based on various forum reports (http://forums.adobe.com/message/3124297) it seemed to be a problem with Flash leftovers.
On a test machine, I uninstalled all Flash versions, and then did a registry search, and removed these items:
[HKEY_CLASSES_ROOT\Installer\Features\4E867BFF724E3554CB631AF1E5269AD4]
[HKEY_CLASSES_ROOT\Installer\Features\6D98A6046E9005543B07D873D6BD65EB]
[HKEY_CLASSES_ROOT\Installer\Products\4E867BFF724E3554CB631AF1E5269AD4]
[HKEY_CLASSES_ROOT\Installer\Products\6D98A6046E9005543B07D873D6BD65EB]
[HKEY_CLASSES_ROOT\Installer\Features\00B86459180C72B4CA69A0A21353E906]
[HKEY_CLASSES_ROOT\Installer\Products\00B86459180C72B4CA69A0A21353E906]
These keys are a mix between Windows 7 x64 and Windows XP.
After that I manually installed the latest version, and it was successful. Now I needed to write a script that would remove these values and install the latest version.
The Script
I wanted to run this as a Shutdown script through group policy, rather than trying to push it out to all our clients through a scheduled task or something. This way it would eventually get applied to everyone. I think I’ll wait a period of time, and then disable this script and go back to a GPO msi install.
I made extensive use of echo and pause statements to ensure it was being applied correctly. Because I didn’t want a script for Windows 7 x64 and a separate one for Windows XP, there’s a bit of logic thrown in to check for version.
Here’s the script:
:: Adobe flash giving "installax" errors when updating from GPO :: This batch file will remove those errors and install 10.1.102.64
:: This batch file should be run from a shutdown or startup script
:: Check if Windows 7 or Windows XP, and goes to the proper section IF EXIST "C:\Program Files (x86)" goto :Win7Check
goto :WinXPCheck
:Win7Check
:: Check if the latest version is installed already in Windows 7. If so, exit. Otherwise install Set "AdobeVersion=" & setlocal & Set "$V="
:: Look in the Uninstall area of registry, where the installed version of Flash player is listed Set "RegKey=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX"
Set "RegItem=DisplayVersion"
:: Take the output of a REG QUERY to the location above, and put it into the AdobeVersion variable
For /f "tokens=3*" %%! in (
'2^>nul Reg.exe QUERY "%RegKey%" /v "%RegItem%" ^|(
Findstr.exe /ri "\<%RegItem%\>"^)') Do Set "$V=%%!"
endlocal & call Set "AdobeVersion=%$V%"
:: If what is currently installed matches latest version, exit. Otherwise, go to install section
if "%AdobeVersion%" == "10.1.102.64" goto :exit
goto :Install
:WinXPCheck
:: Check if the latest version is installed already in Windows XP. If so, exit. Otherwise install Set "AdobeVersionXP=" & setlocal & Set "$T="
:: Look in the Uninstall area of registry, where the installed version of Flash player is listed Set "RegKeyXP=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX"
Set "RegItemXP=DisplayVersion"
:: Take the output of a REG QUERY to the location above, and put it into the AdobeVersion variable For /f "tokens=3*" %%! in (
'2^>nul Reg.exe QUERY "%RegKeyXP%" /v "%RegItemXP%" ^|(
Findstr.exe /ri "\<%RegItemXP%\>"^)') Do Set "$T=%%!"
endlocal & call Set "AdobeVersionXP=%$T%"
:: If what is currently installed matches latest version, exit. Otherwise, go to install section
if "%AdobeVersionXP%" == "10.1.102.64" goto :exit
goto :Install
:Install ::Uninstall current versions of Flash from DFS share start /wait \\domain.com\apps\Public\General\adobeflash\uninstall_flash_player.exe -uninstall
:: Remove offending registry entries causing the error (mentioned below) regedit /s \\domain.com\apps\Public\General\adobeflash\flash_remove_fix.reg
:: Install latest version of Flash start /wait \\domain.com\apps\Public\General\adobeflash\install_flash_player_10.1.102.64.exe -install
goto :exit
:exit
The registry file mentioned contains this (what is at the top of this post, with the removal switch):
[-HKEY_CLASSES_ROOT\Installer\Features\4E867BFF724E3554CB631AF1E5269AD4]
[-HKEY_CLASSES_ROOT\Installer\Features\6D98A6046E9005543B07D873D6BD65EB]
[-HKEY_CLASSES_ROOT\Installer\Products\4E867BFF724E3554CB631AF1E5269AD4]
[-HKEY_CLASSES_ROOT\Installer\Products\6D98A6046E9005543B07D873D6BD65EB]
[-HKEY_CLASSES_ROOT\Installer\Features\00B86459180C72B4CA69A0A21353E906]
[-HKEY_CLASSES_ROOT\Installer\Products\00B86459180C72B4CA69A0A21353E906]
This script successfully runs on Windows 7 and Windows XP, and merely exits when the latest version is already done.
Helpful Links
Check what version of Adobe Flash Player you have, and what is current:
http://www.adobe.com/software/flash/about/
Uninstall Utility used to remove Flash Player
http://kb2.adobe.com/cps/141/tn_14157.html