У меня было чудовищное количество, казалось бы, случайных сбоев (см. Мою заметку в конце этого ответа), когда некоторые из Adobe Flash MSI v9, v10 и v11 не удалялись и не обновлялись должным образом, оставляя базу данных MSI на ПК в состоянии это заставляет меня насторожиться В итоге я прибег к использованию сценария запуска, который:
Проверяет HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersionзначение реестра, чтобы увидеть, является ли текущая установленная версия текущей (добавление WOW6432NODEв этот путь, если необходимо), и сбросить, если версия является текущей
Использует старую, неподдерживаемую и теперь практически невозможную msizap.exeутилиту для удаления известных MSI с ошибками из «назад в день» (включая {2BD2FA21-B51D-4F01-94A7-AC16737B2163}, {B7B3E9B3-FB14-4927-894B- E9124509AF5A} и {FA1D6742-0515-4A94-AD5D-F0484026E4A2}).
Использует предоставленный Adobe деинсталлятор EXE для автоматического удаления любых текущих версий Flash
Использует текущий установленный Adobe установщик EXE с -install activexаргументом (я устанавливаю элемент управления ActiveX на большинстве сайтов) для установки текущей версии
Записывает 'mms.cfg. файл для предотвращения автоматического обновления
Вот исправленная версия моего скрипта запуска. Вам нужно выйти и взять соответствующие EXE-файлы, если вы хотите сделать это.
@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%
Проблемы, которые я видел при удалении старых Flash MSI, были в основном:
«Adobe Flash Player 11 ActiveX - Ошибка 1714. Старую версию Adobe Flash Player 11 ActiveX невозможно удалить. Обратитесь в группу технической поддержки. Системная ошибка 1612».
«Ошибка 2753: файл« installax.exe »не помечен для установки»
Для меня соломинка, которая сломала спину верблюду, заключалась в том, что эти ошибки происходили случайным образом на сайте Заказчика с более чем 1000 клиентских ПК. Мне нужно быть уверенным в том, что обновления Flash происходят и что MSI-файлы случайно не удаляются, это не вариант. Тот факт, что сбои MSI происходят при каждой последующей загрузке, замедляя процесс загрузки, просто добавляет оскорбление травме.
Я не смотрел на MSI v11 в деталях. MSI v9 и v10 - это не что иное, как настраиваемое действие для запуска установщика Flash на основе EXE с аргументами командной строки. Я не был впечатлен в качество ССИ, потому что с помощью установщика Windows , чтобы просто запустить EXE-Based Setup не с помощью установщика Windows.