【问题标题】:C# Querying Software Update HistoryC# 查询软件更新历史
【发布时间】: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 下的注册表项根本没有提到补丁。

【问题讨论】:

    标签: c# windows com registry


    【解决方案1】:

    所以,经过一番挖掘,我发现了注册表的不同部分,其中列出了我需要的所有信息。

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
    

    这包含安装的软件的名称和版本(在<GUID>\InstallProperties 下)以及为每个软件安装的补丁(在<GUID>\Patches 下)

    【讨论】:

      猜你喜欢
      • 2017-05-11
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多