如何强制卸载通过 MSI 包安装的软件?

如何强制卸载通过 MSI 包安装的软件?

现在我的电脑上的 Silverlight 5.1.10411.0 (x64) 无法卸载,因为缺少 MSI 包,我该如何强制卸载它?我想这样做的原因是我无法重新下载 Silverlight 5.1.10411.0 (x64) 的安装,有一个 x86 版本,但没有 x64 版本 - 真可惜,微软,或者我,因为我无法使用 Google 找到它。或者如果有人能告诉我正确的下载包也是可以接受的。

答案1

现在是 2017 年,我找到了一种无需 msi 即可强制卸载应用程序的更好方法。

下载程序安装和卸载疑难解答替代链接)。

运行它 => 卸载 => 选择程序 => 完成

有了它,就无需触及注册表,也无需下载可能包含恶意软件的第三方工具。

答案2

这是我一直在写的一篇小文章,虽然它没有直接解决你的问题,但可能会有用。只要注意我提到的注册表项,你通常就可以删除它们,以及C:\Program Files\Application诱使安装程序认为

您想要了解的有关 Windows 中添加/删除程序的一切

您是否曾想过 Windows 如何呈现和使用添加/删除程序?或者您可能需要自己枚举这些值?以下是有关其工作原理、如何使用以及您可能会喜欢的一些巧妙技巧的一些有用信息。

在此处输入图片描述 您在“添加和删除程序”(XP、Vista、7 已确认)中看到的所有内容均写入注册表中HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\作为子键。 在此处输入图片描述

例如,我有一个 CutePDF Writer Installation 子项,其键和值如下:

现在,这里需要关注的是 UninstallString 值。当您在“添加/删除程序”中单击“卸载”时,它会调用此值并运行它。您可以手动执行相同操作,例如对于 CutePDF,如果您运行C:\Program Files (x86)\Acro Software\CutePDF Writer\Setup64.exe /uninstall从运行行或命令提示符,您将获得卸载程序。您还可以通过运行带有开关的命令来找到其他卸载选项/?,或者从 cmd 提示符运行以下命令:

Cd C:\Program Files (x86)\Acro Software\CutePDF Writer
Setup64.exe /?

请注意,这是一个不好的例子,因为开关没有返回任何内容!但通常这会起作用,或者您可以通过这种方式手动调用卸载程序。现在,让我们看看卸载列表的一个可能问题,您将看到一些文件以这种格式命名:{AFF7153F-C4AA-4C48-AEE9-8611D276CE86}

这就是 MSI 安装程序将其名称写入注册表的方式,它不是写入 EXE 安装程序写入的友好名称,而是写入其 GUID。

这其实不是什么问题,只是读取密钥有点困难。有几种方法可以读取这些密钥。一种是值名称 DisplayName,其值将更友好,即(在本例中)Quest ActiveRoles Management Shell for Active Directory (x64)。

另一种方法是 Windows 将 GUID 的“压缩和散列”版本写入注册表的另一部分。

要对值进行哈希处理,请取 GUID {AFF7153F-C4AA-4C48-AEE9-8611D276CE86} 并反转每组十六进制数字。AFF7153F 变为 F3517FFA,C4AA 变为 AA4C,并继续沿 GUID 向下移动,直到得到以下内容: {F3517FFA-AA4C-84C4-9EEA-68EC672D1168}

现在,删除 {、- 和 } 得到F3517FFAAA4C84C49EEA68EC672D1168。现在您有了压缩和散列的 GUID,可以将其与另一个密钥进行比较。

您现在应该能够在注册表中的以下位置找到这个新的 GUID: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\产品

果然,她就在那里: 密钥哈希

使用以下键: 在此处输入图片描述

再次,您可以在 ProductName 中查找应用程序的名称。

appwiz.cpl附加提示:您可以通过在开始搜索、运行行或命令提示符中输入内容来启动添加/删除程序。

相关内容