Eu tive horrendo números de falhas aparentemente aleatórias (veja minha nota na conclusão desta resposta) com alguns dos v9, v10 e v11 do Adobe Flash MSI não está desinstalando ou atualizando corretamente, deixando o banco de dados MSI no PC em um estado que me deixa cauteloso. Acabei recorrendo a um script de inicialização que:
-
Verifica o valor do registro HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion
para ver se a versão atualmente instalada é atual (adicionando um WOW6432NODE
nesse caminho, se necessário) e liberando a versão atual
-
Utiliza o utilitário msizap.exe
antigo, sem suporte e agora próximo do impossível, para remover os MSIs com falha conhecida de "antigamente" (incluindo {2BD2FA21-B51D-4F01-94A7-AC16737B2163}, {B7B3E9B3-FB14-4927-894B-E9124509AF5A} e {FA1D6742-0515-4A94-AD5D-F0484026E4A2}).
-
Usa o desinstalador fornecido pela Adobe EXE para remover silenciosamente qualquer versão atual do Flash
-
Usa o instalador de EXE atual fornecido pela Adobe com o argumento -install activex
(estou instalando apenas o controle ActiveX na maioria dos sites) para instalar a versão atual
-
Grava um 'mms.cfg. arquivo para evitar atualizações automáticas
Aqui está uma versão limpa do meu script de inicialização. Você precisaria sair e pegar os EXEs apropriados se quisesse fazer isso.
@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%
Os problemas que tenho visto a desinstalação de antigos MSIs Flash têm sido principalmente:
-
"Adobe Flash Player 11 ActiveX - Erro 1714.A versão mais antiga do ActiveX do Adobe Flash Player 11 não pode ser removida. Entre em contato com o seu grupo de suporte técnico. Erro de sistema 1612."
-
"Erro 2753: o arquivo 'installax.exe' não está marcado para instalação"
A palha que quebrou o camelo, para mim, foi ver esses erros acontecendo aleatoriamente em um site do cliente com mais de 1.000 PCs clientes. Eu preciso ter certeza de que as atualizações do Flash estão acontecendo e ter MSIs aleatoriamente não conseguem desinstalar não é uma opção. O fato de que as falhas do MSI acontecem em cada inicialização subseqüente, diminuindo o processo de inicialização, apenas acrescenta insulto à injúria.
Eu não olhei para um MSI v11 em detalhes. Os MSIs v9 e v10 são nada mais do que uma ação personalizada para executar o instalador Flash baseado em EXE com argumentos de linha de comando. Eu não fiquei impressionado com a qualidade dos MSIs, porque usar o Windows Installer para executar sua instalação baseada em EXE não é usando o Windows Installer.