Назад | Перейти на главную страницу

Я развернул Flash Player с помощью политики установки программного обеспечения. Как обновить?

В качестве DC у меня есть машина с Windows Server 2008. Ранее в этом году я создал объект групповой политики установки программного обеспечения для развертывания подключаемого модуля Adobe Flash Player MSI. Я назначил политику компьютерам, половина из которых работает под управлением Windows XP x86, а другая половина - под управлением Windows 7 x64. Все работает как часы.

Когда я создавал политику установки программного обеспечения, я отключил функцию автоматического обновления плагина Flash Player, отредактировав MSI в Orca. Я сделал это, потому что хотел, чтобы на всех моих машинах работала одна и та же версия плагина.

По прошествии некоторого времени была выпущена новая версия плагина Flash Player. Пришло время выпустить обновленную версию плагина. У меня уже есть новый MSI, но я не знаю, что делать дальше.

Короче говоря, каков правильный, рекомендуемый или предпочтительный способ развертывания новой версии с помощью групповой политики?

Я делал это много раз с помощью Flash Player (и другого программного обеспечения). Что вы хотите сделать:

  • Используйте ORCA, чтобы отредактировать его с любыми настройками, которые вы хотите, и сохранить его как преобразования (или сохранить его как совершенно новый MSI, что вам подходит).

  • Поместите этот новый MSI (и преобразования) в общую папку развертывания программного обеспечения.

  • Добавьте это программное обеспечение (и преобразования) в существующую политику. Так и будет автоматически определить его как обновление предыдущих версий Flash Player. Вы можете добавить все версии в одну и ту же политику, если это так, как вы ее ранее настроили (x86: плагин и ActiveX, x64: плагин и ActiveX), или вы можете продолжить с любым уже имеющимся макетом GPO. Просто убедитесь, что вы добавляете аналогичные в свою политику, и она автоматически определит их как обновления.

  • Если по какой-либо причине они не определяются автоматически как обновления, вы можете установить это самостоятельно в политике. Это правильный способ справиться с этой ситуацией.

В этом нет ничего особенного.

Одна вещь, о которой вы должны подумать, - вместо того, чтобы редактировать MSI с помощью ORCA каждый раз, когда появляется новая версия, вы можете создать файл mms.cfg как указано здесь с настройками Flash Player. Этот файл не будет изменяться при обновлении, поэтому вам нужно только один раз отправить этот файл, а затем вы можете развернуть обычную установку Flash Player. Я использовал настройки файлов групповой политики с таргетингом на уровень элементов, чтобы поместить это в нужное место на машинах x86 и x64 в смешанной среде.

у меня было ужасающий количество, казалось бы, случайных сбоев (см. мое примечание в конце этого ответа) с некоторыми из MSI Adobe Flash 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-AD F0484026E4A2}).

  • Использует предоставленный Adobe деинсталлятор EXE для автоматического удаления всех текущих версий Flash.

  • Использует текущий установщик EXE, предоставленный Adobe, с -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 с аргументами командной строки. Меня не впечатлило качество MSI, потому что использование установщика Windows для запуска вашей установки на основе EXE не с помощью Установщик Windows.

Я считаю, что обновление - лучший метод для этого. В прошлом я довольно широко использовал этот метод без проблем.

Добавьте новый MSI в качестве другого пакета в объект групповой политики, выбрав расширенный метод развертывания. Он должен быть определен как обновление ранее развернутого Flash Player. Если это не так, вы можете добавить его на вкладку обновлений вручную.

Если вы добавите более новую версию flash.msi в тем же GPO, Windows определит, что это обновление предыдущего (более старое указано на вкладке «Обновления»). Он также будет знать, что он может установить новый поверх старого, не удаляя сначала старый (установлен флажок на вкладке обновления).

Это волшебство стало возможным благодаря идентификаторам GUID в msi-файле, которые вставляет Adobe.

Вы можете добавить любое количество новых flash.msi в один и тот же объект групповой политики, но вы также можете со временем удалить старые.

Единственным исключением была версия 11.4.402.278, потому что в этом случае Adobe в некоторых местах указала неправильный номер версии, поэтому она не смогла правильно обновить себя.

По этой причине я настоятельно рекомендую всегда иметь отдельный объект групповой политики, который применяется только к тестовой машине, и пробовать его для каждой новой версии: обновление, возврат к предыдущей версии, обновление.

Обратите внимание, что это волшебство работает не со всеми файлами msi. Затем вы должны вручную добавить старые в список на вкладке обновлений, а затем оставить флажок снятым.