/
/

Comment automatiser la relance des correctifs avec PowerShell pour réduire les interventions manuelles

par Team Ninja
How to Automate Patch Retry Logic via PowerShell to Reduce Manual Intervention blog banner image

Points clés

  • Identifier les correctifs en échec : utilisez PowerShell (PSWindowsUpdate ou les journaux d’événements) pour détecter les tentatives de mise à jour échouées ou incomplètes avant de relancer l’opération.
  • Relancer l’installation avec PowerShell : retentez les mises à jour échouées à l’aide de scripts intégrant une gestion des erreurs, afin d’éviter les échecs silencieux.
  • Suivre les tentatives : enregistrez le nombre de tentatives, les horodatages et les KB en échec dans le Registre pour éviter les boucles infinies et conserver de la visibilité.
  • Automatiser avec des tâches planifiées ou un RMM : planifiez des scripts récurrents de relance des correctifs ou déployez-les à grande échelle avec NinjaOne, une GPO ou des outils similaires.
  • Valider les conditions de mise à jour : assurez-vous que les sources de mise à jour sont accessibles et redémarrez le service Windows Update avant chaque nouvelle tentative pour augmenter le taux de réussite.

Les mises à jour en échec sont un problème récurrent de la gestion des correctifs. Elles proviennent souvent de problèmes réseau, de verrous système ou de conflits entre services. Sans correction, elles peuvent dégrader les performances et exposer les terminaux à des menaces.

Automatiser la relance des correctifs permet de limiter les risques, de réduire le temps moyen de réparation (MTTR) et d’améliorer le taux de réussite des mises à jour, sans surcharger les techniciens avec un volume de tickets trop élevé.

Standardisez vos processus de mise à jour pour améliorer le MTTR et la documentation.

→ Essayez gratuitement la Gestion autonome des correctifs de NinjaOne

Automatiser la relance des correctifs pour limiter les échecs de mise à jour

La correction automatique des échecs de correctifs supprime le besoin de diagnostics manuels précipités et garantit la conformité des correctifs sur l’ensemble des terminaux. Résultat : la charge de travail des techniciens diminue, tandis que les journaux donnent de la visibilité sur les schémas d’échec récurrents.

📌 Cas d’usage : utilisez des scripts PowerShell pour lister les tentatives de mise à jour passées et extraire les codes d’erreur, afin que les scripts puissent relancer, temporiser ou s’arrêter. Grâce aux tâches planifiées, aux plateformes RMM et au déploiement par GPO, les techniciens peuvent automatiser la relance des correctifs manquants ou en échec.

📌 Prérequis :

  • Système d’exploitation pris en charge : Windows 11 ou Windows Server 2016 et versions ultérieures
  • Autorisations : privilèges administrateur ou SYSTEM
  • Source de mise à jour : WSUS, Intune ou Windows Update
  • Facultatif : une plateforme RMM comme NinjaOne

💡 Remarque : certaines étapes peuvent varier selon les valeurs par défaut du système ou les paramètres actifs de chaque environnement. Par ailleurs, Microsoft a annoncé l’abandon progressif de WSUS. Bien qu’il soit encore fourni avec Windows à l’heure où nous écrivons ces lignes, nous recommandons de migrer vers des outils cloud comme Windows Autopatch et Intune, ou Azure Update Manager.

Étape 1 : identifier les correctifs en échec avec des scripts PowerShell

Une correction automatisée efficace des échecs de correctifs commence par une détection proactive. Les scripts suivants interrogent l’historique des mises à jour d’un terminal et leurs résultats, puis renvoient les entrées problématiques pour y voir plus clair.

Trier les correctifs en échec avec le module PSWindowsUpdate

Ce script lit les 200 dernières entrées de l’historique des mises à jour, exclut les installations réussies et n’affiche que les entrées en échec.

