Is MSIZAP still useful, or is it obsolete

batch-filegroup-policyuninstallwindows-server-2008

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?

Best Answer

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 https://serverfault.com/a/441131/144344 and https://serverfault.com/a/564881/144344