Voici le guide que j’utilise pour dépanner une installation WSUS en panne. Cela peut se manifester par une erreur de la console du serveur, le toujours populaire « il n’est tout simplement pas signalé dans », ou par le journal des événements. Je vous guiderai à travers les composants de WSUS et comment vérifier et s’assurer que chacun d’eux fonctionne correctement.
Premièrement une note sur ce qui est disponible sur votre plate-forme.
Si vous êtes sur Windows 7/8/Server 2008R2/2012R2 alors wuauclt
fonctionne pour vous.
La seule commande réelle que vous devez connaître est wuauclt /resetauthorization /detectnow
.wauauclt /reportnow
ne fait pas ce que vous pensez et n’est pas très utile.
Si vous êtes sur Windows 10/Server 2016 alors wuauclt a été déprécisé et vous avez UsoClient
.usoclient.exe startscan
pour détecter les patchs manquantsusoclient.exe refreshsettings
pour rafraîchir les paramètres si des modifications ont été apportéesusoclient.exe startdownload
pour télécharger les patchsusoclient.exe startinstall
pour installer les patchs
Vous avez également la possibilité d’utiliser Powershell pour lancer une demande d’analyse.
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
En parlant de Powershell, Microsoft met à disposition un certain nombre de cmdlets pour gérer WSUS Server.Pour voir si ceux-ci sont disponibles pour vous, exécutez
Get-Command -Module UpdateServices
Ces cmdlets sont principalement orientés vers le déploiement et la gestion du serveur, des correctifs et des ordinateurs, et non vers le dépannage.
Sur le client, il existe un module WindowsUpdate mais sa seule fonction est Get-WindowsUpdateLog qui est utilisé pour générer un fichier WindowsUpdate.log lisible dans Windows 10.
Il existe un module PS tiers pour gérer Windows Update sur le client.
Install-Module PSWindowsUpdate Import-Module PSWindowsUpdate Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d Get-Command -Module PSWindowsUpdate Get-WUList –MicrosoftUpdate Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
Database
WSUS a la possibilité d’utiliser une base de données interne WID (Windows Internal DB) ou SQL. Je vais supposer qu’il est installé avec WID au chemin par défaut de C:\Windows\WID\
.
Les erreurs liées à la base de données (autres que la fragmentation) se produisent généralement au moment de l’installation, souvent pendant la séquence de tâches post-installation.
Bien qu’il soit possible de se connecter au WID et de déposer la SUSDB, les erreurs à ce stade sont généralement mieux réparées par une désinstallation et une réinstallation complètes.
Pour des raisons de référence, j’indiquerai que vous pouvez utiliser SQLCMD ou SQL Mgmt Studio pour vous connecter à la DB.
La chaîne de connexion est np:\.\pipe\MICROSOFT##WID\tsql\query
select name from sys.sysdatabasesdrop table susdbselect name from sys.sysdatabases
Désinstallation
Désinstaller en utilisant Server Manager.
S’assurer que le dossier de contenu WSUS a disparu ainsi que le site d’administration IIS WSUS.
La désinstallation de WSUS ne supprime pas toujours le WID. Supprimez-le dans Powershell avec Uninstall-WindowsFeature -Name windows-internal-database
Redémarrez et supprimez les fichiers c:\windows\WID\SUSDB.mdf
et SUSDB_log.ldf
.
Installation
En même temps que la sélection du rôle WSUS, Windows installe ASP.NET 4.6, RSAT Tools, IIS et le service d’activation des processus Windows.
Installation à partir d’une invite Powershell administrative
Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManagementTools
Après cela, avant de lancer l’interface graphique, exécutez :
Vérification du client
Il y a pas mal de causes potentielles à un client qui ne reçoit pas les mises à jour. Je vais passer par une série d’étapes de dépannage et à la fin donner deux scripts pour « réinitialiser » le client si rien d’autre ne fonctionne.
Vérifier l’espace libre sur le disque dur.
Vérifier le journal Windowsupdate.
Sur Windows 10, ouvrez une invite powershell d’administration et exécutez Get-Windowsupdatelog
. Le journal s’affichera sur le bureau. Attendez que la commande finisse de s’exécuter.
Sur Windows 7, vérifiez C:\Windows\WindowsUpdate.log
Cela devrait indiquer si le problème est basé sur le client ou un problème de communication avec un point de terminaison distant.
La première étape la plus simple pour dépanner le client est d’exécuter le Windows Update Troubleshooter.
Sur Windows 10, allez sur le site Microsoft iFixIt for WSUS.
Il vous sera demandé de télécharger le Windows Update Troubleshooter (au format de fichier cab). Enregistrez ce dernier et exécutez-le.
Choisir Windows 7 sur cette page vous invite à faire un clic droit sur Réseau (dans votre barre d’état système) et « Dépanner les problèmes ». Vous pouvez probablement sauter cette étape.
Sur Windows 10, essayez une vérification de mise à jour en ligne.
Vérifiez que le service est en cours d’exécution.Get-Service -Name wuauserv
Vérifiez ensuite et assurez-vous que le client reçoit les paramètres WSUS de la stratégie de groupe.
Exécutez gpresult /scope computer
pour voir si votre politique de paramètres WSUS est appliquée à la machine.
Recherche des paramètres WSUS dans le registre du client avec Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate
Telnet peut être utilisé pour vérifier les problèmes de connectivité des ports. Si vous tentez une connexion telnet à un port ouvert et accessible, telnet ouvrira une nouvelle fenêtre de commande vierge. Si le port est inaccessible, la commande échouera tout simplement. Essayez d’établir une connexion avec le serveur WSUS et le port. Si la connexion échoue, vérifiez les paramètres du pare-feu.telnet wsus.server.com 8530
Utilisons Powershell pour tester la connectivité.Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed
N’oubliez pas l’étape évidente de vérification du journal des événements.
Journal des événements des applications ainsi que les journaux des applications et des services >Microsoft >Windows >WindowsUpdateClient
Parfois, les antivirus ou d’autres agents de sécurité des points de terminaison peuvent interférer avec les communications réseau. Envisagez de les désactiver ou de les désinstaller pour effectuer des tests.
Exécutez sfc /scannow
à partir d’une invite de commande administrative pour vérifier la corruption des fichiers qui peut affecter le client.
Si vous avez des clients fonctionnels et non fonctionnels dans WSUS, vérifiez c:\program files\update services\WebServices\ClientWebServices
pour un fichier web.config
et comparez un fichier fonctionnel à un fichier non fonctionnel pour les différences.
Si ce client provient d’une image d’OS et que Sysprep n’a pas été exécuté, alors le problème peut être que plusieurs clients utilisent la même clé SUSClientID.
Vérifiez HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate
et supprimez la SUSClientID
actuelle.
Exécutez wuauclt /resetauthorization /detectnow
à partir d’une invite de commande élevée.
La séquence ci-dessous effacera le cache local du client Windows Update
La séquence ci-dessous réenregistrera une machine avec le serveur WSUS:
Vérifiez le serveur
Vérifiez l’espace libre sur le disque dur, pour le volume de démarrage et le volume de dépôt.
Vérifiez le service de mise à jour de WindowsGet-Service -name WsusService
Vérifiez le service IISGet-Service -name W3SVC
Le serveur écoute-t-il ? Vérifiez les ports ouverts.netstat -an | findstr 853*
Pouvez-vous naviguer vers
You should see a blue and tan Client Service info page.
If not, we can try resetting the port. Open an elevated command prompt and run wsusutil usecustomwebsite false
. Cela changera le port que WSUS utilise de 8530 à 80, donc assurez-vous que rien n'est exécuté sur le port 80.
Maintenant exécutez wsusutil usecustomwebsite true
suivi ensuite de iisreset /restart
. Cela change le port de nouveau à 8530 et "réinitialise" la configuration.
Vérifiez les règles du pare-feu.
Vérifiez la journalisation côté serveur : c:\program files\updateservices\logfiles\SoftwareDistribution
Exécuter sfc /scannow
pour vérifier la corruption des fichiers.
WSUSUtil.exe
-
wsusutil.exe reset
- Vérifie que chaque ligne de métadonnées de mise à jour dans la base de données a des fichiers de mise à jour correspondants stockés dans le système de fichiers. Si les fichiers de mise à jour sont manquants ou ont été corrompus, WSUS télécharge à nouveau les fichiers de mise à jour.
-
wsusutil.exe checkhealth
- Vérifie le journal des événements de l’application pour les entrées avec la source « Windows Server Update Services »
-
wsusutil.exe usecustomwebsite
- Change le port utilisé par WSUS. « Réinitialise » également le port pendant le changement.
IIS
Vérification des erreurs de connexion http dans c:\windows\system32\logfiles\httperr\
Vérification des liaisons IP.
Vérification de l’exécution du pool d’applications.
Vérifier les journaux IIS pour les erreurs de connexion c:\inetpub\logs\logfiles
L’installation par défaut de IIS par l’installateur WSUS n’installe pas le composant de journalisation cependant.
Vous devez l’activer sous Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging
Et voilà. Si suivre ce guide n’a pas résolu le problème, espérons que vous avez au moins trouvé le composant défaillant et que vous avez une meilleure idée de l’endroit où concentrer vos recherches sur Google.