【问题标题】:Uninstall a program installed via MSI - Only know the install location卸载通过 MSI 安装的程序 - 只知道安装位置
【发布时间】:2016-06-28 21:21:15
【问题描述】:

我知道通过 MSI 安装的程序的安装位置。我想写一个脚本来删除它。我不知道 GUID,因为它经常更改。我该如何实现这个目标?

我查看了安装工具的command line options,但没有看到任何可以让我指定安装位置来选择产品的内容。

【问题讨论】:

  • 假设您可以为此编写一些代码,您可以尝试我介绍的技术over here

标签: windows-installer uninstallation


【解决方案1】:

您需要找到 UpgradeCode(查看该属性的安装日志文件)。

从那里,使用MsiEnumRelatedProducts 迭代产品的所有实例。绝大多数产品不支持多实例安装,因此缓冲区中应该只返回一个产品代码。

知道 ProductCode 后,您就可以尽情msiexec /x {PRODUCT-GUID}

如果您不熟悉 C++,可以在 PowerShell 扩展和 C# 库中找到 MsiEnumRelatedProducts 的不同实现,仅举几例。

【讨论】:

    【解决方案2】:

    您可以像这样找到产品代码:How can I find the product GUID of an installed MSI setup? 并使用以下命令调用卸载:msiexec.exe /x {product-guid-here}

    卸载 MSI 文件的方法有很多种,这里有 13 种不同的方法:Uninstalling an MSI file from the command line without using msiexec查看第 5 节,了解使用 PowerShell 按产品名称卸载的方法。

    这是一个通过从注册表中读取产品详细信息来卸载的 VBScript:http://www.symantec.com/connect/downloads/uninstall-application-using-guid-registry

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多