This is an update to my earlier post on December 6th, 2010 here.
Since the original post, a few developments have been made through personal findings and the comments.
The “Installax.exe is not marked for installation” issue is still occurring with the latest versions of Flash, so I have decided to abandon GPO deployment through software assignment altogether.
Instead, I will be using the following batch script in a startup script GPO, and keep it updated accordingly. Thanks to Chris Deeming who made some improvements to the original script and posted it in the comments on my original post.
I have tried to be as verbose as possible in the comments so that this is easy to follow along with.
:: Adobe flash giving "installax" errors when updating from GPO :: This batch file will remove those errors and install latest version :: This batch file should be run from a shutdown or startup script @echo off :: These are the only changes that need to be made for an updated version. :: Simply put in the new version number, and the path to the new MSI file. Set "LatestVersionNumber=11.0.1.152" Set "LatestVersionMSI_Path=\\domain\Public\General\adobeflash\install_flash_player_11.0.1.152.msi" :: Check Windows Version ver | findstr /i "5\.1\." > nul IF %ERRORLEVEL% EQU 0 goto ver_XP ver | findstr /i "6\.1\." > nul IF %ERRORLEVEL% EQU 0 goto ver_Win7 :ver_Win7 ::Run Windows 7 specific commands here 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\Macromedia\FlashPlayerActiveX" Set "RegItem=Version" :: 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 DEFINED AdobeVersion (goto :Win7vercheck) ELSE (goto :install) :Win7vercheck if %AdobeVersion% == %LatestVersionNumber% goto :exit goto :Install :ver_XP ::Run Windows XP specific commands here 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\Macromedia\FlashPlayerActiveX" Set "RegItemXP=Version" :: 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 "$V=%%!" endlocal & call Set "AdobeVersionXP=%$V%" :: If what is currently installed matches latest version, exit. Otherwise, go to install section IF DEFINED AdobeVersionXP (goto :WinXPvercheck) ELSE (goto :install) :WinXPvercheck if %AdobeVersionXP% == %LatestVersionNumber% goto :exit goto :Install :Install ::Uninstall current versions of Flash from DFS share msiexec /uninstall %LatestVersionMSI_Path% /quiet :: Remove offending registry entries causing the error REG DELETE HKEY_CLASSES_ROOT\Installer\Features\4E867BFF724E3554CB631AF1E5269AD4 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\6D98A6046E9005543B07D873D6BD65EB /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\4E867BFF724E3554CB631AF1E5269AD4 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\6D98A6046E9005543B07D873D6BD65EB /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\00B86459180C72B4CA69A0A21353E906 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\00B86459180C72B4CA69A0A21353E906 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\68AB67CA7DA73301B744AA0000000010 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\A42FBB8140D64AC46B4BC13F2761E2CE /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\C460100B160DEAB4091314A638D85563 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\4195BD842778D2748BFD2E90B25E896F /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\B0E390BD43903814AB06C5A1CDF94642 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\4195BD842778D2748BFD2E90B25E896F /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\B0E390BD43903814AB06C5A1CDF94642 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\D9D09CCDD8F460A40905DABD82F49FAF /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\D9D09CCDD8F460A40905DABD82F49FAF /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\2DAEED307B3FFB5409602AD510F5002D /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features\5258E229E7CA4924CAAA3417D244320C /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\2DAEED307B3FFB5409602AD510F5002D /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\41699E6F240F9544287BB8832B063165 /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products\5258E229E7CA4924CAAA3417D244320C /F REG DELETE HKEY_CLASSES_ROOT\Installer\Features3797D32A1CEE534388FAABEEF25730B /F REG DELETE HKEY_CLASSES_ROOT\Installer\Products3797D32A1CEE534388FAABEEF25730B /F :: Install latest version of Flash msiexec /i %LatestVersionMSI_Path% /quiet :: Copy mms.cfg to disable auto-update copy /Y \\domain\Public\General\adobeflash\mms.cfg %systemdrive%\windows\system32\Macromed\Flash copy /Y \\domain\Public\General\adobeflash\mms.cfg %systemdrive%\windows\SysWOW64\Macromed\Flash goto :exit :exit |
Fantastic script.
Have been struggling with flash GP installs for the last couple versions and was about to go crazy.
Original script was great, additions are even better, thanks for posting.
how ae you handling the different versions i.e. activex, plugin 32bit and 64bit??
Thanks
John, that actually isn’t something I’m handling, because in my environment we only use activex for IE, and only the 32bit plugin since IE x64 isn’t default and is never used.
In the future I realize I’ll have to address this, I just haven’t needed to yet.
Regarding the activex vs plugin, I don’t see why you couldn’t add in a line to silently install the .exe in addition to the msiexec command.
In my case, our Win7 clients are ALL x64, so since I’ve already separated some commands there, I’d use the same code to install the correct version of the activex or plugin.
Hi!
Thanks for this solution and script.
In line
“msiexec /uninstall %LatestVersionMSI_Path% /quiet”
should be
msiexec /uninstall %LatestVersionMSI_Path% /qn
Wojciech, could you explain why it should be /qn instead? I know it works with /quiet, and did a quick google search which brought up this:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa372024%28v=vs.85%29.aspx
that says /quiet is the equivalent of /qn. I just want to make sure I’m not missing something.
Thanks for the script. I’m just wondering why you are removing some reg keys twice.
Removing doubles, the list should be :
REG DELETE HKEY_CLASSES_ROOT\Installer\Features\6D98A6046E9005543B07D873D6BD65EB /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\4E867BFF724E3554CB631AF1E5269AD4 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products0B86459180C72B4CA69A0A21353E906 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\68AB67CA7DA73301B744AA0000000010 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\A42FBB8140D64AC46B4BC13F2761E2CE /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\C460100B160DEAB4091314A638D85563 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\4195BD842778D2748BFD2E90B25E896F /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\B0E390BD43903814AB06C5A1CDF94642 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\D9D09CCDD8F460A40905DABD82F49FAF /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\2DAEED307B3FFB5409602AD510F5002D /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\41699E6F240F9544287BB8832B063165 /F
REG DELETE HKEY_CLASSES_ROOT\Installer\Products\5258E229E7CA4924CAAA3417D244320C /F
The duplicates are due to me not being attentive, and just combining as many of those keys as I’ve found so far, thats all.
In part VerXP:
IF DEFINED AdobeVersion (goto :WinXPvercheck) ELSE (goto :install) should be
IF DEFINED AdobeVersionXP (goto :WinXPvercheck) ELSE (goto :install)
Else it will uninstall and install again on XP machines.
Thanks for catching that. I had fixed that error in my own internal script, but didn’t update this post. It’s updated now.
This also has a dependency on FINDSTR.exe. A reference to where you got this util would be nice.
Also msiexec fails if there are spaces in the MSI path.
@Roger, the FINDSTR.exe program is included with Windows; at least it appears to be when I spot checked 3 or 4 machines that have Windows 7 and Windows XP.
Regarding spaces in the MSI path, those variables can be changed based on this:
http://stackoverflow.com/questions/1851012/set-a-path-variable-with-spaces-in-the-path-in-a-windows-cmd-file-or-batch-file
I didn’t read all the comments so if I’m repeating something someone else said I do apologize. Anyhow, along with removing the registry entries, I also did a search for InstallAX.exe and found it under:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SHAREDDLLS
the entry for it is:
C:\Windows\Temp\InstallAX.exe
I changed the value to 0 and that fixed it when removing the other registry entries did not.