通过 GPO 更新 MSI 时出现问题(overwrite/uninstall 失败)

Issues updating an MSI through GPO (failures to overwrite/uninstall)

提前感谢您考虑这个问题。如果存在类似的问题,我找不到它。

问题:我们公司将应用程序打包到 MSI 中。当安装在任何 GPO 之外时,此 MSI 会正确更新,阻止降级尝试(或从较高版本移动到较低版本),并且无论这些版本是多久以前的,卸载应用程序的以前版本都不会遇到问题 created/installed.例如,我们可以安装 1.2.3 版本,然后安装 2.3.4 版本,应用程序将正常安装,没有问题。但是,我们与一位使用 GPO 的客户合作,将我们的应用程序部署到数百台 PC。每次我们提供应用程序的更新版本时,都会指明以下内容:

在通过 GPO 安装我们应用程序的先前版本的任何计算机上,无论先前版本是什么,更新都会成功安装而不会出现问题。

在手动安装应用程序的计算机上(在 GPO 之外),并尝试通过 GPO 更新应用程序 - 除了旧版本之外还安装了应用程序,或者保留了注册表项到以前版本的应用程序,应用程序无法 open/run 正确。在这种情况下,必须手动删除注册表项,然后从干净的机器上再次尝试安装。

我们所知道的是,在最初通过 GPO 安装应用程序的任何计算机上,更新应用程序都没有问题。在应用程序最初未安装 GPO 的每台计算机上,通过 GPO 更新失败并出现上述问题之一。

我的问题是:部分通过 GPO 部分通过外部处理安装是否存在技术问题? GPO 是否需要对应用程序的整个生命周期负责?或者在手动安装原始版本(在 GPO 之外)的机器上以及最初从 GPO 内安装时更新应用程序是否合理?

我们知道的一个解决方案是简单地让所有计算机管理应用程序生命周期(因为我们知道更新已经在该环境中工作),但这意味着许多计算机需要删除手动安装的版本手动 - 然后通过 GPO 正确处理安装,这是一项广泛的工作。

我们非常欢迎任何解决方案、正式阐明适当管理或期望的技术文档参考,或信息链接。我们的研究表明,在 GPO 内管理整个应用程序生命周期是 "best" - 但我目前还无法确定是否 100% 有必要这样做。

期待任何帮助。如果需要任何进一步的技术细节来帮助问题的可行性,请不要犹豫,索取这些细节。

如果您最终在控制面板中安装了两个版本,那么所有其他事情都是正确的,最可能的解释是您将每用户安装升级为每台机器安装(反之亦然)。在 GPO 世界中,这与将其分配给用户或计算机有关,诸如此类。这很容易通过获取详细日志并检查 FindRelatedProducts 操作来验证是否已找到另一个产品但在不同上下文中的指示。

当您一直处于 GPO 模式时,我假设每个模式(无论是每个用户还是每个机器)都是一致的,因此升级总是有效,但它们不能跨上下文工作。

我相信 GPO 在大多数情况下会抑制 UI,而 UI(或 UI 序列)有时会在每个 user/per 机器上设置。这可能是导致它的其他原因,具体取决于 GPO 向计算机或用户发布的方式。