Как я могу запросить мою систему через командную строку, чтобы увидеть, установлено ли обновление KB?

Ответы:

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 это действительно просто, но имейте в виду, что команда find может не сработать, если вы не укажете stdout вместо того, чтобы странное гибридное дерьмо wmicрегулярно выплевывалось. wmic /output:stdout qfe get hotfixid | find "KB99999",
songei2f
Нужно ли запускать его от имени администратора? Похоже, другие места говорят мне, что мне нужно. Поэтому я хочу проверить.
Хосе
По какой-то причине использование «find» приводит к неправильной ошибке формата. Пробовал одинарные и двойные кавычки.
Скотт
@Scott (и другие, которые сталкиваются с той же проблемой): для командлета PS find требуется параметр. Find.exe вы запускаете из cmd не.
Mastacheata
17

PowerShell 2.0 содержит командлет get-hotfix, который позволяет легко проверить, установлено ли данное исправление на локальном или удаленном компьютере. Примером основного синтаксиса является

get-hotfix -id KB974332
raeez
источник
Это не присутствует в v4
StingyJack
Это определенно присутствует в v5.1. А вот и страница справки: docs.microsoft.com/en-gb/powershell/module/…
Ant
6

запустите "systeminfo" в окне CMD, и он вернет статистику о вашей системе, включая установленные исправления.

ccame
источник
3

Некоторые другие возможности: Grep% windir% \ Windowsupdate.log для номера КБ. Или используйте reg.exe для экспорта соответствующих ключей установки.

Tonny
источник
1
Моя Windows не поставляется с grep. Я должен использовать find.
Jscott
@jscott: я знаю, что grep нестандартен в Windows :-) Find или findstr были бы более подходящими. Но я использовал слово grep здесь, как и в «grep», чтобы обозначить процесс вместо буквального значения утилиты «grep». Использование grep в качестве глагола очень распространено в кругах Unix, в которых я обычно работаю, поэтому я использовал термин более или менее, не думая, что это может показаться странным для парня из Windows.
Тонни
Примите во внимание, что это старый ответ, но% windir% \ Windowsupdate.log, похоже, показывает только обновления за последний месяц. Возможно, потому что он настроен на откат после этого времени, но я просто указываю, что в некоторых случаях отсутствие его в этом журнале может не указывать на его отсутствие в системе.
глаукон
0
wmic qfe list /format:htable>C:\PatchList%Computername%.html

Приведенная выше команда выдаст вывод в формате html.

Виджей
источник
0

Когда кто-то спросил об использовании wmic в приглашении PowerShell, просто используйте Select-String (или sls).

wmic qfe get hotfixid | sls "KB99999"

Xopher
источник