Points clés
- Séparez les données sensibles des scripts : évitez de coder les identifiants en dur et utilisez un stockage sécurisé, comme des variables d’environnement ou des champs chiffrés.
- Stockez les secrets dans le registre Windows : centralisez les valeurs sensibles et restreignez-en l’accès pour une exécution de scripts plus sûre.
- Utilisez des variables d’environnement pour la formation : fournissez des données fictives inoffensives afin que les techniciens apprennent sans exposer de véritables identifiants.
- Créez des scripts de formation distincts des scripts de production : utilisez des valeurs fictives dans les scripts de formation et des sources sécurisées dans les scripts en production.
- Auditez l’activité des scripts : consignez les utilisations et les modifications pour garantir la sécurité, la responsabilisation et de bonnes pratiques de formation.
Une bonne formation des techniciens informatiques est essentielle à l’évolutivité des opérations informatiques, en particulier avec l’automatisation. Les scripts contiennent des variables sensibles codées en dur ou exposées lors de l’exécution. Une mauvaise gestion augmente le risque de fuites de données et peut ancrer de mauvaises habitudes chez les techniciens juniors.
Un processus structuré de formation et de gestion des scripts est indispensable à toute équipe informatique pour protéger les données et renforcer la confiance des techniciens.
Former les nouveaux techniciens à l’utilisation des scripts sans exposer de données sensibles
Une bonne formation des techniciens informatiques consiste à séparer les variables sécurisées de la logique du script, à stocker les variables dans le registre Windows, à utiliser des variables d’environnement contenant des données fictives sans risque pour la formation, à créer des versions de formation des scripts de production et à auditer les modifications et les exécutions de scripts pendant la formation.
📌 Prérequis :
- Modèles de scripts standard pour l’onboarding
- Droits d’administrateur pour déployer les scripts de formation
- Mécanisme de stockage sécurisé pour les valeurs protégées
- Documentation définie sur la structure des scripts et les pratiques d’édition sûres
📌 Stratégies de déploiement recommandées :
| Cliquez pour choisir une méthode | 💻 Idéal pour les utilisateurs individuels | 💻💻💻 Idéal pour les grandes entreprises |
| Méthode 1 : séparer les variables sécurisées de la logique du script | ✓ | |
| Méthode 2 : stocker les variables sécurisées dans le registre Windows | ✓ | |
| Méthode 3 : utiliser des variables d’environnement avec des données fictives sans risque pour la formation | ✓ | |
| Méthode 4 : créer des versions de formation des scripts de production | ✓ | |
| Méthode 5 : auditer les modifications et l’exécution des scripts pendant la formation | ✓ |
🎥 Regardez le guide vidéo : Comment former les nouveaux techniciens à l’utilisation des scripts sans exposer de variables sensibles.
Méthode 1 : séparer les variables sécurisées de la logique du script
Lors de l’onboarding de nouveaux techniciens informatiques, la première chose à faire est de séparer les variables sécurisées de la logique du script. Cette séparation réduit les risques de sécurité et permet une automatisation plus sûre.
📌 Cas d’utilisation : empêche les nouveaux techniciens de voir et de partager des informations sensibles, puisque celles-ci sont récupérées depuis un stockage sécurisé
Évitez de coder en dur des données sensibles telles que :
- Mots de passe administrateur
- Jetons d’API
- Identifiants SMTP
- Clés de sauvegarde
- Noms de serveurs internes
Référencez plutôt :
- Des coffres d’identifiants chiffrés
- Des variables d’environnement
- Des chemins de registre
- Des champs injectés par NinjaOne ou votre RMM
Méthode 2 : stocker les variables sécurisées dans le registre Windows
Cette méthode stocke les données sensibles dans le registre Windows, afin que seuls les processus autorisés ou les administrateurs puissent y accéder.
📌 Cas d’utilisation : donne à plusieurs scripts un accès sécurisé aux valeurs sensibles tout en limitant les accès
- Appuyez sur Win, tapez PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.
- Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :
- Protégez les valeurs masquées aux techniciens dans HKLM (HKEY_LOCAL_MACHINE) :
New-Item -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SMTPHost" -Value "mail.domain.com"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SecureToken" -Value "XYZ123"
💡 Remarque : SMTPHost, mail.domain.com et XYZ123 ne sont que des valeurs fictives. Remplacez-les par votre serveur de messagerie et votre SecureToken.
Ce script centralise l’ensemble des scripts, puisqu’ils peuvent référencer les mêmes valeurs stockées sans les intégrer dans le code.
- Accédez-y de façon sécurisée dans les scripts de formation :
$smtp = Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SMTPHost"
$token = Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SecureToken"
💡 Conseil : utilisez les autorisations NTFS (New Technology File System) ou une GPO pour restreindre l’accès aux clés de registre aux processus de niveau administrateur
⚠️ Avertissement : avant de déployer cette modification de paramètres sur différents terminaux, mieux vaut la tester d’abord sur une machine locale. (Pour en savoir plus, consultez : Points de vigilance)
Méthode 3 : utiliser des variables d’environnement avec des données fictives sans risque pour la formation
Cette méthode définit une variable qui permet à tous les scripts de référencer un chemin précis de manière cohérente, sans devoir les modifier un par un.
📌 Cas d’utilisation : standardise les chemins non sensibles sur toutes les machines sans modifier chaque script
- Appuyez sur Win, tapez PowerShell ou cmd, puis cliquez sur Exécuter en tant qu’administrateur.
- Copiez-collez le code suivant dans l’invite (selon l’outil que vous utilisez), puis appuyez sur Entrée :
- CMD (invite de commande) :
setx NOC_SCRIPTS "C:\NOC\Scripts"
💡 Remarque : C:\NOC\Scripts représente le chemin vers un répertoire de votre système. Il s’agit du dossier qui sera enregistré comme valeur de la variable NOC_SCRIPTS.
- PowerShell :
$path = $env:NOC_SCRIPTS
Les scripts ci-dessus sont un moyen pratique de donner à tous les scripts un point de référence cohérent pour des chemins ou des valeurs visibles par tous.
⚠️ Avertissement : veillez à copier-coller le bon script, car une syntaxe incorrecte peut provoquer des erreurs. (Pour en savoir plus, consultez : Points de vigilance)
Méthode 4 : créer des versions de formation des scripts de production
Avec cette méthode, le script de production récupère les valeurs sensibles depuis des sources sécurisées, tandis que le script de formation utilise des valeurs fictives inoffensives, ce qui le rend partageable sans risque.
📌 Cas d’utilisation : fournit des scripts de formation reposant sur des valeurs fictives inoffensives
Avant de créer vos scripts de production, il est essentiel de disposer de deux versions :
- Formation : ce script doit contenir des valeurs fictives comme « smtp.placeholder.local »
- Production (sécurisée) : ce script, lui, lit les valeurs depuis des sources protégées, des fichiers chiffrés ou des coffres d’identifiants.
Vous devriez également appliquer des standards de scripting tels que :
- Ajoutez ensuite des standards de scripting en appuyant sur Win + R, en tapant PowerShell, puis en cliquant sur Exécuter en tant qu’administrateur.
- Copiez-collez le script ci-dessous dans l’invite, puis appuyez sur Entrée.
# BEGIN: Do not edit
$APIKey = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "ProdAPIKey"
# END: Do not edit
💡 Remarque : le script ci-dessus signale les sections restreintes par des commentaires et applique des autorisations en lecture seule sur les scripts.
⚠️ Avertissement : veillez à n’utiliser le script de formation qu’à des fins de formation. (Pour en savoir plus, consultez : Points de vigilance)
Méthode 5 : auditer les modifications et l’exécution des scripts pendant la formation
Cette méthode consigne dans une clé de registre qui exécute les scripts critiques et à quel moment, ce qui constitue un historique consultable.
📌 Cas d’utilisation : conserve un historique indiquant qui a exécuté les scripts clés et quand, pour faciliter les vérifications
- Appuyez sur Win, tapez PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.
- Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptAudit"
-Name "LastRunBy" -Value "$env:USERNAME - $(Get-Date -Format u)"
Vous pouvez également valider les modifications en suivant les étapes ci-dessous :
- Appuyez sur Win, tapez cmd, puis cliquez sur Exécuter en tant qu’administrateur.
- Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :
reg query HKLM\SOFTWARE\Org\ScriptAudit
💡 Conseil : planifiez des revues régulières des journaux pour garantir une utilisation sûre des scripts.
⚠️ Points de vigilance
| Risques | Conséquences possibles | Solutions de retour en arrière |
| Absence de test sur une machine locale | Déployer un script non testé peut faire planter des appareils, par exemple à cause d’une incompatibilité de clé de registre. | Appliquez les modifications prévues sur une machine locale, puis vérifiez que la configuration donne bien le résultat attendu. |
| Syntaxe de commande incorrecte | Une syntaxe de commande incorrecte peut corrompre le registre, provoquer un comportement anormal du système ou empêcher le code d’avoir le moindre effet. | Veillez à copier-coller le bon script dans l’invite. Vous pouvez aussi utiliser des outils comme PSScriptAnalyzer pour contrôler la qualité du code. |
| Script de formation utilisé par erreur en production | La production peut échouer à cause des valeurs fictives. | Étiquetez clairement les scripts pour assurer la gestion des versions. |
Autres considérations
Les bonnes pratiques suivantes visent à réduire les risques tout en préservant l’efficacité opérationnelle.
Exécution basée sur les rôles
Utilisez des comptes à privilèges minimaux ou des rôles RMM pour contrôler l’exécution des scripts. Pour cela :
- Attribuez les autorisations de sorte que chaque compte n’exécute que les scripts dont il a besoin.
- Restreignez l’accès aux types de scripts sensibles, comme ceux qui modifient les configurations système.
Ces pratiques limitent les dégâts en cas de compromission d’un compte.
Nettoyage des sorties
Assurez-vous que les scripts n’affichent jamais de secrets tels que des mots de passe, des jetons ou des clés d’API dans la console ou les journaux. Cela implique de :
- Masquer les données sensibles dans les sorties.
- Éviter de stocker des identifiants en clair dans les journaux.
- Vérifier la gestion des sorties de script avant le déploiement.
Paramétrage
Utilisez des blocs param() dans PowerShell pour traiter les entrées en toute sécurité.
- Exigez des paramètres au lieu de coder en dur les valeurs sensibles.
- Évitez d’afficher la valeur des paramètres dans la console.
- Mettez en place des attributs de validation pour imposer des formats d’entrée et prévenir les attaques par injection.
Signature des scripts
Signez numériquement les scripts finaux utilisés en production afin d’empêcher toute modification, en n’exécutant que des scripts issus d’auteurs de confiance. Vous pouvez combiner cette approche avec des politiques d’exécution pour imposer ce niveau de confiance.
Résolution des problèmes courants
Voici les problèmes de scripting les plus fréquents pendant la formation des techniciens informatiques, et comment les résoudre.
Un technicien voit des variables protégées
L’idéal est de restreindre les scripts contenant des variables sensibles. Vous pouvez recourir à des contrôles d’accès adaptés, comme des ACL de système de fichiers qui limitent qui peut lire ou modifier les scripts. Il est parfois plus sûr d’isoler les valeurs confidentielles dans des coffres sécurisés ou des magasins de paramètres chiffrés afin de les tenir à l’écart du code source du script.
Le script échoue pendant la formation
Il arrive que des scripts échouent lors des phases de formation ou de test. Pour y remédier, mettez en place une gestion des erreurs capable de détecter les ressources manquantes et d’y réagir. Encadrer les recherches critiques dans des blocs try/catch évite les plantages.
Il est également recommandé d’utiliser des vérifications comme Test-Path ou Get-ItemProperty avant d’accéder aux fichiers, afin que le script confirme leur existence.
L’injection de variables ne fonctionne pas
L’injection de variables peut échouer en raison de restrictions liées à la politique d’exécution ou d’une incohérence dans le script. Il est essentiel de vérifier les paramètres de la politique d’exécution avec Get-ExecutionPolicy -List pour confirmer que le script est autorisé à s’exécuter.
Les services NinjaOne qui facilitent l’onboarding des techniciens informatiques
Avec NinjaOne, les MSP peuvent intégrer de nouveaux techniciens à des missions d’automatisation sans sacrifier la sécurité ni exposer de données sensibles.
- Limitation de l’édition et de l’exécution des scripts aux rôles de techniciens attribués
- Injection de valeurs sécurisées à l’exécution via des champs personnalisés ou des modèles de politiques
- Journalisation de l’activité et des sorties de script par appareil et par technicien
- Dépôts de scripts avec gestion des versions, distinguant scripts de formation et scripts de production
- Workflows de relecture des scripts avant leur mise en production
Évitez les fuites de données accidentelles grâce à une bonne formation des techniciens informatiques
Former les nouveaux techniciens informatiques à utiliser et modifier les informations évite l’exposition de données sensibles. Pour cela, abstrayez les valeurs à l’aide du registre et des GPO, créez des versions de formation sûres de vos scripts d’automatisation et appuyez-vous sur NinjaOne pour contrôler l’accès aux scripts, leur exécution et le reporting associé.
Sujets connexes :
- Trois raisons d’apprendre PowerShell (avec des ressources de formation PowerShell)
- Pourquoi apprendre PowerShell (avec des ressources pour débuter)
- Guide de gestion informatique : comment créer une culture de l’apprentissage en informatique
- Guide du service informatique : former les collaborateurs aux nouveaux outils informatiques
- Devenez un IT Ninja certifié
Guide de démarrage rapide
NinjaOne propose plusieurs ressources pour former les techniciens à l’utilisation des scripts :
- Options de formation :
- Mini-formations : vidéos courtes de 5 minutes consacrées à un sujet précis
- Parcours de formation Workramp : supports d’apprentissage structurés pour les techniciens
- Formation individuelle pour les techniciens support : formation sur mesure pour développer des compétences spécifiques
- Gestion des scripts et formation :
- La bibliothèque d’automatisation propose un large éventail de scripts prêts à l’emploi
- Les techniciens peuvent accéder à des modèles de scripts et apprendre à les utiliser
- NinjaOne propose le partage de scripts et des ressources communautaires
- Protection des variables :
- NinjaOne intègre des mécanismes de protection des variables sensibles :
- Champs sécurisés pour les informations sensibles
- Champs personnalisés à accès contrôlé
- Scripts à jeton sécurisé pour gérer les identifiants
- NinjaOne intègre des mécanismes de protection des variables sensibles :
- Types de variables de script :
- Les scripts prennent en charge plusieurs types de variables
- Les variables peuvent être configurées pour créer des formulaires interactifs
- Les techniciens peuvent apprendre à utiliser les variables en toute sécurité, sans exposer d’informations sensibles
- Ressources de formation :
- Page Community Script Share
- Bibliothèque de mini-formations
- Supports de formation Workramp
- Documentation avec des exemples de scripts
Pour former de nouveaux techniciens, vous pouvez vous appuyer sur ces ressources existantes afin de bâtir un programme de formation complet aux scripts, axé sur la sécurité et la bonne gestion des variables.
