Gérer le service Windows Update avec « PSWindowsUpdate »
Sur les postes clients, c’est le service Windows Update qui a en charge la gestion des mises à jour, que ce soit pour rechercher les mises à jour auprès du serveur WSUS, ou pour installer les mises à jour et planifier le redémarrage.
Pour bien gérer le service Windows Update des postes de travail et serveurs en ligne de commande, je vous recommande le module PowerShell nommé « PSWindowsUpdate » : il compte plus de 167 millions de téléchargements.
Ce module sert à rechercher, installer et désinstaller les mises à jour, mais également à afficher la configuration de Windows Update, à afficher l’historique des mises à jour et à réinitialiser le composant Windows Update. Voilà pour ses fonctionnalités principales, car, comme vous le verrez ci-dessous, il intègre un grand nombre de commandes.
I. Installation du module PSWindowsUpdate
Ce module est disponible sur le site PowerShell Gallery et il s’installe avec la commande suivante :
Install-Module -Name PSWindowsUpdate -Force
Ce module fonctionne avec Windows PowerShell et PowerShell, y compris PowerShell 7. Une fois l’installation terminée, vous pouvez lister les commandes disponibles dans ce module :
Get-Command -Module PSWindowsUpdate
II. Exemples d’utilisation de PSWindowsUpdate
Difficile d’être exhaustif sur les possibilités d’utilisation de ce module compte tenu de la quantité importante de commandes qu’il contient. Néanmoins, voici quelques exemples d’utilisation.
- Afficher la configuration du service Windows Update
Tout d’abord, nous pouvons nous assurer que notre machine cliente est bien configurée pour utiliser le serveur WSUS, qu’elle est bien associée au bon groupe WSUS, etc… La commande ci-dessous donne des informations très intéressantes sur la configuration du service Windows Update.
Get-WUSettings
Dans l’exemple ci-dessus, on constate que l’ordinateur « PC-01 » s’appuie sur le serveur « srv-wsus.it-connect.local » au travers d’une connexion HTTPS et qu’il est intégré au groupe « PC » du serveur WSUS. Tout cela est conforme à la configuration établie précédemment.
Note : les commandes du module PSWindowsUpdate intègrent un paramètre nommé « -ComputerName » qui permet d’interroger un ordinateur à distance. Ainsi, on peut imaginer déclencher une installation de mises à jour à distance sur une ou plusieurs machines. Cette fonctionnalité s’appuie sur WinRM, qui doit être configuré en amont (par GPO, par exemple).
- Lister les mises à jour disponibles
S’il y a des mises à jour disponibles, elles seront listées. Si une mise à jour devait être disponible, mais qu’elle ne s’affiche pas, vérifiez qu’elle soit bien approuvée sur le serveur WSUS.
Get-WindowsUpdate
- Installer toutes les mises à jour en attente sur la machine :
Cette commande va télécharger et installer l’ensemble des mises à jour disponibles pour cette machine, en procédant au redémarrage automatique (si nécessaire).
Install-WindowsUpdate -AcceptAll -AutoReboot
- Un redémarrage est-il en attente ?
Dans de nombreux cas, l’installation des mises à jour implique un redémarrage du système. Cette commande sert à vérifier s’il y a un redémarrage en attente ou non.
Get-WURebootStatus
- Afficher l’historique des mises à jour installées
Cette commande affiche un historique complet des mises à jour avec l’état de l’installation, la date et l’heure, ainsi que le nom de la mise à jour.
Get-WUHistory
- Désinstaller une mise à jour de Windows
Pour désinstaller une mise à jour, il suffit de spécifier son ID de KB. Voici un exemple avec la KB « KB015013 » :
Remove-WindowsUpdate -KBArticleID KB015013
- Réinitialiser le composant Windows Update
Bien que ce soit une opération radicale, il arrive que le service Windows Update soit très capricieux ! Une erreur s’affiche et vous ne parvenez pas à la corriger ? Dans ce cas, la réinitialisation du composant Windows Update peut s’avérer utile !
Cette commande supprime le cache local de Windows Update, réenregistrer les librairies (DLL), supprimer les logs, etc… Ce qui permet de repartir à zéro au niveau du service Windows Update.
Reset-WUComponents -Verbose
Le module PSWindowsUpdate est très complet pour gérer les mises à jour sur un poste à partir de PowerShell ! Un must have pour interagir avec Windows Update en ligne de commande ! Ne vous en privez pas.
Bonjour merci pour l’article,
A Partir de mon poste admin je parviens à avoir les informations via WUSettings mais lorsque je veux obtenir les informations d’un autre poste ou de l’un de mes serveurs j’obtiens l’erreur:
Get-WUSettings : Le chemin réseau n’a pas été trouvé.
Au caractère Ligne:1 : 1
+ Get-WUSettings -ComputerName nom_machine.nom_domaine.com
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WUSettings], IOException
+ FullyQualifiedErrorId : System.IO.IOException,PSWindowsUpdate.GetWUSettings