Eu tive um número horrível de falhas aparentemente aleatórias (veja minha nota na conclusão desta resposta) com alguns dos MSI v9, v10 e v11 do Adobe Flash não desinstalando ou atualizando corretamente, deixando o banco de dados MSI no PC em um estado isso me deixa desconfiado. Acabei recorrendo ao uso de um script de inicialização que:
Verifica o HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion
valor do registro para ver se a versão atualmente instalada está atual (adicionando uma WOW6432NODE
nesse caminho, se necessário) e reforçando se a versão está atual
Usa o msizap.exe
utilitário antigo, sem suporte e agora quase impossível , para remover MSIs com falha conhecida de "volta no dia" (incluindo {2BD2FA21-B51D-4F01-94A7-AC16737B2163}, {B7B3E9B3-FB14-4927-894B- E9124509AF5A} e {FA1D6742-0515-4A94-AD5D-F0484026E4A2}).
Usa o EXE desinstalador fornecido pela Adobe para remover silenciosamente as versões atuais do Flash
Usa o instalador EXE atual fornecido pela Adobe com o -install activex
argumento (estou instalando apenas o controle ActiveX na maioria dos sites) para instalar a versão atual
Grava um 'mms.cfg. arquivo para impedir atualizações automatizadas
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 eu já vi desinstalando MSIs Flash antigos foram principalmente:
"Adobe Flash Player 11 ActiveX - Erro 1714.A versão mais antiga do Adobe Flash Player 11 ActiveX não pode ser removida. Entre em contato com seu grupo de suporte técnico. Erro do sistema 1612."
"Erro 2753: O arquivo 'installax.exe' não está marcado para instalação"
A palha que quebrou as costas do camelo, para mim, foi a ocorrência desses erros aleatoriamente em um site do Cliente com mais de 1.000 PCs clientes. Preciso ter certeza de que as atualizações do Flash estão acontecendo e que os MSIs falham aleatoriamente na desinstalação não é uma opção. O fato de as falhas do MSI ocorrerem em cada inicialização subseqüente, retardando o processo de inicialização, apenas adiciona insulto à lesão.
Eu não olhei para um MSI v11 em detalhes. Os MSIs v9 e v10 nada mais são do que uma ação personalizada para executar o instalador do Flash baseado em EXE com argumentos de linha de comando. Não fiquei impressionado com a qualidade dos MSIs, porque usar o Windows Installer para executar apenas a instalação baseada em EXE não está usando o Windows Installer.