如何通过命令行查询系统以查看是否已安装KB补丁?


Answers:


64

除了systeminfo还有 wmic qfe

例:

wmic qfe get hotfixid | find "KB99999"
wmic qfe | find "KB99999"

也有 update.exe

或通过powershell,只需根据需要进行调整即可:

Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}

3
我过去是如何做到的。使用psexec确实很容易,但是请记住,除非您指定stdout而不是wmic定期发出奇怪的混合废话,否则find命令可能不起作用。wmic /output:stdout qfe get hotfixid | find "KB99999"
songei2f 2011年

我需要以管理员身份运行它吗?好像其他地方告诉我我确实需要。所以我想检查一下。
何塞

无论出于何种原因,使用“查找”都会给我带来不正确的格式错误。尝试使用单引号和双引号。
斯科特

@Scott(以及其他遇到相同问题的人):PS find cmdlet需要一个参数。您从cmd运行的find.exe没有。
Mastacheata '18年


6

在CMD窗口中运行“ systeminfo”,它将拉回有关您系统的统计信息,包括已安装的补丁程序。


3

其他一些可能性:KB编号为Grep%windir%\ Windowsupdate.log。或使用reg.exe导出相应的安装密钥。


1
我的Windows没有随附grep。我要用find
jscott 2011年

@jscott:我知道grep在Windows上是非标准的:-) find或findstr更合适。但是我在此处使用了“ to grep”一词中的grep来表示该过程,而不是从实际意义上说实用程序“ grep”。在我通常使用的Unix圈子中,将grep用作动词是非常普遍的,因此我或多或少地使用了该术语,而没有想到对于Windows家伙来说这看起来很奇怪。
Tonny

意识到这是一个旧答案,但是%windir%\ Windowsupdate.log似乎只显示过去一个月的更新。也许是因为它已配置为在该时间后滚降,但我只是指出,在某些情况下,在该日志中找不到它可能并不表示它不在系统中。
glaucon

0
wmic qfe list /format:htable>C:\PatchList%Computername%.html

上面的命令将以html格式给出输出。


0

正如有人在PowerShell提示符下询问有关使用wmic的问题一样,只需使用Select-String(或sls)即可。

wmic qfe get hotfixid | sls "KB99999"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.