WUA IUpdateSearcher 和 wmic qfe 之间的区别

WUA IUpdateSearcher 和 wmic qfe 之间的区别

我试图弄清楚 WUA(Windows 更新代理 API)IupdateSearcher 和 wmic qfe 列表之间有什么区别。

当我使用时,我会得到不同的结果:

(New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher().Search('IsInstalled=1').Updates | Format-Table -AutoSize

当使用 wmic qfe 列表时:

wmic qfe list brief

后者包含前者不包含的更新,反之亦然。这是为什么呢?

例如,KB5007273 出现在 wmic 上,但未出现在 WUA 上,反之亦然,例如,KB4023057 出现在 WUA 上,但未出现在 wmic 上

答案1

微软在这里列出了差异:https://social.technet.microsoft.com/wiki/contents/articles/4197.windows-how-to-list-all-of-the-windows-and-software-updates-applied-to-a-computer.aspx

  • 威盛

...它们只能可靠地用于检索 Windows 操作系统本身及其组件(例如 Windows Internet Explorer (IE) 或 Windows Server 角色和功能)的更新。这不会列出任何非收件箱软件(例如 Microsoft Office 或 Exchange Server)的更新。

  • 用水户协会

...将列出所有类型的更新(Windows 和应用程序),但仅列出使用 Windows 更新安装的更新。[...] 排除任何手动安装或使用自定义管理脚本的更新。


尽管如此,您似乎没有找到合适的地方来查找有关 WUA 的更新信息。例如:

# the updatesearcher() method excludes superseded updates:
$UpdateSearcher = (New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher().Search('IsInstalled=1').Updates
$UpdateSearcher | Select Title
# returns 7 updates on my machine

# Instead, try searching your WUA history instead.
$WuaHistory = (New-Object -ComObject 'Microsoft.Update.Session').QueryHistory("",0,100)  ## first 100 results
# only return successful(2) installations(1)
$WuaHistory | Where {$_.ResultCode -eq 2 -and $_.Operation -eq 1} | Select Title
# Returns 80 updates

Windows 10 版本 1709,搜索被取代的更新的功能已被删除。

相关内容