如何找到 MSI 包的 GUID?我想使用以下方法编写脚本来删除大量桌面上的程序:
msiexec.exe /x产品代码
为什么这对“添加/删除程序”中列出的任何应用程序不起作用?
答案1
更新:请尝试以下 stackoverflow.com 答案:如何找到已安装的 MSI 设置的产品 GUID?或者甚至是这个:从 MSI 文件中查找 GUID 。
这Windows SDK工具虎鲸将允许您打开并查看 MSI 文件中的所有表。打开 MSI 后,您可以导航到属性表并查找“产品代码”条目,也可以选择“查看 => 摘要信息...”并查找“软件包代码”条目。软件包或产品 guid 都可用于卸载。
参见Orca 屏幕截图如何在 MSI 中查找产品代码:WiX - 在多实例安装上进行重大升级
还有其他方法查找 GUID:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
看来您仍然必须下载 MSI SDK 才能获得 Orca。如果您无法访问 Orca 并且懒得下载 SDK,那么任何能够读取 MSSQL 数据库文件(com 结构存储文件)的查看器都应该能够打开 MSI 文件并查看其内容。在查看器中打开 MSI 之前,请先复制一份,然后打开副本。以确保万无一失。打开后,导航到属性表并查找产品 GUID。
更新:免费 MSI 查看器列表(底部)。
另请查看这些帖子stackoverflow.com了解如何通过卸载电源外壳:
答案2
它是一个注册表项:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{<guid>}
或者如果平台是 x64 并且应用程序是 32 位:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{<guid>}
答案3
答案4
在 Powershell 中,你可以查询 wmi 以了解安装情况
$program = Get-WmiObject -class Win32_Product | ? {$_.Name -eq "Java Auto Updater"}
$program.IdentifyingNumber #IdentifyingNumber is the guid
修复示例
msiexec /fa $program.IdentifyingNumber