我想以编程方式检测当前的 Windows 10 更新状态。
我尝试了 wuapi,它运行良好,但 wuapi 存在一些问题。
首先,获取更新信息需要很长时间。
二是不能离线使用。
还有其他方法可以检测当前的 Windows 10 更新状态吗?是否有任何注册表或系统文件来检测它?
我尝试使用 procmon 进行分析,但是与 windows udpate 链接的文件和注册表太多。
谢谢...
" COM API
COM API 是一种无需解析日志即可直接访问 Windows 更新的好方法。此 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 脚本以适应您的应用程序。
请注意,搜索功能似乎不是异步的,因此它会在搜索时冻结您的应用程序。在这种情况下,您将希望使其异步。”
注册表方法
来源:
没有记录的方法可以访问自动更新正在使用的搜索结果(设置中的 Windows 更新页面显示的结果)。
但是,有两件事可能对您有用: