Comment interroger mon système via une ligne de commande pour savoir si un correctif KB est installé?

Réponses:

64

En plus de systeminfoil y a aussi wmic qfe

Exemple:

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

Il y a aussi update.exe

Ou de powershell, ajustez-le à vos besoins:

Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}
Skrap
la source
3
Comment je l'ai fait dans le passé. Vraiment facile avec psexec, mais gardez à l'esprit que la commande find pourrait ne pas fonctionner à moins que vous ne spécifiiez stdout au lieu de la bizarre hybride, la merde wmiccrache régulièrement. wmic /output:stdout qfe get hotfixid | find "KB99999".
Songei2f
Dois-je l'exécuter en tant qu'administrateur? On dirait que d'autres endroits me disent que j'en ai besoin. Donc je veux vérifier.
José
Pour une raison quelconque, utiliser "find" me donne une erreur de format incorrecte. Essayé guillemets simples et doubles.
Scott
@Scott (et d'autres personnes qui rencontrent le même problème): la cmdlet de recherche PS requiert un paramètre. Le find.exe que vous exécutez à partir de cmd ne le fait pas.
Mastacheata
17

PowerShell 2.0 contient la cmdlet get-hotfix, qui permet de vérifier facilement si un correctif est installé sur l'ordinateur local ou sur un ordinateur distant. Un exemple de syntaxe de base est

get-hotfix -id KB974332
raeez
la source
Ce n'est pas présent dans v4
StingyJack
C'est définitivement présent dans la v5.1. Et voici la page d'aide: docs.microsoft.com/en-gb/powershell/module/...
Ant
6

lancez "systeminfo" dans une fenêtre CMD et il récupérera une série de statistiques sur votre système, notamment les correctifs installés.

jouer
la source
3

Quelques autres possibilités: Grep% windir% \ Windowsupdate.log pour le numéro de base de connaissances. Ou utilisez reg.exe pour exporter les clés d'installation correspondantes.

Tonny
la source
1
Mon Windows n'est pas venu avec grep. Je dois utiliser find.
Jscott
@jscott: Je sais que grep n'est pas standard sur Windows :-) Find ou findstr conviendrait mieux. Mais j'ai utilisé le mot grep ici comme dans "to grep" pour indiquer le processus au lieu de signifier littéralement l'utilitaire "grep". Utiliser grep comme verbe est très courant dans les cercles Unix dans lesquels je travaille normalement. J'ai donc utilisé le terme plus ou moins sans penser que cela pourrait paraître étrange à un gars sous Windows.
Tonny
Sachez qu’il s’agit d’une réponse ancienne, mais le journal% windir% \ Windowsupdate.log ne semble afficher que les mises à jour du mois écoulé. Peut-être parce qu'il est configuré pour fonctionner après cette heure, mais je souligne que dans certains cas, le fait de ne pas le trouver dans ce journal peut ne pas indiquer qu'il est absent du système.
Glaucon
0
wmic qfe list /format:htable>C:\PatchList%Computername%.html

La commande ci-dessus donnera la sortie au format html.

vijay
la source
0

Si quelqu'un vous demandait d'utiliser wmic à une invite PowerShell, utilisez simplement Select-String (ou sls).

wmic qfe get hotfixid | sls "KB99999"

Xopher
la source