Les pannes de DNS, l’échec des correctifs Windows et les mauvaises configurations de BitLocker peuvent affaiblir la posture de sécurité d’un environnement. L’automatisation de la résolution de ces problèmes à l’aide de scripts améliore le temps moyen de réparation (MTTR), réduisant ainsi la fréquence des tickets d’assistance et la durée des temps d’arrêt. Ce guide décrit les scripts de remédiation que les administrateurs peuvent déployer via un logiciel de surveillance et gestion à distance (RMM) pour résoudre les problèmes.
Scripts de remédiation pour résoudre les problèmes liés au DNS, aux correctifs et à BitLocker
L’utilisation d’une plateforme RMM pour déployer des scripts minimise les corrections manuelles et répétitives, ce qui permet aux administrateurs de centraliser la gestion des terminaux de manière automatique. Cela leur permet de fournir des services plus rapides et de remédier instantanément aux problèmes, tout en assurant la conformité des terminaux.
📌 Conditions préalables :
- Accès à une plateforme RMM.
- PowerShell 5.1 ou plus récent sur les terminaux cibles.
- Accès à un compte administrateur.
- Installation des fonctions BitLocker et Windows Update.
- Accès à la stratégie de groupe pour un déploiement centralisé.
📌 Stratégies de déploiement recommandées :
💡 Note : Les scripts de ce guide fonctionnent pour les plateformes RMM qui proposent le déploiement à distance de PowerShell et de scripts batch. Pour simplifier, nous utiliserons NinjaOne RMM comme outil de déploiement pour nos scripts de remédiation.
⚠️ Important: Effectuez les étapes suivantes pour les méthodes 1 à 6 avant de poursuivre :
La plateforme RMM de NinjaOne prend en charge les langages JavaScript, PowerShell, Batch, ShellScript et VBS Script. Voici comment télécharger des scripts personnalisés dans la bibliothèque de scripts de NinjaOne :
- Ouvrez NinjaOne RMM, puis allez dans :
Administration > Bibliothèque > Automatisation.
- Dans Automatisation, appuyez sur Ajouter et sélectionnez Nouveau script.
- Complétez les champs et les paramètres nécessaires pour votre script personnalisé.
- Saisissez les scripts fournis dans ce guide pour les enregistrer en tant que script d’automatisation.
- Assurez-vous que la langue sélectionnée correspond à la langue du script.
- Une fois enregistré, vous pouvez utiliser les outils intégrés de NinjaOne pour sélectionner les appareils cibles pour l’automatisation en cochant la case à côté d’eux.
Méthode 1 : Utilisation de scripts PowerShell pour résoudre automatiquement les problèmes DNS
📌 Cas d’utilisation : Utiliser des scripts PowerShell pour nettoyer le DNS, en remplaçant les enregistrements de noms de domaine et d’adresses IP par de nouveaux. Les administrateurs peuvent également utiliser PowerShell pour redémarrer le service client DNS afin de rétablir la connexion avec les serveurs DNS.
⚠️ Important: Les redémarrages DNS ne s’appliquent que temporairement dans un environnement joint à un domaine avec des configurations DNS via GPO. (Voir ⚠️ Choses à surveiller. )
Script de remédiation pour vider le cache DNS :
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8","8.8.4.4")
Clear-DnsClientCache
💡 Remarque : Tous les appareils n’utilisent pas « Ethernet » comme nom d’adaptateur réseau par défaut, ce qui peut provoquer des erreurs lors d’un déploiement en masse. Vous pouvez utiliser des caractères génériques pour déployer des scripts sur des appareils cibles dont les noms de cartes réseau varient.
Get-NetAdapter | Where-Object { $_.Status -eq "Up" } | ForEach-Object {
Set-DnsClientServerAddress -InterfaceAlias $_.Name -ServerAddresses ("8.8.8.8","8.8.4.4")
}
Clear-DnsClientCache
Script PowerShell pour redémarrer le service client DNS :
Les administrateurs peuvent réinitialiser le client DNS dans Services.msc, en effaçant le cache DNS en mémoire tout en réinitialisant le résolveur DNS.
Restart-Service -Name dnscache
Script d’enregistrement des résultats des tests de résolution
Le script suivant teste si la résolution DNS fonctionne, en consignant les erreurs dans le journal des événements Windows en cas d’échec.
$test = Test-Connection google.com -Count 2 -Quiet
if (-not $test) {
Write-EventLog -LogName Application -Source "DNSFix" -EventID 3001 -EntryType Warning -Message "DNS resolution failed after fix."
}
💡 Conseil: Les administrateurs peuvent programmer ces scripts dans les plateformes RMM pour la maintenance régulière du DNS. Si votre RMM propose des alertes en temps réel, vous pouvez déclencher automatiquement ces scripts de remédiation DNS en fonction des alertes et des journaux.
Méthode 2 : Utiliser les commandes par lots pour la correction des DNS via CMD
📌 Cas d’utilisation : Utilisez le script batch suivant pour vider le cache DNS, redémarrer le client, définir un serveur et tester la remédiation en une seule fois.
Résolution de problèmes DNS de base à l’aide d’un script batch :
@echo off
ipconfig /flushdns
net stop dnscache
net start dnscache
netsh interface ip set dns "Ethernet" static 8.8.8.8
if not exist C:\Logs mkdir C:\Logs
echo [%DATE% %TIME%] Test DNS >> C:\Logs\dns_fix_result.txt
nslookup google.com >> C:\Logs\dns_fix_result.txt
⚠️ Important : Un nom codé en dur comme « Ethernet » peut entraîner l’échec du script si aucun adaptateur correspondant n’existe, car netsh exige des noms exacts. (Voir ⚠️ Choses à surveiller. )
Méthode 3 : Scripts PowerShell pour résoudre les échecs des correctifs
📌 Cas d’utilisation : Les scripts PowerShell permettent de forcer les mises à jour manquées, de réinitialiser les composants de mise à jour et d’enregistrer les résultats des mises à jour pour diagnostiquer les erreurs.
Forcez la revérification et l’installation des mises à jour manquantes :
Ce script commence par installer et importer le module PSWindowsUpdate nécessaire pour offrir aux administrateurs un meilleur contrôle de la gestion des mises à jour. Ensuite, il analyse et installe toutes les mises à jour en attente, garantissant ainsi que les machines cibles sont à jour.
Install-Module PSWindowsUpdate -Force -AllowClobber
Import-Module PSWindowsUpdate
Get-WindowsUpdate -AcceptAll -Install -AutoReboot
Script PowerShell pour réinitialiser les composants de Windows Update :
Le script suivant arrête le service de mise à jour de Windows (wuauserv). Le script supprime ensuite le dossier SoftwareDistribution contenant les mises à jour mises en cache et les fichiers temporaires, qui peuvent potentiellement entraîner une corruption ou un blocage des mises à jour. Utilisez ce script pour résoudre les échecs de mise à jour après un téléchargement corrompu ou pour remédier à des scans de mise à jour bloqués ou lents.
Stop-Service wuauserv
Remove-Item -Path "C:\Windows\SoftwareDistribution" -Recurse -Force
Start-Service wuauserv
Générer un résumé de la mise à jour du journal à l’aide de scripts :
Utilisez le script ci-dessous pour collecter les données de diagnostic après la mise à jour et pour centraliser la journalisation afin de faciliter la surveillance des erreurs.
Get-WindowsUpdateLog -LogPath "C:\Logs\WindowsUpdateSummary.txt"
⚠️ Important : Assurez-vous que C:\Logs existe avant de le désigner comme chemin d’accès au journal. (Voir ⚠️ Choses à surveiller. )
Méthode 4 : Exécuter des commandes par lots sur CMD pour le dépannage des mises à jour
📌 Cas d’utilisation : Le CMD peut déployer des commandes par lots qui réinitialisent les composants de mise à jour et déclenchent une analyse.
Script batch de mise à jour de base :
La commande batch suivante permet de réinitialiser rapidement les composants de mise à jour et de rechercher les mises à jour en attente ou manquantes. Toutefois, contrairement à la méthode 3, le CMD ne peut pas installer automatiquement les mises à jour, ce qui nécessite une installation manuelle via Windows Update.
@echo off
net stop wuauserv
rd /s /q C:\Windows\SoftwareDistribution
net start wuauserv
wuauclt /detectnow
💡 À noter : Définissez une condition de stratégie dans votre RMM pour déclencher ce script lorsque la dernière mise à jour installée dépasse un certain nombre de jours. Cela permet à vos terminaux gérés de rechercher automatiquement les mises à jour de manière régulière et cohérente.
Méthode 5 : Récupération de BitLocker par des scripts de remédiation PowerShell
La désactivation de BitLocker sur les terminaux rend un appareil non conforme et ses données vulnérables aux menaces. Cela dit, en s’assurant que la protection BitLocker est activée de manière constante sur tous les terminaux gérés, on renforce la posture de sécurité d’une entreprise.
📌 Cas d’utilisation : Les administrateurs peuvent utiliser des scripts sur leur RMM pour vérifier l’état de BitLocker, sauvegarder les clés de récupération, vérifier l’état du chiffrement et l’enregistrer.
📌 Prérequis: Appareils dotés d’un module de plate-forme de confiance (TPM)
Scripts pour vérifier et activer BitLocker s’il est manquant :
Ce script PowerShell permet aux administrateurs de récupérer l’objet volume BitLocker d’un lecteur spécifique, par exemple C:. De plus, le script active automatiquement BitLocker s’il est désactivé, sans nécessiter d’interaction de la part de l’utilisateur final.
$bitlocker = Get-BitLockerVolume -MountPoint "C:"
if ($bitlocker.ProtectionStatus -eq "Off") {
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector
}
💡 NOTE : -TpmProtector nécessite un TPM disponible et prêt sur le périphérique cible. L’application de cette mesure à des dispositifs non PTM entraînera une erreur.
Exporter la clé de récupération de la sauvegarde vers le contrôleur de domaine ou localement :
Le script ci-dessous recherche le protecteur de mot de passe de récupération sur un volume BitLocker spécifié. Ensuite, le script sauvegarde la clé de récupération sur le contrôleur de domaine ou le stockage par défaut. Cela garantit que la récupération de BitLocker est possible en cas de réinitialisation du TPM ou de corruption du système d’exploitation.
Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (
$bitlocker.KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' }
).KeyProtectorId
Vérifier et consigner l’état du chiffrement BitLocker :
Les administrateurs peuvent utiliser le script ci-dessous pour créer un simple enregistrement qui servira de preuve locale de l’état de chiffrement d’un appareil.
$bitlocker | Select-Object MountPoint, VolumeType, ProtectionStatus, EncryptionPercentage | Out-File "C:\Logs\bitlocker_status.txt"
💡 Conseil: Les administrateurs peuvent affecter ce script pour qu’il s’exécute automatiquement selon un calendrier ou lorsque l’état de la protection BitLocker est détecté comme étant désactivé.
Méthode 6 : Méthode de registre pour les politiques relatives aux DNS, aux correctifs ou à BitLocker
Le registre contient des valeurs que les administrateurs peuvent configurer pour remplacer les serveurs DNS incorrects, désactiver les reports de mise à jour de Windows et forcer l’activation de BitLocker sur les périphériques non-TPM.
⚠️ Attention : Une mauvaise configuration du registre peut nuire à la stabilité du système et entraîner des problèmes tels que des problèmes de démarrage et un ralentissement important des performances. (Voir ⚠️ Choses à surveiller. )
📌 Cas d’utilisation : Les scripts PowerShell permettent d’automatiser les configurations du registre et de les déployer de façon constante sur les terminaux à l’aide d’une plateforme RMM.
Attribuer un nouveau serveur DNS à l’aide de scripts PowerShell :
Ce script attribue un serveur DNS statique à l’ensemble du système, remplaçant ainsi toute configuration DNS automatique. Cela oblige le système à utiliser le DNS spécifié dans le Registre ; cependant, l’application des DNS par les GPO annulera cette modification.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "NameServer" -Value "8.8.8.8"
Désactiver les reports de Windows Update (si les correctifs sont bloqués) :
Vous pouvez activer les mises à jour automatiques dans le registre en définissant la valeur DWORD NoAutoUpdate sur 0. Utilisez ce script dans les environnements où les correctifs sont bloqués en raison d’une mauvaise configuration ou désactivés par défaut.
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 0 -Type DWord
Activer BitLocker à l’aide de scripts de registre :
Ce script active BitLocker sur les périphériques, même sur les anciennes machines sans TPM, ce qui permet un chiffrement cohérent dans un environnement.
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Name "EnableBDEWithNoTPM" -Value 1 -Type DWord
💡 Remarque : Bien que vous puissiez activer BitLocker sur des appareils sans TPM, vous aurez besoin d’autres protections telles que des mots de passe de démarrage et des clés USB.
Méthode 7 : Utiliser GPO pour le déploiement centralisé des scripts de remédiation
📌 Cas d’utilisation : Les administrateurs peuvent déployer un GPO pour configurer l’affectation des serveurs DNS, l’installation de Windows Update et les configurations BitLocker de manière centralisée à l’aide de scripts.
📌 Conditions préalables :
- Accès à la console de gestion des stratégies de groupe (gpmc.msc)
- Privilèges d’administrateur de domaine
⚠️ Important : Tester les configurations localement avant de les déployer dans un environnement. (Voir ⚠️ Choses à surveiller. )
- Appuyez sur la touche Windows + R, tapez Notepad et appuyez sur Entrée.
- Choisissez le script approprié dans ce guide pour résoudre vos problèmes de DNS, de correctifs ou de BitLocker.
- Collez le script dans le Bloc-notes, appuyez sur Ctrl + Maj + S, nommez-le, puis ajoutez une extension.
- Ajoutez .ps1 s’il s’agit d’un script PowerShell (par exemple, DNS-powershell.ps1).
- Ajoutez .bat s’il s’agit d’un script batch (par exemple, patching-batch.BAT).
- Appuyez sur la liste déroulante située à côté de Enregistrer sous, puis sélectionnez Tous les fichiers.
- Ouvrez la console de gestion de la stratégie de groupe.
- Recherchez et cliquez avec le bouton droit de la souris sur votre OU cible, puis choisissez Créer une GPO dans ce domaine, et Liez-la ici….
- Cliquez avec le bouton droit de la souris sur la GPO nouvellement créée et choisissez Modifier.
- Accédez à :
Configuration de l’ordinateur > Stratégies > Paramètres Windows > Scripts (démarrage/arrêt)
- Double-cliquez sur Démarrage, cliquez sur Ajouter, puis parcourez et sélectionnez votre script dans le partage réseau.
- De plus, si vous utilisez des scripts .ps1, naviguez dans le chemin suivant :
Configuration de l’ordinateur > Politiques > Modèles administratifs > Système > Scripts
- Définissez la stratégie d’exécution des scripts de démarrage sur Autoriser tous les scripts.
💡 À noter : Vous pouvez déployer le script PowerShell suivant sur vos terminaux cibles pour appliquer instantanément les configurations :
gpupdate /force
⚠️ Éléments à prendre en compte
| Risques | Conséquences potentielles | Retours en arrière |
| Appliquer des configurations personnalisées sur des appareils gérés par GPO | Les GPO remplacent les modifications apportées aux configurations appliquées après une mise à jour programmée de la stratégie. | La bonne pratique consiste à n’utiliser des scripts que pour les paramètres non imposés par les GPO, à moins que vous n’ayez l’intention de les remplacer temporairement. |
| Les adaptateurs réseau ne sont pas nommés « Ethernet » par défaut. | Certains scripts codent en dur les noms des adaptateurs réseau comme Ethernet; cependant, ce nom n’est pas le nom par défaut de tous les adaptateurs, ce qui entraîne des échecs de scripts. | Vous pouvez renommer les adaptateurs réseau dans votre environnement afin d’utiliser un nom cohérent, ce qui améliore l’efficacité des scripts codés en dur. |
| C:\Logs n’existe pas avant de le spécifier comme chemin d’accès au journal. | Le fait de ne pas créer C:\Logs avant de le désigner comme chemin d’accès au journal provoquera une erreur. | Créez le dossier cible et assurez-vous qu’il existe dans le chemin spécifié avant de l’assigner comme chemin d’accès au journal. |
| Mauvaises configurations dans le registre | Une mauvaise configuration du registre peut entraîner une instabilité du système et un ralentissement des performances. | Créez une sauvegarde du registre Windows avant de procéder, afin de faciliter la récupération en cas de mauvaise configuration accidentelle. |
| Déploiement de scripts non testés dans un environnement | Tous les environnements n’étant pas identiques, les scripts peuvent se comporter différemment selon les systèmes gérés. | Tester les configurations localement pour valider leur efficacité avant de les déployer dans un environnement. |
Principales considérations relatives à l’utilisation de scripts de remédiation via RMM
Cette section aborde les principales considérations à prendre en compte lors de l’utilisation de scripts pour résoudre les problèmes de DNS, de correctifs et de BitLocker.
Considérations relatives à la sécurité
Lorsque vous utilisez BitLocker, stockez les clés de récupération dans un Active Directory et respectez au minimum les pratiques de stockage local. De plus, l’utilisation de serveurs DNS publics tels que 8.8.8.8 n’est idéale que pour un usage général, mais ne devrait pas être utilisée dans des environnements de haute conformité.
Journalisation pour l’audit et le retour en arrière
Les journaux enregistrent les configurations effectuées par les scripts, en consignant les modifications dans un fichier journal pour faciliter la documentation et la validation. L’enregistrement régulier des modifications facilite le dépannage des mauvaises configurations et fournit une référence facile à consulter pour les stratégies de retour en arrière.
Décomposer les scripts continus en scripts courts et modulaires
Bien qu’il soit facile de combiner des scripts qui résolvent plusieurs problèmes, il est conseillé de séparer les scripts en plusieurs petits scripts. Cela permet de cibler les mesures correctives tout en minimisant le risque d’une mauvaise configuration accidentelle des fonctionnalités du système.
[démarrage rapide]
Résolution des problèmes courants lors du déploiement des scripts
Problème n°1 : Les scripts ne s’exécutent pas correctement lorsqu’ils sont déployés via RMM
Les scripts peuvent échouer en raison d’autorisations insuffisantes de l’agent RMM. Cela dit, assurez-vous que le script s’exécute en tant que SYSTEM ou avec des privilèges élevés, en particulier lorsqu’il s’agit de modifier des clés et des valeurs de registre.
D’autre part, certains systèmes bloquent les scripts non signés, tels que les scripts téléchargés à partir de sources non fiables. Vous pouvez temporairement autoriser les scripts à s’exécuter dans la session en cours en ajoutant la commande suivante à vos scripts PowerShell :
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
Problème n°2 : BitLocker n’est pas activé après l’exécution du script
Avant d’exécuter un script, vérifiez l’état de la MPT de votre dispositif cible en ouvrant une invite PowerShell élevée et en saisissant Get-Tpm. Si le TPM est présent, vérifiez si des GPO BitLocker appliqués sont susceptibles d’entrer en conflit avec la configuration. Lors de la configuration de périphériques sans TPM, vous pouvez également utiliser des scripts pour activer BitLocker via le Registre.
Problème n°3 : Les scripts de remédiation des correctifs échouent silencieusement après leur exécution
Pour résoudre ce problème, assurez-vous que l’appareil dispose d’un accès à Internet et qu’il peut atteindre le serveur WSUS. Vérifiez aussi les GPO qui peuvent bloquer Windows Update, puis redémarrez l’agent de mise à jour Windows et déclenchez une analyse des mises à jour.
Services NinjaOne pour le déploiement de scripts de remédiation sur les terminaux
Avec NinjaOne, les MSP peuvent opérationnaliser et développer l’auto-remédiation avec une transparence et un contrôle complets. Vous trouverez ci-dessous les services que vous pouvez utiliser pour optimiser le déploiement des scripts de remédiation pour les problèmes de DNS, de correctifs et de BitLocker.
| Service NinjaOne | Définition | Comment il facilite le déploiement des scripts |
| Tâches programmées de la politique | NinjaOne prend en charge la planification des tâches sans effort, ce qui permet l’exécution automatisée de scripts dans des intervalles de temps spécifiés. | Les administrateurs peuvent planifier le déploiement des scripts de DNS, de patching et de remédiation BitLocker pour une maintenance périodique. |
| Réponse automatisée aux alertes | Les déclencheurs basés sur les alertes permettent aux RMM d’exécuter des actions de remédiation dès qu’une alerte spécifique apparaît sur un terminal. | Déployer automatiquement des scripts de remédiation après le déclenchement d’une alerte, réduisant ainsi le besoin d’intervention manuelle et le MTTR. |
| Déploiement du modèle | Les déploiements de modèles aident les administrateurs à cibler des groupes d’appareils spécifiques, évitant ainsi une mauvaise application des scripts sur des appareils incompatibles. | Les administrateurs peuvent attribuer un script BitLocker spécialisé pour les périphériques non TPM, tout en appliquant des scripts standard pour les périphériques TPM. |
| Visibilité des stocks | L’inventaire complet de NinjaOne fournit une vue détaillée des terminaux, le tout dans le tableau de bord de la plateforme. | Affichez les paramètres DNS, l’historique des mises à jour Windows et l’état de BitLocker pour optimiser les diagnostics et améliorer le temps de réponse. |
Remédier aux problèmes à grande échelle en déployant des scripts par l’intermédiaire d’un RMM
L’automatisation des scripts personnalisés à l’aide d’une plateforme RMM permet une remédiation cohérente des défaillances DNS, des problèmes de correctifs et des mauvaises configurations BitLocker à grande échelle. Vous pouvez utiliser les scripts modulaires fournis pour remédier à des problèmes spécifiques ou les combiner pour une mise en œuvre plus large. Déployer des scripts par le biais de RMM, comme NinjaOne, pour permettre des déclenchements basés sur des alertes et la planification de scripts, automatiser la résolution des problèmes, le déploiement de scripts et l’audit.
Articles connexes :
- Comment gérer à distance le chiffrement de disque BitLocker à l’aide de PowerShell
- Guide pour les MSP : Comment utiliser une plateforme RMM
- Maîtriser la gestion du cache DNS : Nettoyer les DNS avec PowerShell
- Comment automatiser la gestion des vulnérabilités
- La maîtrise des scripts automatisés de NinjaOne pour des opérations informatiques optimisées