Import-Module PSWindowsUpdate
# Retrieve failed updates
$failedUpdates = Get-WindowsUpdate -IsHidden:$false -ErrorAction SilentlyContinue |
Where-Object { $_.ResultCode -ne 2 } # 2 = Succeeded

⚠️ Important : ne pas installer PSWindowsUpdate provoquera des erreurs, car ce module PowerShell n’est pas intégré à Windows par défaut. (Voir ⚠️ Points de vigilance)

Autre méthode : trier les correctifs en échec via le journal d’événements Windows

Ce script interroge les journaux du client Windows Update et recherche les entrées présentant des signaux d’échec courants, comme les ID 20, 25 et 31.

Get-WinEvent -LogName "System" | Where-Object {
$_.ProviderName -eq "Microsoft-Windows-WindowsUpdateClient" -and
$_.Id -in 20, 25, 31 # Common failure event IDs
}

Étape 2 : relancer les correctifs en échec avec PowerShell

Une fois les mises à jour en échec identifiées sur un terminal, des scripts PowerShell peuvent relancer automatiquement leur installation. Vous supprimez ainsi les tâches de mise à jour manuelles et obtenez une correction sans intervention, à grande échelle, dès qu’un échec est détecté.

Exemple de script PowerShell pour relancer l’installation des mises à jour en échec

Ce script s’appuie sur $failedUpdates, comme à l’étape 1, et parcourt la liste des mises à jour en échec pour les réinstaller.

foreach ($update in $failedUpdates) {
Write-Output "Retrying: $($update.Title)"
Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -AutoReboot -IgnoreReboot -ErrorAction Continue
}

Exemple de script avec gestion des erreurs

try {
Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -ErrorAction Stop
} catch {
Write-Output "Retry failed for: $($update.KBArticleID) - $_"
}

⚠️ Important : utilisez la gestion des erreurs pour éviter que vos scripts n’échouent en silence. (Voir ⚠️ Points de vigilance.)

Étape 3 : consigner les tentatives de relance dans le Registre pour en assurer le suivi

Utilisez le Registre pour stocker le nombre de tentatives et les KB en échec, ce qui permet des requêtes locales rapides. Vous conservez ainsi une identification persistante, même lorsqu’un terminal est déconnecté lors d’une panne WSUS ou RMM.

Exemple de script PowerShell pour suivre les tentatives et les horodatages des résultats dans le Registre :

New-Item -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "LastRetry" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "FailedKBs" -Value ($failedUpdates.KBArticleID -join ", ")

Exemple de script PowerShell pour vérifier l’état des correctifs via le Registre :

Get-ItemProperty -Path ‘HKLM:\SOFTWARE\Org\PatchRetry’

Étape 4 : automatiser la relance avec des tâches planifiées ou NinjaOne RMM

Planifiez des scripts sur l’ensemble de vos terminaux pour vérifier régulièrement la conformité et réinstaller automatiquement les correctifs sur les appareils non conformes. Avec NinjaOne, les techniciens peuvent créer des conditions composées afin que les relances de correctifs soient réappliquées après une exécution en échec.

Créer une tâche planifiée récurrente à partir d’un script .ps1 existant via CMD (invite de commande) :

schtasks /create /tn "RetryFailedPatches" /tr "powershell.exe -File C:\Scripts\PatchRetry.ps1" /sc daily /st 02:00 /ru SYSTEM

💡 Conseil : enregistrez le script de relance présenté à l’étape 2 sous forme de fichier .ps1, puis pointez votre commande vers son chemin d’accès.

Mettre à jour automatiquement les valeurs du Registre et surveiller la réussite ou la limite de tentatives via un script PowerShell

$retryCount = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry").RetryCount
if ($retryCount -gt 3) {
# escalate or log for technician
}

Étape 5 : utiliser une GPO pour garantir des paramètres de mise à jour compatibles avec la relance

