如何检测Windows更新状态

问题描述 投票:-1回答:1

我想以编程方式检测当前的Windows 10更新状态。

我尝试过wuapi,它很好用,但是wuapi中存在一些问题。

首先,获取更新信息需要很长时间。

第二,它不能离线使用。

还有其他方法可以检测当前的Windows 10更新状态吗?是否有任何注册表或系统文件可以检测到它?

我尝试procmon进行分析,但是与Windows udpate链接的文件和注册表太多。

谢谢...

c++ c registry windows-update wuapi
1个回答
0
投票

COM API

COM API是直接访问Windows Update而不需要解析日志的好方法。该API的应用范围从查找计算机上的可用更新到安装和卸载更新。

您可以使用Microsoft.Update.Session类来运行更新搜索,然后计算可用的更新数量,以查看计算机是否有任何更新。

PowerShell示例:

$updateObject = New-Object -ComObject Microsoft.Update.Session
$updateObject.ClientApplicationID = "Serverfault Example Script"
$updateSearcher = $updateObject.CreateUpdateSearcher()
$searchResults = $updateSearcher.Search("IsInstalled=0")
Write-Host $searchResults.Updates.Count

如果返回的结果大于0,则存在需要安装和/或下载的计算机更新。您可以轻松地更新powershell脚本以适合您的应用程序。

只是抬起头,似乎搜索功能不是异步的,因此它将在搜索时冻结您的应用程序。在这种情况下,您将需要使其异步。“


注册方法

enter image description here


来源:

https://serverfault.com/questions/891188/is-it-possible-to-detect-the-windows-update-status-via-registry-to-see-if-the-s

© www.soinside.com 2019 - 2024. All rights reserved.