J'essaye d'écrire un script pour m'assurer qu'un certain correctif est installé. get-hotfix
renvoie une liste incomplète de correctifs sur l'un de nos ordinateurs de test exécutant Windows 8.1:
Pourtant, de nombreux correctifs apparaissent dans le panneau de configuration Programmes et fonctionnalités:
Toutes nos autres machines de test, y compris les autres installées avec Windows 8.0 et 8.1, fonctionnent correctement. Une idée pourquoi c'est? Comment puis-je obtenir une liste complète des correctifs de Powershell?
Modifier: wmic qfe list
affiche également les quatre mêmes correctifs que get-hotfix
.
Je crois que le commandlet Get-Hotfix
exploite la classe WMI Win32_QuickFixEngineering
pour répertorier les mises à jour Windows, mais ne renvoie que les mises à jour fournies par . Service (CBS) . Les mises à jour fournies par Microsoft Windows Installer (MSI) ou le site de mise à jour Windows ne sont pas renvoyées par Get-Hotfix
/Win32_QuickFixEngineering
.
Vous pouvez essayer d'utiliser l'API Windows Update via PowerShell comme dans l'exemple ci-dessous. Donnez un coup de feu et laissez-nous savoir s'il montre les mises à jour manquantes.
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a Date,Title
EDIT: Pour effectuer une recherche dans les résultats, vous pouvez utiliser le commandlet Where-Object
(ou l'alias Where
) et filtrer un correctif spécifique:
$Searcher.Search("IsInstalled=1").Updates | Where {$_.Title -like "*KB2760587*"} | ft date,title
Vous devez utiliser différentes méthodes pour répertorier les mises à jour installées par différentes méthodes. comme installé par WSUS ou configmgr
Regardez ici