Les relances automatisées de correctifs sont d’autant plus efficaces que le comportement de Windows Update est prévisible. Les techniciens peuvent déployer des GPO pour prétélécharger le contenu des mises à jour, planifier les installations et différer les redémarrages au sein de leurs références de configuration.

⚠️ Avertissement : il est recommandé de tester les GPO en local avant de les déployer. (Voir ⚠️ Points de vigilance.)

  1. Ouvrez la console de gestion des stratégies de groupe (gpmc.msc), puis rendez-vous dans :

Configuration ordinateur > Modèles d’administration > Composants Windows > Windows Update

  1. Configurez les politiques suivantes :
Paramètres Configuration recommandée Définition
Configurer les mises à jour automatiques Cochez la case Téléchargement automatique et planification des installations. Prétélécharge automatiquement les mises à jour et les installe selon un calendrier défini.
Spécifier l’emplacement intranet du service de mise à jour Microsoft Sélectionnez Activé et saisissez l’URL HTTP(S) de votre serveur WSUS dans les champs suivants :

  • Configurer le service intranet de mise à jour pour la détection des mises à jour.
  • Configurer le serveur de statistiques intranet.
Indique le serveur WSUS que les mises à jour automatiques interrogeront.
Pas de redémarrage automatique pour les installations planifiées de mises à jour automatiques Configurez la politique sur Activé. Désactive les redémarrages automatiques lorsqu’un utilisateur est connecté, ce qui évite les interruptions en pleine session.
Redemander le redémarrage avec les installations planifiées Configurez la politique sur Désactivé. Cesse d’inviter les utilisateurs à redémarrer en pleine session après une mise à jour planifiée.
  1. Après avoir lié la GPO à une OU (unité organisationnelle), saisissez la commande PowerShell suivante sur un terminal cible : gpupdate /force

⚠️ Points de vigilance

Risques Conséquences possibles Solutions
Ne pas installer le module PSWindowsUpdate Utiliser les cmdlets Windows Update sans le module PowerShell requis génère des erreurs. Chargez le module PSWindowsUpdate en saisissant Import-Module PSWindowsUpdate dans une invite PowerShell.
Ne pas intégrer de gestion des erreurs dans les scripts Sans gestion des erreurs, les scripts échouent en silence et les techniciens en sont réduits à deviner l’origine du problème. Intégrez la gestion des erreurs PowerShell à vos scripts pour mieux documenter les erreurs qui surviennent.
Déployer des GPO non testées Des GPO non testées peuvent contenir des erreurs de configuration lourdes de conséquences pour les terminaux une fois déployées. Testez les GPO en local, dans un environnement contrôlé, avant de les déployer à l’échelle de votre environnement.

Ce qu’il faut prendre en compte pour automatiser la relance des correctifs en échec

Lorsque vous automatisez les relances de correctifs, la fluidité du passage d’une étape à l’autre est déterminante : le moindre accroc peut générer des erreurs. Les points suivants aident vos scripts à choisir la bonne étape et améliorent le taux de réussite des relances.

Imposer des limites de tentatives

Des limites de tentatives stockées dans le Registre évitent les boucles de relance infinies et le spam de tickets. Prévoyez un incrément à chaque exécution afin d’allonger le délai d’attente après chaque échec. Une fois le nombre maximal de tentatives atteint, ces limites empêchent les scripts de s’exécuter et déclenchent une seule escalade.

Redémarrer le service Windows Update

Des échecs de mise à jour peuvent survenir lorsque Windows Update (wuauserv) est inaccessible, et un simple redémarrage du service suffit souvent à résoudre le problème. Il est donc conseillé de redémarrer Windows Update avant de lancer une nouvelle tentative.

  • Exemple de script PowerShell pour redémarrer wuauserv : Restart-Service -Name wuauserv

Solution pour les appareils hors ligne

