【发布时间】:2015-10-18 16:57:52
【问题描述】:
我正在编写一个 C# 控制台应用程序,它收集有关机器的数据并将其写入外部数据库。需要收集的信息之一是有关已安装软件的信息。有一组我们想了解的特定软件。具体来说,安装了哪些、安装了哪些版本以及应用了哪些补丁。
通过查询注册表,我设法获取了有关安装了哪些软件以及它们是哪些版本的信息。然而,当谈到确定安装了哪些补丁时,我有点难过。
我知道,如果我访问Control Panel -> Programs -> View installed updates,我可以看到我为这些软件安装的补丁(具体来说,它给了我确切的补丁号 - 即补丁 21)。所以,我想要类似的东西。我找到了 WUApiLib 并认为它可以解决我的问题,但是当我查询更新历史记录时,返回的只是 Microsoft 对操作系统、.NET、Visual Studio 等的更新列表。没有提到我的补丁应用于我们的软件。
我对补丁的工作原理不是很熟悉,但我相信补丁使用 msp 文件格式,所以我认为这些信息应该由 Windows 记录在某个地方。控制面板如何获取它?我在哪里可以得到它? HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall 下的注册表项根本没有提到补丁。
【问题讨论】: