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


8

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

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

现在,已经过去了一段时间,并且已经发布了Flash Player插件的较新版本。现在是我推出插件的更新版本的时候了。我已经有了新的MSI,但是我对下一步的工作一无所知。

  • 我在“软件安装GPO”中看到了“升级”选项卡,但其中的所有内容都将用作较大主程序的附件,而不用于随时间推移发布的更新。
  • 我已经读到,最好是使用新的MSI创建新的软件安装策略,撤销旧的GPO,然后分配新的GPO。我觉得,随着时间的流逝,我将获得比积极政策更多的被撤销政策。
  • 我还读到有些人通过将旧的MSI替换为新的MSI并只是告诉GPO重新部署而取得了成功。这似乎是一种后门方法,只会使我陷入麻烦。

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

Answers:


16

我已经使用Flash Player(和其他软件)做了很多次。您想要做的是:

  • 使用ORCA可以根据需要进行任何自定义编辑它,并将其保存为转换(或将其保存为全新的MSI,无论哪种方法都适用)。

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

  • 将此软件添加(并转换)到您现有的策略中。它会自动将其检测为对Flash Player早期版本的升级。如果以前配置过所有版本(x86:插件和ActiveX,x64:插件和ActiveX),则可以在同一策略中添加所有版本,也可以继续使用已有的GPO布局。只要确保您在策略中添加了“按原样”,它就会自动将它们检测为升级。

  • 如果由于某种原因未将其自动检测为升级,则可以在策略中自行设置。这是处理这种情况的正确方法。

真的没有什么特别的。

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


5

我相信升级是这样做的最佳实践方法。过去,我已经广泛使用了这种方法,而没有出现问题。

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


5

我有可怕与一些V9,V10的看似随机的故障数(见我在这个答案的结论注),和V11的Adobe Flash MSI的不卸载或升级不当,而使PC上的MSI数据库的状态这让我很警惕。我最终不得不使用一个启动脚本:

  • 检查HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion注册表值以查看当前安装的版本是否为最新版本(WOW6432NODE如有必要,将a添加到该路径中),如果当前版本为最新,则停止运行

  • 使用旧的,不受支持的,现在无法使用的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的问题主要是:

  • “ Adob​​e Flash Player 11 ActiveX-错误1714。无法删除旧版本的Adobe Flash Player 11 ActiveX。请与您的技术支持组联系。系统错误1612。”

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

对我来说,打断骆驼背的稻草在带有1000多个客户端PC的客户站点中随机看到这些错误。我需要确保Flash更新正在发生,并且没有MSI随机无法卸载的选择。MSI故障会在随后的每次引导中发生,从而减慢了引导过程,这一事实增加了对伤害的侮辱。

我没有详细介绍v11 MSI。v9和v10 MSI只不过是一个自定义操作,用于使用命令行参数执行基于EXE的Flash安装程序。MSI的质量令我印象深刻,因为使用Windows Installer仅运行基于EXE的安装程序并不使用 Windows Installer。


更高版本也存在相同问题(14-16)。我花了多个小时试图找出一个损坏的MSI,最后通过删除并下载损坏的版本的新MSI文件来整理所有内容。困难的是,由于损坏的MSI无法安装,原始安装被隐藏了。必须先执行清除程序(或通过GPO清除的脚本)以删除失败的安装,然后才能安装新软件包而不会出现错误。
fyrye

1
@fyrye-几年前,我停止使用基于MSI的Flash发行版,因为它们是如此糟糕。我选择对msizap失败的安装使用脚本。
埃文·安德森

@Evan Anderson,我在Flash Player升级方面也有同样的经验。与您描述的事件日志条目相同的大量错误和故障。最近,我使用的过程是删除旧版本,然后从下一个提示中选择“立即卸载”。然后,我将新版本添加到同一GPO。我想知道是否可以将新版本作为升级版本更好地工作。同时,我想问一下您是否在Windows 7计算机上使用了MSIZAP?我认为Microsoft不支持它,但是如果它在大多数情况下都能工作,我将尝试一下。
satchel_74 2015年

1
@ satchel_74-从历史上看,我一直非常警惕GPO中的“立即卸载...”设置,因为基本上,您是将无法使用支持的工具删除的卸载指令放入GPO中。我在没有问题的32位Windows 7计算机上使用了MSIZAP。我还没有对其进行广泛的测试,老实说,我不确定在64位计算机上的行为。(我不相信曾经有过x64版本的MSIZAP。)这是我尝试尽可能避免使用的工具。
埃文·安德森

1

如果将Flash.msi的较新版本添加到同一 GPO,则Windows将检测到这是对前一个版本的更新(较旧的版本在“更新”选项卡中列出)。它还将知道可以在不删除旧版本的情况下将新版本安装在旧版本上(无需选中更新选项卡中的复选框)。

msi文件中的GUID通过Adobe放入了此魔术。

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

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

因此,我强烈建议始终有一个单独的GPO,该GPO仅适用于测试计算机,并尝试使用每个新版本:升级,降级,升级。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.