Les appareils hors ligne épuisent rapidement les limites de tentatives, ce qui conduit les scripts à les ignorer purement et simplement. Avec une plateforme RMM comme NinjaOne, les techniciens peuvent définir une condition sur le résultat d’un script pour relancer l’opération ou redémarrer l’appareil en dehors des heures de pointe.

Valider les sources de correctifs

Avant toute relance, les scripts doivent vérifier que leur source de correctifs est accessible, car les sources injoignables sont une cause fréquente d’échec. Si la source est indisponible après vérification, prévoyez un court délai d’attente, sans le comptabiliser comme une tentative échouée. Si un seul KB échoue, mettez-le de côté, poursuivez avec les autres correctifs, puis réessayez plus tard.

Guide de démarrage rapide

NinjaOne propose plusieurs fonctions pour automatiser la gestion des correctifs et réduire les interventions manuelles :

1. Données IA sur les correctifs

Évalue automatiquement les risques liés aux correctifs toutes les six heures

  • Peut faire passer les correctifs d’un état à l’autre (approuvé, manuel, rejeté) en fonction des retours de la communauté
  • Aide à limiter les risques liés aux correctifs potentiellement problématiques

2. Stratégies d’approbation et de relance

Plusieurs niveaux d’approbation des correctifs :

  • Dérogations au niveau de l’appareil
  • Dérogations au niveau de la politique
  • Approbations ou rejets préventifs au niveau global
  • Possibilité d’approuver automatiquement les correctifs après un nombre de jours défini (jusqu’à 30 jours pour les mises à jour, 365 jours pour les mises à jour de fonctionnalités)
  • Approbation ou rejet manuel des correctifs par numéro de KB ou par Patch ID

3. Déploiement par anneaux

Déploiement progressif des correctifs pour limiter les risques

  • Créez des groupes d’appareils correspondant aux différents anneaux de déploiement
  • Testez les correctifs sur un petit échantillon d’appareils avant un déploiement plus large

4. Planification et relance des correctifs

Il est recommandé d’espacer les cycles d’analyse et de mise à jour d’au moins une heure

  • Les cycles d’analyse s’exécutent avant les cycles d’application
  • Options de redémarrage et notifications configurables

Résoudre les problèmes liés à l’automatisation des scripts de relance

Problème n° 1 : aucune activité de relance

Sans élévation de privilèges, la logique de relance ne s’exécute pas et aucune activité n’apparaît. Pour y remédier, vérifiez que le script s’exécute en tant que SYSTEM ou avec les privilèges les plus élevés. Validez également la syntaxe de votre script et assurez-vous que tous les chemins référencés existent.

Problème n° 2 : mise à jour introuvable

Vérifiez que la mise à jour manquante est bien disponible depuis la source que vous avez indiquée. Envisagez d’autres sources, comme Windows Update plutôt que Windows Server Update Services (WSUS), afin de ne pas gaspiller vos tentatives en requêtes inutiles.

Problème n° 3 : les mises à jour échouent systématiquement

Combinez vos relances aux informations issues des journaux Windows Update : vous pourrez ainsi cerner précisément les erreurs à l’origine des correctifs en échec.

  • Exemple de script PowerShell pour interroger les journaux Windows Update :

Import-Module PSWindowsUpdate

Get-WindowsUpdateLog

Problème n° 4 : boucle de redémarrage

Certaines mises à jour exigent un redémarrage de l’appareil avant d’être appliquées, et un simple arrêt n’a pas le même effet. Si cette étape est manquée, on entre facilement dans un cycle de réapplication des correctifs sans le moindre changement visible. Pour éviter cela, vérifiez si un terminal demande un redémarrage, validez-le, puis relancez la mise à jour.

Les services NinjaOne qui simplifient l’automatisation des relances de correctifs

