a p*_*erd 7 windows powershell hotfix
我正在尝试编写脚本以确保安装了某个修补程序。在我们的一台运行 Windows 8.1 的测试计算机上,get-hotfix
返回不完整的修补程序列表:
然而,程序和功能控制面板中显示了大量补丁:
我们所有的其他测试机器,包括其他安装了 Windows 8.0 和 8.1 的机器,都可以正常工作。知道这是为什么吗?如何从 Powershell 获取完整的修补程序列表?
编辑:也 wmic qfe list
只显示相同的四个修补程序get-hotfix
。
ben*_*tek 12
我相信Get-Hotfix
命令行开关利用Win32_QuickFixEngineering
WMI 类来列出 Windows 更新,但只返回由基于组件的服务 (CBS)提供的更新。Get-Hotfix
/不返回 Microsoft Windows Installer (MSI) 或 Windows 更新站点提供的更新Win32_QuickFixEngineering
。
您可以尝试通过 PowerShell 使用 Windows Update API,如下例所示。试一试,如果它显示丢失的更新,请告诉我们。
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a Date,Title
Run Code Online (Sandbox Code Playgroud)
编辑:要搜索结果,您可以使用Where-Object
命令行开关(或别名Where
)并过滤特定的修补程序:
$Searcher.Search("IsInstalled=1").Updates | Where {$_.Title -like "*KB2760587*"} | ft date,title
Run Code Online (Sandbox Code Playgroud)