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.