Gérer les mises à jour avec WSUS peut parfois s’avérer fastidieux, surtout lorsqu’il s’agit d’approuver manuellement celles qui doivent être déployées et celles que vous souhaitez bloquer. Il se peut aussi que vous ayez rencontré des problèmes avec des mises à jour approuvées qui causent ensuite des dysfonctionnements ; vous avez donc besoin d’un moyen de les refuser ou de les supprimer proprement. Si c’est votre cas, comprendre comment configurer les groupes cibles et utiliser PowerShell pour l’automatisation pourrait bien vous être très utile. Le processus combine étapes manuelles et scripts, ce qui peut paraître étrange au premier abord, mais s’avère efficace une fois maîtrisé. Attendez-vous à quelques essais, erreurs et peut-être même à un ou deux redémarrages, mais le jeu en vaut la chandelle pour obtenir le contrôle nécessaire. De plus, l’automatisation des approbations vous évite de passer votre journée à cliquer après la configuration initiale.
Comment résoudre les problèmes courants d’approbation des mises à jour WSUS — Étape par étape
Configurer les groupes d’ordinateurs cibles dans WSUS
C’est le principe fondamental d’une gestion efficace des mises à jour. En affectant provisoirement des ordinateurs à des groupes, vous contrôlez l’ordre de déploiement des correctifs : lesquels sont ignorés et quand sont déployés en production. Généralement, votre environnement est organisé en groupes de test et de production, comme Test_Srv_WSUS, Test_Wks_WSUS, etc. Sur votre serveur Windows, ouvrez la console WSUS, puis accédez à Ordinateurs > Tous les ordinateurs.
À partir de là, vous pouvez créer des groupes directement ou activer le ciblage côté client via la stratégie de groupe si vous souhaitez que les clients s’assignent automatiquement en fonction de vos règles. Chemin d’accès à la stratégie de groupe : Configuration ordinateur > Stratégies > Modèles d’administration > Composants Windows > Windows Update > Ciblage. Activez l’option « Activer le ciblage côté client » et spécifiez le nom du groupe. C’est très pratique car cela simplifie la gestion : aucune mise à jour manuelle n’est nécessaire une fois la configuration effectuée.
Comment approuver et déployer manuellement les mises à jour dans WSUS ?
L’approbation manuelle traditionnelle : certes, ce n’est pas la solution la plus rapide, mais au moins vous voyez ce qui est déployé et quand. Dans la console WSUS, accédez à Mises à jour. Vous y trouverez un récapitulatif, divisé en sections telles que Toutes les mises à jour, Mises à jour critiques et Mises à jour de sécurité. Vous souhaitez en approuver certaines ? Recherchez par numéro KB ou filtrez par date.
- Appliquez un filtre pour
Approval=Unapprovedafficher les mises à jour en attente. - Cliquez avec le bouton droit sur une mise à jour, puis sélectionnez Approuver.
- Sélectionnez le groupe spécifique, par exemple Test_Srv_WSUS, et choisissez Approuver pour l’installation.
Personnellement, je trouve ça assez fastidieux, surtout avec des dizaines, voire des centaines de mises à jour. Utiliser CTRL+clic ou MAJ+clic permet d’en sélectionner plusieurs à la fois, mais ça reste une tâche manuelle. Après approbation, un message de confirmation « Résultat : Succès » s’affiche. C’est un processus simple, certes, mais un peu lent pour des approbations en masse.
Sur certaines configurations, ce processus peut être instable : la fenêtre d’approbation peut parfois présenter des dysfonctionnements ou mettre du temps à s’afficher. Il est donc conseillé de patienter ou d’actualiser la page. Une fois la procédure terminée, les machines cibles intégreront les mises à jour selon leur calendrier de synchronisation.
Comment configurer les règles d’approbation automatique des mises à jour dans WSUS
Si la méthode manuelle ne vous convient pas (et honnêtement, elle a probablement raison), la configuration de l’approbation automatique est la solution. Elle réduit les temps d’attente et le risque d’oublier d’approuver une demande. Dans la console, accédez à Options > Approbations automatiques. La règle par défaut est désactivée et peu performante ; cliquez donc sur Nouvelle règle pour créer la vôtre.
- Choisissez le type de mises à jour qui sont approuvées automatiquement, comme les mises à jour critiques, de sécurité ou de définition.
- Sélectionnez le groupe cible, par exemple votre groupe Test_Srv_WSUS pour le moment, puis étendez-le à la production une fois qu’il sera stable.
- Fixez une date limite si vous souhaitez imposer les mises à jour aux clients — parfois nécessaire pour les correctifs critiques, mais attention aux redémarrages involontaires.
- Dans l’ onglet Avancé, activez les options d’approbation automatique des mises à jour pour WSUS lui-même et pour toutes les mises à jour signées par Microsoft susceptibles de changer d’apparence ou de classification ultérieurement.
Ce processus s’active généralement le deuxième mardi du mois, date de déploiement habituelle des mises à jour. Toutefois, vous pouvez le déclencher manuellement ultérieurement via PowerShell si nécessaire. En règle générale, cela signifie simplement que les mises à jour sont approuvées et déployées, et vos utilisateurs ne s’en apercevront probablement même pas. Sachez cependant qu’augmenter la fréquence de synchronisation ou déclencher manuellement les mises à jour avec PowerShell permet d’accélérer le processus, notamment dans les environnements de grande taille.
Refuser et supprimer les mises à jour erronées
Parfois, une mise à jour cause plus de problèmes qu’elle n’en résout. Pour y remédier, repérez la mise à jour problématique dans la console, faites un clic droit et sélectionnez Refuser. Cela revient à dire à WSUS : « Ne plus installer cette mise à jour.» Ensuite, choisissez le groupe cible concerné et sélectionnez Approuvé pour la suppression. Après quelques instants, WSUS indiquera aux clients de désinstaller ou d’ignorer cette mise à jour — une solution précieuse en cas de problème.
Approuvez les mises à jour WSUS avec PowerShell — car l’interface graphique n’est pas toujours assez rapide.
Si cliquer vous semble fastidieux ou si votre configuration est complexe, PowerShell peut prendre en charge les tâches les plus lourdes. Connectez-vous à votre serveur WSUS avec :
$WsusServerFqdn='mont-wsus.woshub.com' [void][reflection.assembly]::LoadWithPartialName("Microsoft. UpdateServices. Administration") $wsus = [Microsoft. UpdateServices. Administration. AdminProxy]::getUpdateServer($WsusServerFqdn, $False, '8530')
Une fois connecté, vous pouvez exécuter des commandes comme :
$wsus. GetSubscription().StartSynchronization(); Pour synchroniser les mises à jour ou lister les groupes, utilisez : $wsus. GetComputerTargetGroups(). Pour approuver les mises à jour d’un groupe spécifique, sélectionnez son objet, par exemple :
$group = $wsus. GetComputerTargetGroups() | ? {$_. Name -eq "Test_WKS_WSUS"} puis approuvez les mises à jour, comme ceci :
$updates = $wsus. GetUpdates() | ? {($_. CreationDate -gt "6/1/2022" -and $_. CreationDate -lt "7/1/2022" -and $_. Title -notmatch ".net Framework" -and $_. PublicationState -ne "Expired") -and ($_. ProductFamilyTitles -eq "Windows" -or $_. ProductFamilyTitles -eq "Office") -and ($_. UpdateClassificationTitle -eq "Security Updates" -or $_. UpdateClassificationTitle -eq "Critical Updates")} foreach ($update in $updates) { $update. Approve("Install", $group) }
Il faut un petit temps d’adaptation, mais si l’automatisation vous passionne, la création de scripts d’approbation pour plusieurs mises à jour sur plusieurs groupes change la donne. Mieux encore, vous pouvez étendre ce système avec des scripts pour synchroniser, approuver ou refuser régulièrement les mises à jour selon vos critères.
Copie des mises à jour approuvées entre groupes WSUS — Parce que le glisser-déposer manuel, c’est pénible
Malheureusement, la console ne propose aucune option intégrée pour copier directement les mises à jour approuvées entre les groupes. En général, la seule solution consiste à rechercher manuellement chaque mise à jour approuvée et à l’approuver pour le nouveau groupe. Ce qui est fastidieux, surtout avec des dizaines de mises à jour.
Voici un petit script PowerShell astucieux que j’ai concocté pour automatiser cette étape. Il analyse les mises à jour approuvées dans un groupe, puis approuve ces mêmes mises à jour dans un autre groupe :
$WsusServerFqdn='mont-wsus.woshub.com' $WsusSourceGroup = 'Workstation_Test' $WsusTargetGroup = 'WorkstationProduction' [void][reflection.assembly]::LoadWithPartialName("Microsoft. UpdateServices. Administration") $wsus = [Microsoft. UpdateServices. Administration. AdminProxy]::getUpdateServer($WsusServerFqdn, $False, '8530') $Groups = $wsus. GetComputerTargetGroups() $WsusSourceGroupObj = $Groups | Where {$_. Name -eq $WsusSourceGroup} $WsusTargetGroupObj = $Groups | Where {$_. Name -eq $WsusTargetGroup} $Updates = $wsus. GetUpdates() $i = 0 ForEach ($Update in $Updates) { if ($Update. GetUpdateApprovals($WsusSourceGroupObj).Count -ne 0 -and $Update. GetUpdateApprovals($WsusTargetGroupObj).Count -eq 0) { $i ++ Write-Host ("Approving " + $Update. Title) $Update. Approve('Install', $WsusTargetGroupObj) | Out-Null } } Write-Output ("Approved {0} updates for target group {1}" -f $i, $WsusTargetGroup) C’est un peu rudimentaire, mais ça fait gagner du temps. Il suffit de modifier les noms des groupes, de l’exécuter après la phase de test, et le tour est joué. Les approbations seront enregistrées directement dans PowerShell, ou vous pouvez les rediriger vers un fichier texte pour l’archivage.
J’espère que cela simplifiera la gestion des mises à jour WSUS. Parfois, la meilleure solution pour gérer tous les aléas est de s’appuyer sur des scripts et l’automatisation, surtout dans les environnements importants comptant des centaines d’appareils. Croisons les doigts pour que cela permette à certains de gagner du temps et d’éviter bien des maux de tête.