Come posso eseguire una query sul mio sistema tramite riga di comando per vedere se è installata una patch KB?


Risposte:


64

Oltre a systeminfoc'è anche wmic qfe

Esempio:

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

C'è anche update.exe

O da PowerShell, basta regolarlo per le tue esigenze:

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

3
Come l'ho fatto in passato. Davvero facile con psexec, ma tieni presente che il comando find potrebbe non funzionare se non specifichi stdout invece che la strana schifezza ibrida wmicsputa regolarmente. wmic /output:stdout qfe get hotfixid | find "KB99999".
songei2f,

Devo eseguirlo come amministratore? Sembra che altri posti mi dicano che ne ho bisogno. Quindi voglio controllare.
José,

Per qualsiasi motivo, l'uso di "trova" mi dà un errore di formato errato. Ho provato virgolette singole e doppie.
Scott,

@Scott (e altri che riscontrano lo stesso problema): il cmdlet di ricerca di PS richiede un parametro. Il find.exe eseguito da cmd no.
Mastacheata,

17

PowerShell 2.0 contiene il cmdlet get-hotfix, che è un modo semplice per verificare se un determinato aggiornamento rapido è installato sul computer locale o su un computer remoto. Un esempio della sintassi di base è

get-hotfix -id KB974332

Questo non è presente in v4
StingyJack

È sicuramente presente nella v5.1. Ed ecco la pagina di aiuto: docs.microsoft.com/en-gb/powershell/module/…
Ant

6

esegui "systeminfo" in una finestra di CMD e tirerà indietro un carico di statistiche sul tuo sistema tra cui quali patch sono installate.


3

Alcune altre possibilità: Grep% windir% \ Windowsupdate.log per il numero KB. O utilizzare reg.exe per esportare le chiavi di installazione corrispondenti.


1
Windows non è arrivato grep. Devo usare find.
jscott,

@jscott: so che grep non è standard su Windows :-) Find o findstr sarebbero più adatti. Ma ho usato la parola grep qui come in "grep" per indicare il processo anziché indicare letteralmente l'utilità "grep". L'uso di grep come verbo è molto comune nei circoli Unix in cui opero normalmente, quindi ho usato il termine più o meno senza pensare che potesse sembrare strano per un ragazzo di Windows.
Tonny,

Apprezzo questa è una vecchia risposta, ma% windir% \ Windowsupdate.log sembra mostrare solo gli aggiornamenti dell'ultimo mese. Forse perché è configurato per il roll-off dopo quel momento, ma sto solo sottolineando che in alcuni casi non trovarlo in quel registro potrebbe non indicare che è assente dal sistema.
Glaucon,

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

Il comando sopra fornirà l'output in formato html.


0

Come qualcuno ha chiesto di usare wmic al prompt di PowerShell, basta usare Select-String (o sls).

wmic qfe get hotfixid | sls "KB99999"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.