0

我将使用 wuapi 检测我的操作系统更新状态。

使用 IUpdateSearcher::Search 我可以做到,但是这个功能只能在线使用。

离线时我也使用 IUpdateServiceManager::AddScanPackageService 函数来获取状态,但是这个函数需要 wsusscn2.cab 文件,而且这个文件太大了。

离线时是否有任何其他 wuapi 来检测 Windows 更新状态,或者是否有任何注册表或系统文件来检测它?

谢谢你的帮助...

4

1 回答 1

1

即使离线,您也可以使用 Windows Update API 搜索来查看需要哪些更新。您可以在调用 Search 或 BeginSearch 之前将 IUpdateSearcher 对象的Online属性设置为 false。这样做将执行离线扫描,其中 WU 只是重新评估它已经知道的更新。这将离线工作,也将返回更快的结果。您应该注意两个缺点:

  • 脱机扫描显然不会返回自上次计算机进行联机扫描以来发布的任何新的或修改的更新的信息。
  • 如果自计算机上次进行联机扫描后硬件或软件配置发生了更改,则您的脱机扫描可能不会返回有关由于配置更改而适用的更新的信息,即使这些更新在执行此操作时已经发布。最后一次在线扫描。举个简单的例子,如果你安装了 Office,你的离线扫描在你下次进行在线扫描之前不会返回 Office 更新。这是因为 WU/MU/WSUS/SCCM 服务试图通过仅告诉客户端可能适用的更新来节省时间和带宽,而不是将整个更新目录下载到每个客户端。由于您的计算机以前没有安装过 Office,因此这些服务不会告诉您的计算机有关 Office 更新的信息。
于 2019-12-03T19:13:07.047 回答