我正在使用Powershell运行KB列表的状态,并查看它们是否已应用。
我找到了一些方法,我发现他们报告的数字不一致。哪个是对的?
您可以查看SYSTEMINFO
并获取修补程序列表。您还可以使用Get-Hotfix
cmdlet,它是gwmi Win32_QuickFixEngineering
的别名,或者您可以使用wmic qfe list
( WMI-C LI Q uick F ix E 工程 L ist)。
那么,为什么我快速计算时会得到不同的数字呢?
即 (Get-HotFix).Count
和(wmic qfe list).Count
分别使用这两个返回153和310。
是什么给出的?为什么它会返回不同的值?是否所有应用的KB都未在Get-Hotfix
cmdlet中列出?
在有人要求之前,是的,我已经重新启动了机器,但由于重新启动和更新,我还没有应用任何机器。那是第1天的事......
答案 0 :(得分:1)
WMIC的空白线条模糊不清,可能会让水域变得混乱。这是wmic qfe的简单,不是很好的解析器(Windows 10所以谁知道它是否会转置)。
希望您可以比较这些清单。
$qfe = wmic qfe list brief | Select-Object -Skip 1 | Where-Object { $_.Trim().Length -gt 0 } | ForEach-Object {
[PSCustomObject]@{
Description = $_.Substring(0, 17).Trim()
HotFixId = $_.Substring(30, 10).Trim()
}
}
Compare-Object (Get-HotFix) $qfe -Property HotFixID -IncludeEqual
那就够了吗?不,不是真的。 QFE很棒,但仅供参考。我试图记住使其失效的情况。我会回到这里。