Introduction
Level utilise l'API de l'agent Windows Update de Microsoft (WUA) pour détecter et gérer les correctifs. Si vous voyez des nombres de correctifs inattendus, des mises à jour manquantes, ou aucune mise à jour du tout, les deux causes les plus courantes sont les différences d'ensemble de résultats entre WUA et d'autres sources de mise à jour, et la configuration WSUS restante qui redirige les appareils loin des serveurs de mise à jour de Microsoft.
Comment Level interroge les mises à jour Windows
Level interroge l' API Microsoft WUA pour les correctifs disponibles et installés. L'API WUA est celle que Windows utilise en interne, mais ses résultats ne correspondent pas à l'historique Windows Update. Ne les comparez pas directement — ils tirent de stores de données différentes.
Pour voir exactement ce que l'API WUA retourne pour un appareil donné, exécutez ces commandes dans PowerShell.
Correctifs installés :
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a title
Correctifs en attente :
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher() $Searcher.Search("IsInstalled=0").Updates | ft -a title
Si la liste de correctifs de Level correspond à ce que ces commandes retournent, Level fonctionne correctement. Toute divergence réside dans la couche WUA elle-même.
Diagnostic des problèmes liés au WSUS
Si Level ne montre aucune mise à jour disponible et les commandes WUA ci-dessus retournent également rien, une configuration WSUS restante est la cause probable. Les appareils toujours pointés vers un serveur WSUS n'interrogeront pas les serveurs de mise à jour de Microsoft, donc Level n'a rien à signaler.
Vérifier la configuration WSUS
Exécutez ceci dans PowerShell pour inspecter la clé de registre Windows Update :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
Si la sortie inclut des références à une adresse de serveur WSUS, l'appareil n'a pas été reconfiguré.
Supprimer les paramètres WSUS
Le correctif correct consiste à inverser l'objet de stratégie de groupe qui a initialement poussé WSUS vers les appareils. Si cela n'est pas possible, le script suivant supprime les paramètres client WSUS manuellement :
⚠️ AVERTISSEMENT : Testez sur un seul appareil avant de déployer en production. Si l'objet de stratégie de groupe qui a configuré WSUS est toujours actif, les paramètres réapparaîtront au prochain rafraîchissement de politique. La suppression de l'objet de stratégie de groupe est le seul correctif permanent.
PowerShell
# Stop the BITS and Windows Update services
Stop-Service -Name BITS, wuauserv -Force
# Remove WSUS client configuration properties
$wsusProperties = @("AccountDomainSid", "PingID", "SusClientId", "SusClientIDValidation")
foreach ($property in $wsusProperties) {
Remove-ItemProperty -Name $property -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\" -ErrorAction SilentlyContinue
}
# Remove the SoftwareDistribution folder
Remove-Item "$env:SystemRoot\SoftwareDistribution\" -Recurse -Force -ErrorAction SilentlyContinue
# Start the BITS and Windows Update services
Start-Service -Name BITS, wuauserv
# Optionally, reset the Windows Update client settings
# This step ensures that the client re-registers and checks for updates from the correct source
$wuaucltPath = "$env:SystemRoot\System32\wuauclt.exe"
if (Test-Path -Path $wuaucltPath) {
Start-Process -FilePath $wuaucltPath -ArgumentList "/resetauthorization /detectnow" -NoNewWindow
} else {
Write-Output "wuauclt.exe not found. Ensure the Windows Update client is available."
}
Après l'exécution, Level re-interroge WUA au prochain synchronisation. Les mises à jour des serveurs de Microsoft devraient apparaître à ce moment.
💡 CONSEIL : Enregistrez ceci en tant que script dans la bibliothèque de scripts de Level pour le déployer via une automation sur plusieurs appareils à la fois plutôt que de l'exécuter manuellement.
FAQ
Level montre des mises à jour, mais l'historique Windows Update dit qu'elles sont déjà installées. Qui a raison ? Les deux peuvent avoir raison. Level interroge directement l'API WUA ; l'historique Windows Update lit à partir d'un journal séparé. Les commandes PowerShell WUA ci-dessus sont la vérité terrestre pour ce que Level voit. Si ces commandes retournent les mêmes correctifs que Level montre, Level se comporte correctement.
Le script de nettoyage WSUS a s'exécuté mais les appareils pointent toujours vers WSUS. La stratégie de groupe qui a configuré WSUS est probablement toujours active. Le script supprime les valeurs de registre actuelles, mais la politique les re-applique au prochain rafraîchissement. Inversez ou désactivez d'abord l'objet de stratégie de groupe.
Après suppression de la configuration WSUS, combien de temps jusqu'à ce que Level montre les mises à jour ? Level re-interroge WUA au prochain cycle d'enregistrement d'appareil. Dans la plupart des cas, les données de correctif mises à jour apparaissent en quelques minutes de la reconnexion de l'appareil ou de l'agent sondage.
Puis-je exécuter le script de nettoyage WSUS sur tous les appareils affectés à la fois ? Oui. Enregistrez-le en tant que script dans Automations → Scripts , puis exécutez-le via une automation ciblant les appareils pertinents ou via une exécution ad-hoc à partir de la liste d'appareils.
