Passer au contenu principal

Dépannage de Windows Update

Diagnostiquez les problèmes de Windows Update dans Level, y compris les écarts de résultats WUA et la configuration WSUS restante.

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.

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