我正在编写一个C#控制台应用程序,它收集有关计算机的数据并将其写入外部数据库。需要收集的信息之一是有关所安装软件的信息。我们有一套我们想知道的特定软件。具体是哪些安装,安装了哪些版本,以及它们已经应用了哪些补丁。
通过查询注册表,我已设法获取有关安装了哪些软件以及它们是哪些版本的信息。但是,在确定安装了哪些补丁时,我有点难过。
我知道如果我去Control Panel -> Programs -> View installed updates
我可以看到我为这些软件安装的补丁(具体来说,它给了我确切的补丁号码 - 即补丁21)。所以,我想要类似的东西。我找到了WUApiLib,并认为这将是我的问题的答案,但当我查询更新历史记录时,所有返回的是Microsoft,OS,Visual Studio等的Microsoft更新列表。没有提到补丁我适用于我们的软件。
我不太熟悉补丁是如何工作的,但我相信补丁使用msp文件格式,所以我认为这些信息应该由Windows在某处记录。控制面板如何获得它?我可以在哪里获得它? HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall
下的注册表项根本没有提到补丁。
答案 0 :(得分:1)
所以,经过一些挖掘后,我发现注册表的另一部分列出了我需要的所有信息。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
其中包含已安装的软件的名称和版本(在<GUID>\InstallProperties
下)以及为每个软件安装的补丁(在<GUID>\Patches
下)