如何检查更新 KB4474419(SHA2 支持)是否安装在旧 Windows 机器上,如果没有安装在后台?

How to check if Update KB4474419 (SHA2 support) is installed in old Windows machine, and install it in the background if its not?

我想支持较旧的 Windows 版本,但未更新的 7 和 pre 7 操作系统不支持 sha256 代码签名,因此它们无法检测到 executable/file 已正确进行数字签名。

我的问题是:

  1. 我如何检查系统是否安装了此更新 (KB4474419),或者基本上检查它是否支持 sha256,而不会导致误报(例如检测新的 windows 10 台机器作为没有错误地更新)

  2. 如何在用户不知情的情况下在后台安装此更新,并检查是否安装成功(以查看我们是否应该重启机器,以防成功)?

(我想用 c/c++ 来实现它,所以本机 windows API 可以解决这个问题)

WUA 定义可从 Visual Basic、Visual Basic Sc​​ripting Edition (VBScript)、JScript 以及 C 和 C++ 访问的接口和 objects。

我建议您可以尝试使用 wuapi.h header。 header 由 Windows 更新代理 API 使用。还有一些 COM 接口可以从 C++ 使用。