如何使用 WMI 和 SCCM 获取在运行安装过程之前需要重新启动的所有补丁。到目前为止,我有这个 wmi 查询,其中列出了所有可用的补丁,但返回的任何属性均未表明是否需要补丁。
function Get-CMMissingUpdate {
param (
$computer = "localhost"
)
Get-WmiObject -Query "SELECT * FROM CCM_SoftwareUpdate" -Namespace "ROOT\ccm\ClientSDK" -ComputerName $computer
}
是否有人使用过其他方法从 SCCM 2012 中找到此信息?
答案1
您想要过滤EvaluationState
返回的更新的属性。待重启的评估状态有几种类型,它们列在技术网页面对于 sccm 客户端 sdk。状态 8、9 和 10 表示待重启。查看您的函数,我会执行类似以下操作
function Get-CMMissingUpdate {
param (
$computer = "localhost"
)
Get-WmiObject -Query "SELECT * FROM CCM_SoftwareUpdate WHERE EVALUATIONSTATE = 8 OR EVALUATIONSTATE = 9 OR EVALUATIONSTATE = 10" -Namespace "ROOT\ccm\ClientSDK" -ComputerName $computer
}
如果您要提供原始语法而不是使用 powershell,那就随您便吧。我现在没有任何待处理的 sccm 更新,也没有时间安装测试箱,但这应该可以让您开始。