Como posso consultar meu sistema via linha de comando para ver se um patch de KB está instalado?

Respostas:

64

Além de systeminfohaver também wmic qfe

Exemplo:

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

Há também update.exe

Ou no PowerShell, basta ajustá-lo às suas necessidades:

Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}
Skrap
fonte
3
Como eu fiz isso no passado. Realmente fácil com o psexec, mas lembre-se de que o comando find pode não funcionar, a menos que você especifique stdout em vez de a porcaria híbrida estranha ser wmiclançada regularmente. wmic /output:stdout qfe get hotfixid | find "KB99999".
songei2f
Preciso executá-lo como administrador? Parece que outros lugares me dizem que eu preciso. Então, eu quero verificar.
José
Por qualquer motivo, usar "localizar" está causando um erro de formato incorreto. Tentei aspas simples e duplas.
Scott
@ Scott (e outros que enfrentam o mesmo problema): o cmdlet PS find requer um parâmetro. O find.exe que você executa no cmd não.
Mastacheata
17

O PowerShell 2.0 contém o cmdlet get-hotfix, que é uma maneira fácil de verificar se um determinado hotfix está instalado no computador local ou remoto. Um exemplo da sintaxe básica é

get-hotfix -id KB974332
raeez
fonte
Isso não está presente em v4
StingyJack
Está definitivamente presente na v5.1. E aqui está a página de ajuda: docs.microsoft.com/en-gb/powershell/module/…
Ant
6

execute "systeminfo" em uma janela do CMD e ele recuará uma carga de estatísticas sobre seu sistema, incluindo quais patches estão instalados.

veio
fonte
3

Algumas outras possibilidades: Grep% windir% \ Windowsupdate.log para o número da KB. Ou use reg.exe para exportar as chaves de instalação correspondentes.

Tonny
fonte
11
Meu Windows não veio com grep. Eu tenho que usar find.
precisa saber é o seguinte
@jscott: Eu sei que o grep não é padrão no Windows :-) Find ou findstr seria mais adequado. Mas usei a palavra grep aqui como em "to grep" para indicar o processo em vez de literalmente significar o utilitário "grep". Usar grep como verbo é muito comum nos círculos do Unix em que normalmente opero, então usei o termo mais ou menos sem pensar que poderia parecer estranho para um cara do Windows.
quer
Perceba que esta é uma resposta antiga, mas o% windir% \ Windowsupdate.log parece mostrar apenas as atualizações do mês passado. Talvez porque esteja configurado para sair após esse período, mas apenas estou apontando que, em alguns casos, não encontrá-lo nesse log pode não indicar que ele está ausente no sistema.
Glauco
0
wmic qfe list /format:htable>C:\PatchList%Computername%.html

O comando acima fornecerá a saída no formato html.

vijay
fonte
0

Como alguém perguntou sobre o uso do wmic em um prompt do PowerShell, basta usar a String de seleção (ou sls).

wmic qfe get hotfixid | sls "KB99999"

Xopher
fonte