Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I update flash using MSI files installed by group policy. However, with every update, about a third of the workstations fail to update (Windows Vista and Windows 7 32/64-bit editions). In the event logs, this message appears:

"Adobe Flash Player 11 ActiveX -- Error 1714.The older version of Adobe Flash Player 11 ActiveX cannot be removed. Contact your technical support group. System Error 1612."

The only way I've been able to address the issue is to use the Microsoft Fit It tool. However, it's a very time consuming process, which takes about 15 minutes to mannually perform for each workstation, so it effectively kills a whole day every time a flash update comes out.

I came across this script which includes MSIZAP to remove failed uninstallations of flash. So, my question is: is the MSIZAP utility the best approach for removing flash programmatically, or is it obsolete at this point? The reason I ask is that most of the written materials that I've found on the subject are from 2009 or 2010.

@echo off
SET MSIZAP=\\my.domain.com\netlogon\bin\msizap.exe
SET DFSPATH=\\my.domain.com\dfsroot\Packages\Adobe

SET UNINSTALL=%DFSPATH%\uninstall_flash_player_x86.exe
SET INSTALL=%DFSPATH%\install_flash_player_11.4.402.278_active_x.exe 

rem Detect 64-bit Windows
IF NOT "%ProgramFiles(x86)%"=="" SET WOW6432NODE=WOW6432NODE\

SET VER_FLAG_KEY=HKEY_LOCAL_MACHINE\SOFTWARE\%WOW6432NODE%Macromedia\FlashPlayer
SET VER_FLAG_VALUE=11,4,402,278

REG QUERY "%VER_FLAG_KEY%" /v CurrentVersion | find /i "%VER_FLAG_VALUE%" > NUL 2>NUL
if errorlevel 1 goto do_install
goto :EOF

:do_install
rem Uninstall all old versions of Flash.
start /wait /min "" "%UNINSTALL%" -uninstall activex

rem MSIZAP all old versions
start /wait /min "" "%MSIZAP%" TW! {2BD2FA21-B51D-4F01-94A7-AC16737B2163}
start /wait /min "" "%MSIZAP%" TW! {B7B3E9B3-FB14-4927-894B-E9124509AF5A}
start /wait /min "" "%MSIZAP%" TW! {FA1D6742-0515-4A94-AD5D-F0484026E4A2}

rem Run new installer
start /wait /min "" "%INSTALL%" -install activex

rem Block future automatic updates
SET DEST="%windir%\system32\Macromed\Flash\mms.cfg"

rem Detect 64-bit Windows
IF NOT "%ProgramFiles(x86)%"=="" SET DEST="%windir%\SysWOW64\Macromed\Flash\mms.cfg"

rem I'm using "sort" here because the redirect is being interpreted as "1>" and
rem doing "1 >" causes a space to be stored in the file, which "breaks" the file.
echo AutoUpdateDisable=1|sort>%DEST%

Source: I deployed Flash Player via a Software Installation policy. How to upgrade?

share|improve this question
    
If you have a list GUIDs why not just walk them and uninstall? Something like: msiexec /x {the-product-guid} /qn -- That should uninstall the product[s]. I don't think MsiZap is supported. – jscott Feb 28 '13 at 15:54
1  
Keep in mind that these programs failed to be fully uninstalled through group policy, and can't be reinstalled or upgraded until cleaned out with the fix it tool. As far as I was aware, msiexec only works when things are actually functioning properly. – Force Flow Feb 28 '13 at 16:14

Are you trying to install the new version over the old, and rely on its installer do the removal? Or do you tell the windows installer to first uninstall the old, before installing the new?

If you do the former, I recommend you switch to the later, because I had almost only good experience with this. The only exception was when Adobe once put a wrong version number into the uninstall command inside the msi (but that was 100% reproducable, and thus immediately visible on a test machine before the deployment).

See http://serverfault.com/a/441131/144344 and http://serverfault.com/a/564881/144344

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.