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}

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

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.


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.


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.


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"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.