gpt4 book ai didi

windows - 以编程方式获取 Windows 中所有已安装更新的列表

转载 作者:行者123 更新时间:2023-12-04 17:44:41 29 4
gpt4 key购买 nike

我想以编程方式获取所有已安装 KB 的列表。这可能是 python 代码、WinAPI(我将从 python 调用)、运行另一个进程并解析其输出等。我感兴趣的是安全更新,我不关心是否返回其他更新。但是,我也想要软件更新,而不仅仅是 Windows - 控制面板的“已安装更新”窗口中显示的任何内容。同样重要的是,这段代码将在所有版本的 Windows 上运行,而不仅仅是一个版本(我不介意代码中有 if-else,对于不同的 Windows 版本有不同的行为——重要的是最终它能工作) .

我尝试了 wmic qfesysteminfo 和 PowerShell 的 get-hotfix,所有这些都只返回操作系统更新。

我自己有一个 Windows 10,我无法在注册表或文件系统中找到所有 KB 一起列出的地方。无法理解 Procmon 的输出(在记录打开“安装的更新”之后)——太大而且不够集中。似乎在不同的地方列出了不同的更新,但我无法轻易理解如何扩展/概括。

编辑:我找到了这段代码:https://codereview.stackexchange.com/questions/135648/find-installed-and-available-windows-updates

我尝试在我的计算机上运行它,它发现一些知识库既没有出现在我运行的命令行命令中,也没有出现在“已安装的更新”中。另一方面,也有一些 KB 没有出现在那里,但确实出现在其他位置..

谢谢!

最佳答案

qfe 的问题是较新的 Windows 版本具有与 CBS 无关的组件更新,因此 wmic path Win32_QuickFixEngineering 不会显示它们。

诀窍是对更新程序系统使用 COMObject。我编写了一个小程序包来完成这项工作,并通过 COM、WMI 和注册表检查更新。

通过 COM 与 Windows 更新对话提供了最多的信息。WMI给出了一些信息,registry当然只给出了KB和安装日期。

安装方式

pip install windows_tools.updates

使用

from windows_tools.updates import get_windows_updates

for update in get_windows_updates(filter_duplicates=True):
print(update)

重复过滤器已启用,因为 AV 定义更新显示很多。

关于windows - 以编程方式获取 Windows 中所有已安装更新的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698912/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com