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


Відповіді:


64

Крім того systeminfoє також wmic qfe

Приклад:

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

Є також update.exe

Або з пауерлаушн, просто налаштуйте його під свої потреби:

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

3
Як я це робив у минулому. Дійсно легко з psexec, але майте на увазі, команда find може не спрацювати, якщо ви не вкажете stdout замість дивного гібридного лайна wmicвиплескується на регулярній основі. wmic /output:stdout qfe get hotfixid | find "KB99999".
songei2f

Чи потрібно запускати його як адміністратор? Схоже, інші місця підказують мені, що мені це потрібно. Тому я хочу перевірити.
Жозе

З будь-якої причини використання "знайти" надає мені помилку формату. Пробували одиночні та подвійні цитати.
Скотт

@Scott (та інші, хто стикається з тією ж проблемою): командлет PS знаходить потрібний параметр. Find.exe, який ви запускаєте з cmd, не робить.
Мастачеата

17

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

get-hotfix -id KB974332

Цього немає в v4
StingyJack

Він напевно присутній у v5.1. І ось сторінка довідки: docs.microsoft.com/en-gb/powershell/module/…
Ant

6

запустіть "systeminfo" у вікні CMD, і це витягне набір статистичних даних про вашу систему, включаючи встановлені патчі.


3

Деякі інші можливості: Grep% windir% \ Windowsupdate.log для номера KB. Або скористайтеся reg.exe для експорту відповідних ключів встановлення.


1
Моя Windows не була в комплекті grep. Я маю користуватися find.
jscott

@jscott: Я знаю, що grep є нестандартним для Windows :-) Знайти або findstr було б більш підходящим. Але я використовував тут слово grep як в "grep", щоб позначити процес замість цього, що буквально означає корисність "grep". Використання grep як дієслова дуже часто зустрічається в колах Unix, в яких я зазвичай працюю, тому я використовував цей термін більш-менш, не думаючи, що це може виглядати дивно для хлопця Windows.
Тонні

Оцініть це стара відповідь, але, здається,%% windir% \ Windowsupdate.log показує оновлення за останній місяць. Можливо, тому, що він налаштований згортатися після цього часу, але я просто вказую, що в деяких випадках не знаходження його в цьому журналі може не вказувати на його відсутність у системі.
glaucon

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

Наведена вище команда дасть вихід у форматі html.


0

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

wmic qfe get hotfixid | sls "KB99999"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.