Ho avuto un numero orrendo di guasti apparentemente casuali (vedi la mia nota alla conclusione di questa risposta) con alcuni dei Adobe Flash MSI v9, v10 e v11 che non si disinstallano o si aggiornano correttamente, lasciando il database MSI sul PC in uno stato questo mi rende diffidente. Ho finito col ricorrere all'uso di uno script di avvio che:
Verifica il HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion
valore del registro per vedere se la versione attualmente installata è corrente (aggiungendo una WOW6432NODE
in quel percorso, se necessario) e salvando se la versione è corrente
Utilizza l' msizap.exe
utilità precedente, non supportata e ora quasi impossibile per rimuovere gli MSI con errori noti da "back in the day" (inclusi {2BD2FA21-B51D-4F01-94A7-AC16737B2163}, {B7B3E9B3-FB14-4927-894B- E9124509AF5A} e {FA1D6742-0515-4A94-AD5D-F0484026E4A2}).
Utilizza il programma di disinstallazione EXE fornito da Adobe per rimuovere silenziosamente tutte le versioni correnti di Flash
Utilizza l'attuale programma di installazione EXE fornito da Adobe con l' -install activex
argomento (sto solo installando il controllo ActiveX nella maggior parte dei siti) per installare la versione corrente
Scrive un 'mms.cfg. file per impedire gli aggiornamenti automatici
Ecco una versione ripulita del mio script di avvio. Dovresti uscire e prendere gli EXE appropriati se vuoi farlo andare.
@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%
I problemi che ho riscontrato nella disinstallazione di vecchi MSI Flash sono stati principalmente:
"Adobe Flash Player 11 ActiveX - Errore 1714. Impossibile rimuovere la versione precedente di Adobe Flash Player 11 ActiveX. Contattare il gruppo di supporto tecnico. Errore di sistema 1612."
"Errore 2753: il file 'installax.exe' non è contrassegnato per l'installazione"
La goccia che ha spezzato la schiena del cammello, per me, stava vedendo questi errori accadere casualmente in un sito del cliente con oltre 1.000 PC client. Devo essere sicuro che gli aggiornamenti di Flash siano in corso e che la disinstallazione casuale degli MSI non sia un'opzione. Il fatto che gli errori MSI si verifichino ad ogni avvio successivo, rallentando il processo di avvio, aggiunge solo un insulto alla lesione.
Non ho esaminato un MSI v11 in dettaglio. Gli MSI v9 e v10 non sono altro che un'azione personalizzata per eseguire il programma di installazione Flash basato su EXE con argomenti da riga di comando. Non sono rimasto impressionato dalla qualità degli MSIs, perché l'utilizzo di Windows Installer per eseguire semplicemente l'installazione basata su EXE non utilizza Windows Installer.