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 Windows Update Agent (WUA) de Microsoft pour détecter et gérer les correctifs. Si vous constatez des comptages de correctifs inattendus, des mises à jour manquantes ou aucune mise à jour du tout, les deux causes les plus fréquentes sont des différences de jeux de résultats entre WUA et d'autres sources de mises à jour, ainsi qu'une configuration WSUS résiduelle qui redirige les appareils hors 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 les comparez pas directement — ils exploitent des sources de données différentes.

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 des correctifs de Level correspond à ce que ces commandes retournent, Level fonctionne correctement. Toute divergence provient de la couche WUA elle-même.


Lorsqu'une mise à jour signalée comme installée réapparaît

Lorsque vous utilisez l'action Installer les mises à jour Windows l'action, Level actualise la liste des mises à jour de l'appareil après l'installation et vérifie que les mises à jour attendues restent bien installées. Pour une installation ne redémarrant pas l'appareil, l'action attend environ 10 minutes avant la vérification.

Si une mise à jour attendue est à nouveau proposée ou n'est plus signalée comme installée après la vérification, Level signale Certaines mises à jour n'ont pas été installées correctement. Cela indique que la mise à jour a peut-être été annulée après avoir initialement signalé un succès. L'action renvoie également l'état de mise à jour actualisé à Level afin que la vue Mises à jour reflète ce que l'appareil rapporte actuellement.

Si Windows nécessite toujours un redémarrage et que Redémarrer après les mises à jour est désactivé, l'état de redémarrage en attente peut masquer l'état d'installation final. Level attend le redémarrage plutôt que de traiter cet état comme une annulation.


Diagnostic des problèmes liés à WSUS

Si Level n'affiche aucune mise à jour disponible et que les commandes WUA ci-dessus ne retournent également rien, une configuration WSUS résiduelle en est probablement la cause. Les appareils toujours pointés vers un serveur WSUS n'interrogent pas les serveurs de mises à jour de Microsoft, 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 solution correcte consiste à annuler l'objet de stratégie de groupe (GPO) qui a initialement déployé WSUS sur les appareils. Si ce 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éappliqués au prochain rafraîchissement de la stratégie. Supprimer le GPO est la seule solution 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 exécution, Level interroge à nouveau 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 une 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 directement l'API WUA ; 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 voit. Si ces commandes retournent les mêmes correctifs que ceux affichés par Level, Level fonctionne 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 au prochain rafraîchissement. Annulez ou désactivez d'abord le GPO.

  • Après suppression de la configuration WSUS, combien de temps faut-il avant que Level affiche les mises à jour ? Level interroge à nouveau WUA lors du prochain cycle d'archivage 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 de l'agent.

  • Une mise à jour a été signalée comme installée, mais elle est réapparue. Que dois-je vérifier ? Si la mise à jour a été installée via l'action Installer les mises à jour Windows l'action, Level effectue désormais une vérification post-installation, y compris après qu'une installation sans redémarrage a eu le temps de se stabiliser. Vérifiez la sortie de l'action pour Certaines mises à jour n'ont pas été installées correctement et confirmez si Windows nécessite toujours un redémarrage. Un redémarrage en attente peut empêcher la vérification finale jusqu'au redémarrage de l'appareil.

  • 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 Automatisations → 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 ?