我通过软件安装策略部署了 Flash Player。如何升级?

我通过软件安装策略部署了 Flash Player。如何升级?

我有一台 Windows Server 2008 计算机作为我的 DC。今年早些时候,我创建了一个软件安装 GPO 来部署 Adob​​e Flash Player 插件 MSI。我将策略分配给计算机,大约一半运行 Windows XP x86,另一半运行 Windows 7 x64。一切都像钟表一样运转。

当我创建软件安装策略时,我通过在 Orca 中编辑 MSI 禁用了 Flash Player 插件的自动更新功能。我这样做是因为我希望我的所有机器都运行完全相同版本的插件。

现在,已经过去了一段时间,Flash Player 插件的更新版本已经发布。是时候推出更新版本的插件了。我已经有了新的 MSI,但我不知道下一步该怎么做。

  • 我看到了软件安装 GPO 中的升级选项卡,但那里的所有内容都像是用于更大的主程序的附加组件,而不是用于随着时间推移发布的更新。
  • 我读到过,最好使用新的 MSI 创建新的软件安装策略,撤销旧 GPO,然后分配新 GPO。我觉得,随着时间的推移,我最终会得到比活跃策略更多的撤销策略。
  • 我还读到过,有些人用新 MSI 替换旧 MSI 并直接告诉 GPO 重新部署就成功了。这似乎是一种后门方法,只会给我带来麻烦。

简而言之,通过组策略推出新版本的正确方法、最佳实践方法或首选方法是什么?

答案1

我已经使用 Flash Player(和其他软件)多次执行此操作。您要执行的操作是:

  • 使用 ORCA 对其进行任何您想要的自定义编辑,然后将其保存为变换(或将其保存为全新的 MSI,无论哪种方式适合您)。

  • 将新的 MSI(和转换)放在您的软件部署共享上。

  • 将此软件(和转换)添加到您现有的策略中。它将自动地将其检测为对以前版本的 Flash Player 的升级。如果您之前是这样配置的(x86:插件和 ActiveX,x64:插件和 ActiveX),则可以在同一策略中添加所有版本,或者您可以继续使用您已有的任何 GPO 布局。只需确保您在策略中添加了相同的内容,它就会自动将其检测为升级。

  • 如果出于某种原因,它们没有被自动检测为升级,您可以在策略中自行设置。这是处理这种情况的正确方法。

这确实没有什么特别的。

您应该考虑的一件事是,每次有新版本时,您都可以创建一个 mms.cfg 文件,而不是使用 ORCA 编辑 MSI如此处所述使用 Flash Player 首选项。此文件在升级过程中不会被触及,因此您只需推出此文件一次,然后就可以部署原始 Flash Player 安装。我已使用组策略文件首选项和项目级别定位将其放在混合环境中 x86 和 x64 计算机上的正确位置。

答案2

我认为升级是实现此目的的最佳方法。我过去曾广泛使用过此方法,没有出现任何问题。

将新的 MSI 添加为组策略对象中的另一个包,并选择高级部署方法。它应该被检测为对之前部署的 Flash Player 的升级。如果不是,您可以手动将其添加到更新选项卡。

答案3

我有过可怕的一些 v9、v10 和 v11 Adob​​e Flash MSI 无法正确卸载或升级,导致 PC 上的 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})。

  • 使用 Adob​​e 提供的卸载程序 EXE 静默删除所有当前版本的 Flash

  • 使用当前 Adob​​e 提供的 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。无法删除旧版本的 Adob​​e Flash Player 11 ActiveX。请联系技术支持小组。系统错误 1612。”

  • “错误 2753:文件‘installax.exe’未标记为安装”

对我来说,压垮骆驼的最后一根稻草是看到这些错误随机发生在拥有 1,000 多台客户端 PC 的客户站点中。我需要确保 Flash 更新正在进行,并且 MSI 随机无法卸载不是一个选择。事实上,MSI 故障在每次后续启动时都会发生,从而减慢了启动过程,这只会雪上加霜。

我还没有详细研究过 v11 MSI。v9 和 v10 MSI 只不过是一个自定义操作,用于使用命令行参数执行基于 EXE 的 Flash 安装程序。我对 MSI 的质量并不满意,因为使用 Windows Installer 运行基于 EXE 的安装程序并不使用Windows 安装程序。

答案4

如果您将较新版本的 flash.msi 添加到相同的GPO,Windows 将检测到这是对上一个 GPO 的更新(较旧的版本列在“更新”选项卡中)。它还会知道它可以在旧版本上安装新版本,而无需先删除旧版本(更新选项卡中的复选框已选中)。

这一神奇之处是通过 Adob​​e 放入 msi 文件中的 GUID 实现的。

您可以向同一个 GPO 添加任意数量的新 flash.msi,但最终也可以删除旧的 flash.msi。

一个例外是版本 11.4.402.278,因为在这种情况下,Adobe 在某些地方输入了错误的版本号,因此无法正确更新自身。

因此,我强烈建议始终有一个仅适用于测试机器的单独 GPO,并在那里尝试每个新版本:升级、降级、升级。

请注意,此魔法并不适用于所有 msi 文件。然后您必须手动将旧文件添加到更新选项卡中的列表中,然后您应该取消选中该复选框。

相关内容