卸载失效的安装程序

前言

对于传统的 Win32 应用,他们的安装程序一般是 .MSI,或是 .EXE 里套 .MSI 安装程序,这便于 Windows 管理所有的应用程序。但是,若在安装缓存丢失或卸载不正确的情况下,会导致新的/旧的安装程序无法继续进行

准备工具

  1. MicrosoftProgram_Install_and_Uninstall.meta.diagcab

从列表移除

运行 MicrosoftProgram_Install_and_Uninstall.meta.diagcab,并根据需要选择“安装”或“卸载”(不明可以选择“卸载”)

“安装”或“卸载”

在列表中,找到要卸载的项目,点击“下一步”
最后,选择“是,尝试卸载”,即可启动安装程序,并清理大部分相关项目

卸载并清理

如果遇到“未修复”的错误,可能是相关的依赖项未被清理,或正在运行,请尝试使用干净启动,请参阅:《如何在 Windows 中执行干净启动 | Microsoft Support
卸载完成后,重启 Windows 即可

使用 GUID 移除

运行 MicrosoftProgram_Install_and_Uninstall.meta.diagcab,并根据需要选择“安装”或“卸载”(不明可以选择“卸载”)

“安装”或“卸载”

在列表中,选择“未列出”,点击“下一步”
请参阅:《注册表查找 GUID》或《安装程序缓存目录查找 GUID》,以获取目标应用程序的 GUID,填入到下方的文本框,并点击“下一步”

输入产品代码

最后,选择“是,尝试卸载”,即可启动安装程序,并清理大部分相关项目

卸载并清理

如果遇到“未修复”的错误,可能是相关的依赖项未被清理,或正在运行,请尝试使用干净启动,请参阅:《如何在 Windows 中执行干净启动 | Microsoft Support
卸载完成后,重启 Windows 即可

查找 GUID

注册表查找 GUID

卸载程序的注册表路径如下

所有用户的 64 位应用程序(包括 32 位系统的 32 位应用程序):

1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

64 位系统上所有用户的 64 位应用程序:

1
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

当前登录用户安装的程序:

1
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Windows Installer(最全,但是不带花括号 {}

1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products

在注册表条目中,逐一寻找目标安装程序的 GUID(项名称即为 GUID,不包括花括号外的内容)
例如,Microsoft Visual C++ 2022 X64 Additional Runtime - 14.50.35719 的项名称为 {AECD4ED0-8A3B-41E9-92D1-6BEE0374CCAF},则 GUID 则为 {AECD4ED0-8A3B-41E9-92D1-6BEE0374CCAF}
InstallSourceModifyPathUninstallString 里花括号的内容也是 GUID)

注册表编辑器下的 GUID

安装程序缓存目录查找 GUID

安装程序缓存目录:

1
%ProgramData%\Package Cache

(一般为 C:\ProgramData\Package Cache

1
%SystemRoot%\Installer

(一般为 C:\Windows\Installer)下也有缓存,但是一般为精简过的安装缓存

在文件夹列表中,逐一寻找目标安装程序的 GUID(文件夹名称即为 GUID,不包括花括号外的内容
例如,vc_runtimeMinimum_x64.msi 的文件夹名称为 {61B44572-8722-4DAF-8ACF-8E742D30BCC5}v14.50.35719,则 GUID 则为 {61B44572-8722-4DAF-8ACF-8E742D30BCC5}

ProgramData 下的 GUID

对于部分安装程序,可能会在其他路径下存放有安装缓存
如 VMware Workstation 25H2u1 及以前的版本就存放于:

1
%CommonProgramFiles(x86)%\VMware\InstallerCache

(一般为 C:\Program Files (x86)\Common Files\VMware\InstallerCache

VMware Workstation 安装缓存

而 VMware Workstation 26H1 起,存放于

1
%CommonProgramFiles%\VMware\InstallerCache

后记

  1. COM 类对象和 CLSID - Win32 apps | Microsoft Learn