修复损坏的卸载:如果您在卸载 MSI 时遇到问题可以尝试Microsoft 最新的 FixIt 卸载工具。还有一个链接:在不使用 msiexec 的情况下从命令行卸载 MSI 文件(卸载 MSI 的多种不同方法)。
更新:
这个新的支持工具(此工具现在也已弃用)如果您有需要卸载的失效 MSI 软件包(而不是过时的、弃用的、不受支持的msizap.exe)。
有些人建议使用 saschabeaumont 链接到此处的工具:Uninstall without a MSI file。如果您尝试了它并且它有效,请务必让我们知道。该答案中的反馈表明它有效(到目前为止,我没有任何卡住的设置可供测试)。
为什么要求您提供原始安装介质?:
- 除非 MSI 本身设计不当或缓存的 MSI 丢失(请参阅下面的详细信息),否则卸载不需要原始 MSI 。
- 所有已安装的 MSI 文件都使用随机十六进制名称缓存在%SystemRoot%\Installer\*.*中。
- 缓存的 MSI 文件用于任何维护、修复和卸载操作 - 在绝大多数情况下足以卸载。
- 在某些情况下,这个缓存文件可能会丢失,然后在某些情况下根本不可能卸载(关于为什么会发生这种情况的一些理论-
MSI design errors
, anti-virus quarantining
, system restore
, tinkering
, developer system in erroneous state from development work
, etc...
)。请参阅下面的更多信息 - 以及强制卸载或注销产品的链接。
- 仅当需要将文件复制到磁盘(用于维护安装)时才需要原始源,或者 MSI 通过标准操作ResolveSource或自定义操作(不应该这样做)明确请求解析原始源在正确编写的包中- 我认为 MS Office 包在当天包含此 ResolveSource 错误,导致每个人都去寻找他们的安装 CD/DVD)。
- 在以前的 Windows 版本中,这个缓存的 MSI 被剥离了所有的 cab,因此只包含安装程序结构,没有文件。
- 从 Windows 7(MSI 版本 5)开始,MSI 文件现在被全尺寸缓存,以避免破坏文件签名,这会影响安装程序启动时的 UAC 提示(一个已知的 Vista 问题)。这可能会导致磁盘空间消耗的巨大增加(某些系统为几 GB)。查看这篇文章,尤其是底部的讨论以获取更多信息。
- 为防止缓存巨大的 MSI 文件,您可以在安装前运行软件包的管理员安装。这就是在托管网络中进行适当部署的公司将如何做事,它将去除 cab 文件并使用一个小的 MSI 文件和除此之外的文件创建一个网络安装点。请注意,这可能会在某些情况下产生UAC 提示,因为提取的 MSI 文件不再签名 - 这必须使用您的 SOE/桌面配置进行测试。
- 阅读我在此线程中的答案以获取有关管理员安装的完整描述:使用 msiexec /a 启动的管理安装的目的是什么? 或者这个类似但可能更容易理解的答案:admin install and its uses
- 在极少数情况下,缓存的 MSI(具有随机名称)可能会错误地丢失,然后卸载将要求原始 MSI 以完成卸载。这并不经常发生。它曾经是一个可以使用的情况
MsiZap.exe清理这样的安装,但这个工具已经过时、不推荐使用并且不受支持。不要使用它 - 与较新的 Windows 版本有太多不兼容,并且会产生新问题。也许尝试这个支持工具相反(也已弃用)。我现在可以建议的唯一选择是saschabeaumont 的这个答案。如果您尝试使用此工具,请告诉我们它是否适合您。如果您想找出可能导致缓存 MSI 丢失的原因,请尝试阅读此处的第 12 节:在不使用 msiexec 的情况下从命令行卸载 MSI 文件(简而言之,潜在原因包括干扰系统还原、防病毒和清理脚本,错误的手动调整,磁盘空间不足,停电,开发人员框调试错误,设计错误的带有重复包代码的MSI文件,失败的补丁等......许多理论,恐怕很少有确定性)。
- 作为最后的手段,您可以尝试系统还原(除非已完全或部分禁用)以返回到以前的安装状态,看看这是否解决了您的卸载问题(您可以在 youtube 或类似网站上找到此视频演示) .
- 请注意,系统还原可能会影响必须重新应用的 Windows 更新以及许多其他系统设置。我看到系统还原导致新的、无法解决的安装问题,但通常可以正常工作。显然不要为了好玩而使用该功能,这是最后的手段,最适合用于回滚刚刚安装的新驱动程序或设置,发现会立即导致问题和此类问题。你回去的时间越长,你为自己创造的返工就越多。很多不言而喻的东西,但我想它需要被提及。
- 由于我提到了系统还原,我想我应该提到Last Known Good Configuration 功能。此功能与卸载或系统还原无关,但它是最后一次有效或导致系统运行的引导配置。如果系统在引导过程中蓝屏或停止,它可用于让您的系统再次运行。这通常发生在驱动程序安装后。不过,这对修复失败的卸载无济于事(否则我会感到非常惊讶)。
相关答案:
除了这个答案,也许这篇关于卸载 MSI 包的各种方法的文章也很有趣。这是一篇颇受欢迎的文章,浏览量很高: