Jak mogę przesłać kwerendę do mojego systemu za pomocą wiersza polecenia, aby sprawdzić, czy łatka KB jest zainstalowana?

Odpowiedzi:

64

Oprócz systeminfotego jest też wmic qfe

Przykład:

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

Jest również update.exe

Lub z PowerShell, po prostu dostosuj go do swoich potrzeb:

Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}
Złom
źródło
3
Jak to zrobiłem w przeszłości. Z psexec jest to naprawdę łatwe, ale pamiętaj, że polecenie find może nie działać, chyba że podasz wmicregularne stdout zamiast dziwnych hybrydowych badziewów. wmic /output:stdout qfe get hotfixid | find "KB99999".
songei2f 27.04.11
Czy muszę go uruchomić jako administrator? Wygląda na to, że inne miejsca mówią mi, że potrzebuję. Więc chcę to sprawdzić.
José
Z jakiegokolwiek powodu użycie „znajdź” powoduje błąd w formacie. Wypróbowałem pojedyncze i podwójne cytaty.
Scott
@ Scott (i inni, którzy napotykają ten sam problem): polecenie cmdlet PS find wymaga parametru. Find.exe uruchamiany z cmd nie działa.
Mastacheata,
17

Program PowerShell 2.0 zawiera polecenie cmdlet get-hotfix, które jest łatwym sposobem sprawdzenia, czy dana poprawka jest zainstalowana na komputerze lokalnym lub zdalnym. Przykładem podstawowej składni jest

get-hotfix -id KB974332
raeez
źródło
Tego nie ma w v4
StingyJack
Jest zdecydowanie obecny w wersji 5.1. A oto strona pomocy: docs.microsoft.com/en-gb/powershell/module/…
Ant
6

uruchom „systeminfo” w oknie CMD, a to cofnie ładunek statystyk dotyczących twojego systemu, w tym zainstalowanych łat.

przyszedł
źródło
3

Kilka innych możliwości: Grep% windir% \ Windowsupdate.log dla numeru KB. Lub użyj reg.exe, aby wyeksportować odpowiednie klucze instalacyjne.

Tonny
źródło
1
Mój system Windows nie został dostarczony grep. Muszę użyć find.
jscott
@jscott: Wiem, że grep jest niestandardowy w systemie Windows :-) Znajdź lub znajdź byłoby bardziej odpowiednie. Ale użyłem tutaj słowa grep jak w „grep”, aby wskazać proces zamiast dosłownie oznaczającego użyteczność „grep”. Używanie grep jako czasownika jest bardzo powszechne w kręgach uniksowych, w których normalnie działam, więc użyłem tego terminu mniej więcej bez myślenia, że ​​może wyglądać dziwnie dla faceta Windows.
Tonny
Doceń to starą odpowiedź, ale% windir% \ Windowsupdate.log wydaje się wyświetlać aktualizacje tylko z ostatniego miesiąca. Być może dlatego, że jest skonfigurowany do wycofania się po tym czasie, ale po prostu wskazuję, że w niektórych przypadkach nie znalezienie go w tym dzienniku może nie oznaczać, że nie ma go w systemie.
glaucon
0
wmic qfe list /format:htable>C:\PatchList%Computername%.html

Powyższe polecenie da wynik w formacie HTML.

Vijay
źródło
0

Gdy ktoś zapytał o użycie wmic po znaku zachęty PowerShell, wystarczy użyć Select-String (lub sls).

wmic qfe get hotfixid | sls "KB99999"

Xopher
źródło