我有一个Windows Server 2008机器作为我的DC。 今年早些时候,我创build了一个软件安装GPO来部署Adobe Flash Player插件MSI。 我将策略分配给计算机,大约一半运行Windows XP x86,另一半运行Windows 7 x64。 这一切都像发条一样工作。
当我创build软件安装策略时,我通过编辑Orca中的MSI来禁用Flash Player插件的自动更新function。 我这样做是因为我想让所有的机器运行完全相同的插件版本。
现在,一段时间过去了,Flash Player插件的更新版本已经发布。 是时候推出插件的更新版本了。 我已经有了新的微星,但是我接下来该怎么办了。
简而言之,通过组策略推出新版本的正确,最佳实践或首选方法是什么?
我用Flash Player(和其他软件)做过这么多次。 你想要做的是:
使用ORCA编辑它与您想要的任何定制,并将其保存为一个转换(或保存为一个全新的MSI,无论适合你)。
将新的MSI(和转换)放在您的软件部署共享上。
将此软件添加到您的现有策略中(并进行转换)。 它会自动将其检测为升级到以前版本的Flash Player。 如果您之前configuration了相同的策略(x86:插件和ActiveX,x64:插件和ActiveX),则可以将所有版本添加到同一个策略中,或者您可以继续使用已有的任何GPO布局。 只要确保您在自己的政策中添加了喜欢的function,并且会自动将其检测为升级。
如果出于任何原因,不会自动将其检测为升级,则可以自行将其设置在策略中。 这是处理这种情况的正确方法。
这真的没有什么特别的。
有一件事情你应该考虑的是,每当有新版本的时候,用ORCA来编辑MSI,你可以用Flash Player的首选项创build一个mms.cfg文件。 这个文件在升级时不会被触及,所以你只需要将这个文件推出一次,然后你就可以部署一个vanilla Flash Player安装。 我已经使用组策略文件首选项和项目级别定位将它放在混合环境中的x86和x64机器上的正确位置。
我相信升级是这样做的最佳实践方法。 过去,我已经相当广泛地使用了这个方法,没有任何问题。
添加新的MSI作为组策略对象中的另一个包,select高级部署方法。 它应该被检测为升级到以前部署的Flash Player。 如果不是,您可以手动将其添加到更新选项卡。
我有一些看似随机的故障(见本答复结束时的注释),其中一些v9,v10和v11 Adobe Flash MSI没有正确卸载或升级,使PC上的MSI数据库处于一种状态这让我很担心。 我已经结束了诉诸使用启动脚本:
检查HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersionregistry值,查看当前安装的版本是否最新(如有必要,将WOW6432NODE添加到该path中),并WOW6432NODE版本是否最新
使用旧的,不受支持的,现在接近不可能的msizap.exe实用工具从“当天返回”中删除已知故障的MSI(包括{2BD2FA21-B51D-4F01-94A7-AC16737B2163},{B7B3E9B3-FB14-4927 -894B-E9124509AF5A}和{FA1D6742-0515-4A94-AD5D-F0484026E4A2})。
使用Adobe提供的卸载程序EXE以静默方式删除任何当前版本的Flash
使用当前Adobe提供的带有-install activex参数的EXE安装程序(我只在大多数站点上安装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故障发生在每次后续启动的事实,减慢启动过程,只是增加了伤害。
我没有详细看过v11 MSI。 v9和v10 MSI只不过是一个用命令行参数执行基于EXE的Flash安装程序的自定义操作。 我对MSI的质量并没有留下深刻的印象,因为使用Windows Installer来运行基于EXE的安装程序不使用 Windows Installer。
如果将新版本的flash.msi添加到同一个 GPO,则Windows将检测到这是对上一版本的更新(较旧的版本在“更新”选项卡中列出)。 它也知道它可以安装新的,而不是先删除旧的(更新选项卡中的checkbox被选中)。
这个魔术是由MSI文件中的GUID所提供的,这些GUID由Adobe提供。
您可以将任意数量的新flash.msi添加到同一个GPO,但最终也可以删除旧的。
一个例外是版本11.4.402.278,因为在这种情况下,Adobe在某些地方放置了错误的版本号,所以没有正确更新自己。
由于这个原因,我强烈build议总是有一个单独的GPO,只适用于testing机器,并尝试每个新版本:升级,降级,升级。
请注意,这个魔术不适用于所有的msi文件。 然后,您必须手动将旧的添加到更新选项卡中的列表,然后您应该不选中checkbox。