NinjaOne aide à automatiser les requêtes et la correction des correctifs afin de garantir la conformité et de réduire le besoin d’intervention manuelle. Voici quelques fonctions NinjaOne sur lesquelles vous appuyer pour simplifier l’automatisation des relances de correctifs à grande échelle.

  • Tâches planifiées par politique. Utilisez les capacités d’automatisation planifiée de NinjaOne pour programmer des relances sur des groupes d’appareils à des intervalles définis.
  • Tableau de bord de gestion des correctifs. Le tableau de bord NinjaOne classe les appareils selon les correctifs en échec, réussis et en attente, pour une meilleure visibilité. Les techniciens peuvent aussi y générer facilement des rapports de correctifs personnalisés.
  • Conditions composées. Créez des déclencheurs d’automatisation personnalisés, par exemple l’envoi de notifications, l’exécution de scripts ou l’escalade de cas, en fonction du résultat de vos scripts.
  • Déploiement de scripts à distance. Exécutez des scripts à distance et à grande échelle, pour une automatisation cohérente des relances de correctifs dans tout votre environnement.

Automatisez la documentation des correctifs pour une gestion efficace des erreurs.

→ Découvrez NinjaOne pour la gestion des correctifs

Automatisez la correction des échecs de correctifs pour maximiser la disponibilité

De l’interrogation de l’historique des mises à jour à l’application de politiques de référence, ce guide donne aux techniciens des bases solides en matière d’automatisation. NinjaOne prenant en charge la surveillance, le déploiement de scripts et la planification, la logique de relance des correctifs peut être automatisée depuis un panneau de contrôle centralisé.

Regrouper ses stratégies d’automatisation au sein d’une plateforme centralisée rend l’ensemble du dispositif proactif et permet de corriger rapidement les problèmes dès leur détection. Vous réduisez ainsi les temps d’arrêt, le volume de tickets, et vous garantissez une conformité des correctifs homogène sur tous les terminaux.

Sujets connexes :

FAQs

Vous pouvez automatiser les relances de correctifs à l’aide de scripts PowerShell qui détectent les mises à jour en échec, parcourent les KB concernés et les réinstallent via le module PSWindowsUpdate. En y ajoutant une gestion des erreurs et une logique de relance, vous obtenez une correction fiable et sans intervention.

Les échecs de correctifs proviennent le plus souvent de problèmes réseau, de verrous système et de conflits entre services. Une logique de relance automatisée les réduit en détectant les erreurs tôt, en retentant l’installation, en redémarrant les services si nécessaire et en consignant chaque tentative pour garder de la visibilité.

Vous pouvez stocker le nombre de tentatives, les horodatages et les KB en échec dans le Registre Windows. Cette journalisation persistante évite les boucles infinies, permet d’appliquer des limites de tentatives et facilite un diagnostic précis sur l’ensemble des terminaux.

Oui. Les tâches planifiées, les paramètres de GPO et les plateformes RMM comme NinjaOne vous permettent de déployer des scripts, d’appliquer des politiques de mise à jour et d’exécuter des relances à grande échelle sur des groupes d’appareils, avec des règles d’automatisation cohérentes.

Le module PSWindowsUpdate est indispensable pour interroger, installer et relancer les mises à jour Windows. Sans lui, les scripts de correctifs basés sur PowerShell échouent ou renvoient des résultats incomplets.

Les GPO garantissent un comportement de mise à jour prévisible : elles prétéléchargent les mises à jour, planifient les installations, contrôlent les redémarrages et définissent les sources WSUS. Elles créent ainsi un environnement dans lequel la logique de relance fonctionne de manière constante.

Des outils tiers, comme NinjaOne RMM, apportent les fonctionnalités dont les équipes informatiques ont besoin pour combler les lacunes habituelles d’Intune. Cela inclut la mise à jour des applications tierces, la couverture multiplateforme pour macOS et Linux, ainsi que l’assistance et le dépannage à distance, qu’Intune ne propose pas nativement.

You might also like

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?

Termes et conditions NinjaOne

En cliquant sur le bouton « J’accepte » ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni « tel quel » et « tel que disponible », sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).