Passer au contenu principal

Dépannage de Windows Update

Diagnose Windows Update issues in Level, including WUA result discrepancies and leftover WSUS configuration.

Introduction

Level utilise l'API Microsoft Windows Update Agent (WUA) pour détecter et gérer les correctifs. Si vous constatez des nombres de correctifs inattendus, des mises à jour manquantes ou aucune mise à jour du tout, les deux causes les plus fréquentes sont les différences de résultats entre WUA et d'autres sources de mises à jour, ainsi qu'une configuration WSUS résiduelle qui redirige les appareils en dehors des serveurs de mises à 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 la même que celle utilisée en interne par Windows, mais ses résultats ne correspondent pas à l'historique Windows Update. Ne comparez pas les deux directement — ils s'appuient sur des magasins de données différents.

Pour voir exactement ce que l'API WUA renvoie 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 renvoient, Level fonctionne correctement. Toute divergence se situe dans la couche WUA elle-même.


Diagnostic des problèmes liés à WSUS

Si Level n'affiche aucune mise à jour disponible et que les commandes WUA ci-dessus ne renvoient également rien, une configuration WSUS résiduelle en est probablement la cause. Les appareils encore pointés vers un serveur WSUS n'interrogent pas les serveurs de mises à jour de Microsoft, et Level n'a donc 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 contient des références à une adresse de serveur WSUS, l'appareil n'a pas été reconfiguré.

Supprimer les paramètres WSUS

La correction appropriée consiste à annuler l'objet de stratégie de groupe (GPO) qui a initialement déployé WSUS sur les appareils. Si cela n'est pas possible, le script suivant supprime manuellement les paramètres client WSUS :

⚠️ AVERTISSEMENT : Testez sur un seul appareil avant de déployer en production. Si le GPO qui a configuré WSUS est toujours actif, les paramètres seront rétablis lors du prochain rafraîchissement de la stratégie. La suppression du GPO est la seule correction permanente.

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 réinterroge WUA lors de la prochaine synchronisation. Les mises à jour provenant des serveurs de Microsoft devraient apparaître à ce moment-là.

💡 CONSEIL : Enregistrez ce script dans la bibliothèque de scripts de Level pour le déployer via l'automatisation sur plusieurs appareils à la fois, plutôt que de l'exécuter manuellement.


FAQ

  • Level affiche des mises à jour, mais l'historique Windows Update indique qu'elles sont déjà installées. Qui a raison ? Les deux peuvent être corrects. Level interroge l'API WUA directement ; l'historique Windows Update lit depuis un journal distinct. Les commandes PowerShell WUA ci-dessus constituent la source de vérité pour ce que Level perçoit. Si ces commandes renvoient les mêmes correctifs que ceux affichés par Level, Level se comporte correctement.

  • Le script de nettoyage WSUS a été 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 stratégie les réapplique lors du prochain rafraîchissement. Annulez ou désactivez d'abord le GPO.

  • Après la suppression de la configuration WSUS, combien de temps faut-il avant que Level affiche les mises à jour ? Level réinterroge WUA lors du prochain cycle d'enregistrement de l'appareil. Dans la plupart des cas, les données de correctifs mises à jour apparaissent quelques minutes après la reconnexion de l'appareil ou l'interrogation par l'agent.

  • Puis-je exécuter le script de nettoyage WSUS sur tous les appareils concernés à la fois ? Oui. Enregistrez-le en tant que script dans Automations → Scripts, puis exécutez-le via une automatisation ciblant les appareils concernés ou via une exécution ad hoc depuis la liste des appareils.

Avez-vous trouvé la réponse à votre question ?