我正在寻找是否通过命令行安装了知识库。

#1 楼

除了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}


评论


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

– songei2f
11年4月27日在11:59

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

–何塞
16年5月11日,0:31



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

–斯科特
16-09-22在14:28

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

–Mastacheata
18年1月10日在15:11

#2 楼

PowerShell 2.0包含get-hotfix cmdlet,这是检查给定修补程序是否安装在本地计算机或远程计算机上的简便方法。基本语法的一个示例是

get-hotfix -id KB974332


评论


v4中不存在

– StingyJack
17年5月15日在13:35

它肯定存在于v5.1中。这是帮助页面:docs.microsoft.com/en-gb/powershell/module / ...

–蚂蚁
17年8月16日在14:16

#3 楼

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

#4 楼

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

评论


我的Windows没有grep。我必须使用查找。

–jscott
2011-4-27 13:50

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

–Tonny
11年4月28日在10:41



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

– glaucon
17年6月28日在1:09

#5 楼

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


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

#6 楼

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

wmic qfe get hotfixid | sls "KB99999"