首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >API/WMI查询系统上安装的修补程序和更新的完整列表?

API/WMI查询系统上安装的修补程序和更新的完整列表?
EN

Stack Overflow用户
提问于 2012-09-07 15:38:01
回答 2查看 7.6K关注 0票数 4

以前,如何查询安装在Windows系统上的修补程序列表是discussed的,建议使用WMI和类Win32_QuickFixEngineering来提供信息。然而,MSDN指出,从Vista开始,这个特定的类只返回热修复,而不是通过其他方式安装的更新。

An older question讨论了如何使用这个类来获取已安装的更新,这表明作者对使用它也不满意,因为我上面描述了一些限制。不幸的是,正如对接受答案的评论指出的那样,使用Windows Update Agent API的替代解决方案即使在随后删除了某个修补程序之后,仍然会指示该修补程序已经安装(它查询的是安装历史记录,而不是当前安装的更新)。

有谁知道如何在C#中(通过WMI或其他API)获得系统上安装的更新和热修复的完整列表,这不会排除安装更新的一些方法,也不会返回随后删除的更新?从本质上讲,我想要的数据集与“查看已安装的更新”窗格下的“程序和功能”中的数据集是相同的。

很抱歉,如果这个讨论应该在之前关注这个问题的任何一个相关问题上进行,但是以我目前的声誉,我唯一能对这两个问题做出贡献的方式就是提交一个新的答案,而这绝对不是提出像这样的进一步问题的正确方式。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-19 19:26:33

在缺乏可靠和完整的编程方法来实现这一点的情况下,我最终使用了wmic qfe命令。

票数 0
EN

Stack Overflow用户

发布于 2012-09-11 03:16:08

据我所知,任何已安装和可以卸载的东西都必须在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中注册,看起来子项名称KB999999是为系统更新(修补程序或服务包)保留的。更新的内容在名为ParentKeyName的子项中将有一个REG_SZ值,该子项链接到它更新的注册表项。

例如,我有SQL Server2008的Service Pack1,所以我在注册表中有一个子项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB968369。它有一个名为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB968369\ParentKeyName的REG_SZ值,其值为"Microsoft SQL Server10 Release“。因为我已经安装了SQL Server2008(因为KB968369是它的SP ),所以我还有一个HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft SQL Server 10 Release,它是ParentKeyName链接。

您可以根据ReleaseType REG_SZ值判断更新的类型。例如,KB968369安装的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB968369\ReleaseType值为"ServicePack“

我假设只有可以卸载的更新是在Uninstall密钥下注册的。还有HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches注册表项(在不同的地方引用,如这里:http://support.microsoft.com/kb/971187 ),它似乎详细介绍了各种系统更新。

显然,还有一个可以实例化和查询的Microsoft Update对象。下面是一个详细的例子:http://msmvps.com/blogs/athif/archive/2005/11/20/76035.aspx

我不确定这是否完全满足了你的需要;但这是我多年来学到的一些东西……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12313795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档