Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Variables d'environnement PowerShell

Variables d'environnement PowerShell

Jan 14, 2025

Les variables d'environnement PowerShell stockent la configuration système et utilisateur sous forme de paires clé-valeur accessibles à travers les processus et les scripts. Elles peuvent être listées avec Get-ChildItem Env:, accédées avec $Env:<Name>, modifiées avec Set-Item ou [Environment]::SetEnvironmentVariable(), et supprimées avec Remove-Item. Les variables existent au niveau du processus, de l'utilisateur ou de la machine, avec des changements qui persistent uniquement si définis au niveau de l'utilisateur ou de la machine. Les meilleures pratiques incluent la limitation de la portée, l'évitement des secrets codés en dur, la documentation des variables et le test des changements de manière sécurisée.

Introduction aux variables d'environnement PowerShell

Les variables d'environnement sont des variables prédéfinies dans un système d'exploitation, elles sont disponibles sous forme de paires clé-valeur qui stockent des informations importantes au niveau du système ou spécifiques à l'utilisateur, telles que les chemins, les configurations utilisateur et les paramètres système. Ces variables sont accessibles dans les scripts et sessions PowerShell, jouant un rôle significatif dans des tâches telles que la configuration de logiciels, l'ajustement des chemins système et la gestion des paramètres spécifiques aux utilisateurs. Elles fonctionnent comme des variables globales, accessibles dans tout le système d'exploitation et l'environnement de script. Bien que PowerShell permette une manipulation facile de ces variables, il est important de faire preuve de prudence lors de leur modification ou suppression, car des changements incorrects peuvent entraîner une instabilité du système ou des échecs d'application. Par exemple, la variable PATH, qui stocke les répertoires contenant des fichiers exécutables, est essentielle pour que le système localise et exécute les commandes.

Liste des variables d'environnement PowerShell

Dans PowerShell, l'une des méthodes les plus simples pour lister toutes les variables d'environnement consiste à utiliser le cmdlet Get-ChildItem avec le lecteur “Env:”. Cette commande permet aux utilisateurs d'accéder et d'afficher le contenu du dépôt de variables d'environnement dans un format clair et organisé.

Pour lister toutes les variables d'environnement disponibles dans votre session PowerShell, exécutez simplement la commande suivante.

Get-ChildItem Env:

La sortie inclura généralement un large éventail de variables d'environnement, dont certaines vous seront peut-être familières.

  • PATH: Liste des répertoires où sont stockés les fichiers exécutables.
  • TEMP: Le chemin vers le répertoire de stockage des fichiers temporaires.
  • USERPROFILE: Le chemin vers le répertoire de profil de l'utilisateur actuel, par exemple, C:\Users\Administrator.Milkyway.
  • COMPUTERNAME: Le nom de l'ordinateur.
  • OS: Le nom du système d'exploitation, par exemple, Windows_NT.
  • HOMEPATH: Le répertoire personnel de l'utilisateur.
Image

Accéder et imprimer les variables d'environnement

Il existe deux méthodes principales pour réaliser cela : utiliser la syntaxe “$Env:<nom-de-variable>” ou employer le cmdlet “Get-ChildItem” avec le nom de la variable. Par exemple, si vous souhaitez accéder à la variable USERNAME, vous utiliserez la commande suivante dans PowerShell pour obtenir la variable d'environnement.

$Env:USERNAME

L'exécution simple de cette commande affichera le nom de l'utilisateur connecté dans la console.

Image

La deuxième méthode consiste à utiliser l'applet de commande Get-ChildItem. Vous pouvez spécifier la variable d'environnement que vous souhaitez vérifier, comme ci-dessous.

(Get-ChildItem Env:USERNAME).Value

Image

Vous pouvez suivre le même modèle pour afficher d'autres variables d'environnement, telles que PATH, COMPUTERNAME, USERPROFILE ou TEMP.

$Env:Path

Image

(Get-ChildItem Env:Path).Value

Image

Configuration des variables d'environnement PowerShell

Le processus de création ou de mise à jour des variables d'environnement est simple et peut être réalisé en utilisant la syntaxe ci-dessous.

$Env:<variable-name> = “<value>”

Tutoriel de script Windows PowerShell (PDF) pour débutants

En savoir plus

Création de variables d'environnement

Créer une nouvelle variable d'environnement est aussi simple qu'attribuer une valeur à un nom de variable. Par exemple, si vous souhaitez créer une variable d'environnement nommée « Foo » et lui attribuer une valeur spécifique, vous pouvez utiliser la commande suivante.

$Env:Foo = “Bonjour”

Vous pouvez confirmer que la variable a été correctement définie en y accédant à l'aide du cmdlet ci-dessous.

$Env:Foo

Image

Mise à jour des variables d'environnement

Si la variable « Foo » existe déjà et que vous souhaitez mettre à jour sa valeur, vous pouvez utiliser la même syntaxe.

$Env:Foo = “NewValue”

Vous pouvez vérifier la valeur de la variable comme ci-dessous.

$Env:Foo

Image

Il est important de noter que les modifications apportées aux variables d'environnement en utilisant le préfixe $Env: ne persistent que pour la durée de la session PowerShell actuelle. Une fois la session fermée, toutes les variables d'environnement personnalisées créées ou modifiées durant cette session seront perdues. Si vous avez besoin de créer ou de mettre à jour des variables d'environnement qui persistent au-delà de la session, vous devrez utiliser la commande “SetX”, qui vous permet de définir des variables d'environnement au niveau utilisateur ou système. Par exemple, pour créer une variable d'environnement permanente nommée “Foo” avec la même valeur, vous pouvez utiliser l'applet de commande ci-dessous.

SetX Foo “MyVariableValue”

Vous pouvez vérifier la variable permanente en allant dans Propriétés SystèmeèOnglet AvancéèVariables d'environnementèVariables utilisateur pour l'utilisateur actuel.

Image

Ajout de valeurs aux variables d'environnement existantes

Ajouter des valeurs aux variables d'environnement existantes dans PowerShell peut être utile lorsque vous souhaitez étendre les configurations actuelles sans écraser leurs valeurs existantes. Un scénario courant pour cela est avec la variable d'environnement PATH, où vous pouvez vouloir ajouter des répertoires supplémentaires pour les fichiers exécutables. Dans PowerShell, l'opérateur “+=” vous permet de réaliser cela de manière transparente, cet opérateur est spécifiquement conçu pour ajouter des valeurs aux variables.

Par exemple, si vous souhaitez ajouter un nouveau répertoire à la variable d'environnement `Path`, vous pouvez utiliser la commande suivante.

$Env:Path += “;C:\Test\SecurityService”

Le point-virgule ( ; ) est important car il sert de séparateur entre les chemins individuels dans la variable PATH. Sans lui, le nouveau chemin serait directement concaténé aux chemins existants, ce qui pourrait conduire à des résultats non souhaités. Pour vérifier que la valeur a été ajoutée avec succès, vous pouvez imprimer la variable mise à jour en utilisant le cmdlet ci-dessous.

$Env:Path

Image

Portées des variables d'environnement PowerShell

Comprendre les portées des variables d'environnement PowerShell est important pour un script efficace et une configuration du système. Les variables d'environnement peuvent exister dans différentes portées, ce qui détermine leur disponibilité et leur durée de vie dans différents contextes.

Explication des portées machine, utilisateur et processus pour les variables d'environnement.

Les trois portées principales pour les variables d'environnement sont machine, utilisateur et processus. Chaque portée a ses propres règles concernant l'accessibilité et l'héritage, ce qui peut influencer considérablement le comportement des scripts et des applications.

Portée de la machine

Les variables d'environnement à portée de machine sont des variables systèmes qui s'appliquent à tous les utilisateurs et processus en cours d'exécution sur l'ordinateur. Ces variables sont généralement définies par le système d'exploitation ou un administrateur et persistent à travers les sessions et les redémarrages. Pour accéder ou modifier les variables d'environnement à portée de machine, vous avez besoin de privilèges administratifs.

Portée de l'utilisateur

Les variables d'environnement spécifiques à l'utilisateur, d'autre part, sont propres au profil individuel de l'utilisateur et sont visibles par tous les processus s'exécutant sous ce profil d'utilisateur. Ces variables sont persistantes mais uniquement disponibles pour l'utilisateur qui les a créées et peuvent être modifiées sans nécessiter de privilèges d'administrateur. Si un utilisateur définit une variable spécifique à l'utilisateur, les autres utilisateurs sur le même ordinateur n'y ont pas accès.

Portée du processus

Les variables d'environnement à portée de processus existent uniquement dans l'instance du processus ou de la session dans lesquelles elles ont été créées. Elles sont temporaires et disparaîtront une fois le processus terminé. Cette portée est couramment utilisée dans les scripts et les applications où vous souhaitez définir des paramètres qui ne sont pertinents que pour la durée de l'exécution.

Comment les variables d'environnement sont héritées par les processus enfants

Les variables d'environnement sont héritées par les processus enfants de leur processus parent. Cela signifie que si vous créez une variable d'environnement dans une session PowerShell (portée du processus), toute application externe ou script lancé depuis cette session héritera de la variable. Si vous définissez une variable d'environnement au niveau de l'utilisateur, telle que MY_USER_VAR, elle persistera à travers les sessions PowerShell, et tout processus lancé sous cet utilisateur héritera de sa valeur. Si vous définissez une variable à l'échelle de la machine, telle que MY_MACHINE_VAR, elle sera héritée par chaque utilisateur sur le système, et tous les processus auront accès à cette variable.

Modification des variables d'environnement sur différentes plateformes

Lorsqu'il s'agit de modifier les variables d'environnement, l'approche peut varier considérablement entre les systèmes d'exploitation, en particulier entre Windows et les systèmes de type Unix tels que macOS et Linux. Cette variabilité inclut la syntaxe, la sensibilité à la casse et les commandes disponibles pour la modification.

La sensibilité à la casse sur macOS/Linux par rapport à Windows.

L'une des principales différences entre les systèmes d'exploitation est la manière dont ils gèrent la sensibilité à la casse des noms de variables d'environnement.

Windows

Les noms de variables d'environnement dans Windows ne sont pas sensibles à la casse. Par exemple, PATH, Path et path font tous référence à la même variable d'environnement. Cela signifie que vous pouvez référencer ou modifier ces variables sans vous soucier de la casse utilisée dans les commandes.

macOS/Linux

Les systèmes de type Unix sont sensibles à la casse pour les noms de variables d'environnement. Ainsi, PATH et path seraient reconnus comme deux variables différentes. Cela signifie que les scripts ou les commandes doivent utiliser la casse exacte lorsqu'ils traitent avec des variables d'environnement pour éviter la confusion ou les erreurs.

Variables d'environnement temporaires vs persistantes

Les variables d'environnement dans PowerShell peuvent être catégorisées comme temporaires ou persistantes selon la manière dont elles sont définies et la portée des modifications. Comprendre la différence entre ces deux types de variables d'environnement est important pour gérer les configurations et assurer que les variables perdurent à travers les sessions ou les redémarrages du système.

Comment fonctionnent les variables temporaires dans une session PowerShell

Les variables d'environnement temporaires sont définies et utilisées uniquement dans le contexte de la session PowerShell actuelle. Ces variables peuvent être créées et modifiées en utilisant le préfixe $Env:. Une fois la session PowerShell fermée, toutes les variables temporaires seront perdues, et leurs valeurs ne seront pas conservées dans les sessions ultérieures. Les variables temporaires sont particulièrement utiles lorsque vous avez besoin d'une configuration rapide pour la session en cours sans affecter les paramètres globaux ou spécifiques à l'utilisateur.

Variables d'environnement persistantes

Les variables d'environnement persistantes sont stockées dans la configuration du système et resteront disponibles même après avoir fermé et rouvert PowerShell ou redémarré votre ordinateur. Pour créer ou modifier des variables d'environnement persistantes dans PowerShell, vous pouvez utiliser la classe .NET « System.Environment ».

La syntaxe pour ajouter ou modifier une variable d'environnement persistante est la suivante.

[Environment]::SetEnvironmentVariable(‘VariableName’, ‘Value’, ‘Scope’)

Le paramètre Scope peut prendre l'une des trois valeurs : Machine, User ou Process.

Par exemple, pour créer une variable d'environnement persistante à portée utilisateur nommée « Foo » avec la valeur « Bar », vous pouvez exécuter la commande suivante.

[Environment]::SetEnvironmentVariable(‘Foo’, ‘Bar’, ‘User’)

Si vous vouliez définir une variable avec une portée machine, vous exécuteriez la commande ci-dessous.

[Environment]::SetEnvironmentVariable(‘Foo’, ‘Bar’, ‘Machine’)

La commande ci-dessus nécessitera des privilèges administratifs, car les modifications à portée de la machine affectent tous les utilisateurs du système.

La méthode GetEnvironmentVariable() affiche la valeur d'une variable d'environnement. Vous pouvez spécifier le nom de la variable d'environnement. Voici un exemple de cmdlet.

[System.Environment]::GetEnvironmentVariable(‘Foo’)

Image

Il pourrait être nécessaire de vérifier la commande ci-dessus pour le périmètre

Travailler avec Environment Provider et les cmdlets Item

Utiliser le fournisseur d'environnement pour gérer les variables d'environnement comme un lecteur de système de fichiers

PowerShell fournit un fournisseur d'environnement qui traite les variables d'environnement comme un lecteur de système de fichiers, permettant aux utilisateurs de les gérer presque comme des fichiers et des répertoires. Le lecteur Env: dans PowerShell donne accès aux variables d'environnement. Chaque variable d'environnement est traitée comme un élément dans le lecteur Env:, et vous pouvez utiliser les cmdlets standards pour interagir avec ces variables. Voici un aperçu des cmdlets clés pour travailler avec le fournisseur d'environnement, tels que New-Item, Set-Item, Get-Item et Remove-Item.

New-Item

Le cmdlet New-Item peut être utilisé pour créer une nouvelle variable d'environnement, en suivant la syntaxe d'exemple ci-dessous et le cmdlet.

New-Item -Path Env:MY_NEW_VAR -Value “MyValue”

New-Item -Path Env: -Name “MyVariable” -Value “HelloWorld”

Cette commande crée une nouvelle variable d'environnement qui sera disponible pour la durée de la session actuelle.

Image

Set-Item

Si vous souhaitez mettre à jour la valeur d'une variable d'environnement existante ou la créer si elle n'existe pas déjà, vous pouvez utiliser le cmdlet Set-Item, en utilisant l'exemple de cmdlet ci-dessous.

Set-Item -Path Env:MY_NEW_VAR -Value “UpdatedValue”

Set-Item -Path Env:MyVariable -Value “NewValue”

Cette commande définira la valeur de la variable d'environnement sur nouveau. Si la variable n'existe pas, cette commande la créera avec la valeur spécifiée.

Get-Item

Pour récupérer la valeur d'une variable d'environnement existante, on peut utiliser le cmdlet Get-Item en suivant l'exemple de cmdlet ci-dessous.

Get-Item -Path Env:MY_NEW_VAR

Get-Item -Path Env:MyVariable

Cela retournera un objet représentant la variable d'environnement, y compris son nom et la valeur qui lui est attribuée.

Image

Remove-Item

Pour supprimer une variable d'environnement existante, vous pouvez utiliser le cmdlet Remove-Item.

Remove-Item -Path Env:MY_NEW_VAR

Remove-Item -Path Env:MyVariable

Cette commande supprimera la variable des variables d'environnement, vous pouvez utiliser le cmdlet Get-Item pour vérifier. Il est important de noter qu'une fois cette variable supprimée, elle ne peut être récupérée à moins d'être recréée.

Image

Variables d'environnement PowerShell courantes

PowerShell possède plusieurs variables d'environnement clés qui peuvent influencer son comportement et sa configuration. Ces variables sont créées et utilisées pour configurer le fonctionnement de PowerShell, les emplacements où il recherche des modules, des scripts et plusieurs préférences utilisateur. Voici quelques-unes des variables d'environnement clés couramment utilisées dans PowerShell.

POWERSHELL_TELEMETRY_OPTOUT

Cette variable d'environnement contrôle si PowerShell envoie des données de télémétrie à Microsoft. Si vous définissez cette variable à 1, cela se désabonne de l'envoi de données d'utilisation et de rapports de plantage à Microsoft. Par défaut, PowerShell envoie des données d'utilisation anonymes dans le but d'amélioration, mais vous pouvez vous désabonner.

POWERSHELL_DISTRIBUTION_CHANNEL

Indique le canal de distribution par lequel PowerShell a été installé. Cela peut être utile pour identifier si PowerShell a été installé via le Gestionnaire de paquets Windows (winget), MSI ou d'autres gestionnaires de paquets. Cela aide Microsoft à suivre quels canaux sont les plus utilisés.

POWERSHELL_UPDATECHECK

Cette variable d'environnement contrôle si PowerShell vérifie automatiquement les mises à jour. Si elle est définie sur 1, PowerShell vérifiera les mises à jour du shell. Si elle est définie sur 0, cela désactive la vérification automatique des mises à jour. Cela est utile pour gérer comment PowerShell gère les mises à jour.

PSExecutionPolicyPreference

Cette variable d'environnement spécifie la politique d'exécution PowerShell par défaut à utiliser lors de l'exécution de scripts. Si elle est définie, elle remplace la politique d'exécution configurée via Set-ExecutionPolicy. Par exemple, la définir sur RemoteSigned signifie que seuls les scripts créés localement peuvent s'exécuter sans signature.

PSModulePath

Cette variable contient les chemins où les modules PowerShell sont stockés et chargés. C'est une liste de répertoires séparés par des deux-points que PowerShell recherche pour trouver des modules. Vous pouvez modifier cette variable pour inclure des répertoires supplémentaires pour des modules personnalisés.

PSModuleAnalysisCachePath

Cette variable spécifie le chemin où PowerShell stocke le cache d'analyse des modules. PowerShell utilise l'analyse des modules pour optimiser les performances lors du chargement des modules, et le cache stocke les métadonnées analysées concernant les modules. Définir un chemin personnalisé permet de rediriger cet emplacement de cache.

PSDisableModuleAnalysisCacheCleanup

Si cette variable est définie sur 1, PowerShell désactivera le nettoyage automatique du cache d'analyse des modules. Par défaut, PowerShell efface automatiquement le cache d'analyse inutilisé pour économiser de l'espace disque, mais cette variable peut être définie pour empêcher cette action.

Il existe plusieurs autres variables d'environnement que vous pouvez utiliser pour configurer votre environnement ou récupérer des informations liées au système à l'aide de PowerShell. Certaines d'entre elles ont déjà été mentionnées dans ce blog ci-dessus, voici quelques autres variables d'environnement courantes.

  • USERNAME: Renvoie le nom d'utilisateur de l'utilisateur actuel.
  • ProgramFiles: Indique le répertoire « Program Files », généralement C:\Program Files.
  • ProgramFiles(x86): Indique le répertoire « Program Files (x86) », généralement utilisé pour les applications 32 bits sur un système 64 bits.
  • ALLUSERSPROFILE: Indique le répertoire de profil de tous les utilisateurs (habituellement C:\ProgramData).
  • WINDIR: Indique le répertoire Windows (habituellement C:\Windows).

Gestion des variables d'environnement via le Panneau de configuration

Vous pouvez définir ou modifier les variables d'environnement directement via le Panneau de configuration Windows. En suivant les étapes ci-dessous, vous pouvez facilement gérer les variables d'environnement à travers le Panneau de configuration Windows, en personnalisant les paramètres de votre système selon vos besoins.

  1. Ouvrez le Panneau de configuration, en appuyant sur « Windows + R » pour ouvrir la boîte de dialogue Exécuter. Tapez « control » et appuyez sur Entrée pour ouvrir le Panneau de configuration, ou recherchez panneau de configuration dans la barre de recherche à côté du bouton Démarrer et sélectionnez-le.
Image
  • Dans le Panneau de configuration, cliquez sur « Système ». Dans la barre latérale gauche, cliquez sur « Paramètres système avancés ».
Image
  • Dans la fenêtre Propriétés Système, cliquez sur le bouton « Variables d'environnement* » situé dans le coin inférieur droit.
Image
  • Dans la fenêtre des Variables d'environnement, vous verrez deux sections, « Variables utilisateur » (pour l'utilisateur actuel) et « Variables système » (pour tous les utilisateurs).
  • Pour créer une nouvelle variable, cliquez sur Nouveau dans la section respective.
  • Pour modifier une variable existante, sélectionnez la variable dans la liste et cliquez sur Modifier.
  • Pour supprimer une variable, sélectionnez-la et cliquez sur Supprimer.
Image
  • Si vous créez ou modifiez une variable, saisissez le « Nom de la variable » et la « Valeur de la variable » dans les champs respectifs. Pour des variables telles que Path, vous pouvez ajouter de nouveaux chemins en les séparant par des points-virgules. Ci-dessous se trouve la capture d'écran de la variable PATH.
Image
  • Après avoir effectué vos modifications, cliquez sur OK pour fermer chaque boîte de dialogue, enregistrant ainsi vos modifications.
  • Pour que vos modifications prennent effet, vous devrez peut-être redémarrer toutes les applications ou invites de commande ouvertes.

Dépannage des problèmes courants avec les variables d'environnement PowerShell

Les variables d'environnement dans PowerShell peuvent être délicates à manipuler, notamment lorsqu'il s'agit de gérer les portées, la persistance ou d'essayer de définir des valeurs non valides. Voici quelques problèmes courants auxquels les utilisateurs sont confrontés lorsqu'ils travaillent avec des variables d'environnement.

Définir une variable d'environnement à une chaîne vide

Lorsque vous essayez de définir une variable d'environnement avec une chaîne vide, vous pourriez ne pas observer le comportement attendu. Au lieu de vider la variable, elle pourrait toujours conserver sa valeur précédente. Définir une variable d'environnement avec une chaîne vide ne la supprime pas, cela lui assigne juste une valeur vide. Pour supprimer complètement la variable d'environnement au lieu de la définir à une chaîne vide, vous pouvez utiliser le cmdlet Remove-Item.

Portée incorrecte utilisée pour définir les variables d'environnement

Lors de la définition d'une variable d'environnement, si vous spécifiez la mauvaise portée (Utilisateur vs. Processus vs. Machine), la variable pourrait ne pas être disponible là où vous l'attendez. Pour définir la variable de manière permanente pour la portée de l'utilisateur ou du système, vous pouvez utiliser le cmdlet ci-dessous.

[System.Environment]::SetEnvironmentVariable(‘Variable’, ‘Value’, ‘scope’)

Les modifications ne sont pas reflétées après la configuration des variables d'environnement

Après avoir modifié une variable d'environnement, vous pourriez constater que les changements ne se reflètent pas immédiatement dans les sous-processus ou d'autres applications. Les variables d'environnement sont mises en cache dans le processus. Lorsque vous modifiez une variable d'environnement dans une session, d'autres sessions peuvent ne pas voir le changement avant d'être redémarrées. Pour vous assurer que d'autres applications voient les changements, redémarrez-les. Dans certains cas, pour que les applications prennent en compte les changements, un redémarrage du système peut être nécessaire.

Erreurs de permission lors de la configuration des variables système

Lors de la tentative de définir une variable d'environnement au niveau du système, vous pouvez rencontrer une erreur « accès refusé ». La modification des variables d'environnement système nécessite généralement des privilèges d'administrateur. Exécutez PowerShell en tant qu'administrateur.

Les variables ne persistent pas d'une session à l'autre

Vous avez défini une variable d'environnement en vous attendant à ce qu'elle persiste à travers les sessions, mais elle disparaît.

Si la variable est définie uniquement dans la session actuelle en utilisant “$env:”, elle ne persistera pas après la fermeture de PowerShell. Assurez-vous de définir la variable au niveau de l'utilisateur ou du système en utilisant la classe System.Environment ou l'éditeur de registre.

Non-concordance de la sensibilité à la casse

Les noms de variables d'environnement ne tiennent pas compte de la casse sur Windows, mais vous pourriez rencontrer des problèmes de sensibilité à la casse lors de l'utilisation de scripts multiplateformes tels que dans PowerShell Core sur Linux ou macOS. Lorsque vous écrivez des scripts qui seront exécutés sur plusieurs plateformes, assurez-vous d'utiliser constamment la casse correcte pour les noms de variables d'environnement.

Meilleures pratiques pour gérer les Variables d'Environnement

Gérer efficacement les variables d'environnement est crucial pour maintenir un environnement de travail stable et efficace dans PowerShell. Voici quelques bonnes pratiques pour utiliser les variables d'environnement de manière efficace sur différentes plateformes.

Utilisez des noms descriptifs

Choisissez des noms clairs et descriptifs pour vos variables d'environnement afin de les rendre facilement identifiables. Par exemple, utilisez MY_APP_CONFIG_PATH au lieu de quelque chose de vague comme CONFIG_PATH. Cela facilite la compréhension du rôle de la variable pour les autres (et pour vous à l'avenir). Un autre exemple serait, au lieu de « Var_Database », utilisez « DatabaseConnectionString » qui est plus descriptif.

Limiter la portée de manière appropriée

Comprenez les différents périmètres des variables d'environnement (Processus, Utilisateur, Machine) et définissez le périmètre selon vos besoins. Limitez les variables au périmètre le plus restreint nécessaire pour éviter d'éventuels conflits. Utilisez le périmètre processus pour les variables temporaires ou spécifiques à une session. Utilisez le périmètre utilisateur pour les variables qui devraient être disponibles pour l'utilisateur actuel sur plusieurs sessions mais pas pour les autres utilisateurs. Utilisez le périmètre machine pour les configurations à l'échelle du système qui devraient être accessibles par tous les utilisateurs et processus, telles que les chaînes de connexion de base de données ou les fichiers de configuration systèmes.

Documentez vos variables

Conservez un fichier de documentation ou des commentaires dans vos scripts expliquant l'objectif de chaque variable d'environnement, comment elle est utilisée et toutes les dépendances. Cela aidera les autres ou vous-même à l'avenir à comprendre votre configuration.

Évitez d'encoder en dur les données sensibles

Plutôt que d'encoder en dur des informations sensibles telles que des clés API, des mots de passe ou des valeurs dans vos scripts, utilisez des variables d'environnement pour rendre vos scripts plus flexibles et portables. Cela permet au même script de s'exécuter sur différentes machines avec différentes configurations.

Vérifiez les variables existantes

Avant de créer une nouvelle variable d'environnement, vérifiez si elle existe déjà pour éviter des écrasements non intentionnels. Cela garantit que vos scripts ou applications ne échouent pas en raison de variables d'environnement manquantes.

Utilisez des scripts de profil pour la persistance

Pour les variables d'environnement que vous souhaitez conserver entre les sessions, envisagez de les placer dans votre profil PowerShell. Ainsi, elles seront définies chaque fois que vous ouvrirez une nouvelle session PowerShell.

Nettoyage des variables d'environnement inutilisées

Supprimez les variables d'environnement inutilisées pour éviter l'encombrement et les conflits potentiels, en particulier dans les sessions de longue durée ou les grands systèmes. Vous pouvez supprimer les variables d'environnement à l'aide du cmdlet Remove-Item de PowerShell. Cela aide à maintenir un environnement propre et évite l'utilisation accidentelle de variables obsolètes ou non pertinentes.

Testez dans un environnement sûr

Avant de modifier les variables d'environnement clés, surtout dans un environnement de production, testez-les dans un environnement de développement ou de préproduction pour éviter les perturbations.

Faites attention aux modifications de chemin

Lors de la modification de la variable PATH, assurez-vous de ne pas supprimer accidentellement des chemins importants. Ajoutez toujours (+=) au lieu de réécrire (=) et faites une sauvegarde du PATH existant si nécessaire.

Considérez la compatibilité multiplateforme

Si vos scripts doivent être exécutés dans différents environnements (Windows, Linux, macOS), tenez compte de la sensibilité à la casse des noms de variables d'environnement sur Linux et macOS. Les variables d'environnement Windows ne tiennent pas compte de la casse, mais les variables d'environnement Linux/macOS y sont sensibles. Testez les scripts sur toutes les plateformes cibles pour vous assurer que les variables d'environnement fonctionnent correctement et ajustez votre approche en conséquence.

Meilleures pratiques de sécurité pour Active Directory

FAQ

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Jonathan Blackwell

Responsable du développement logiciel

Depuis 2012, Jonathan Blackwell, ingénieur et innovateur, a fourni un leadership en ingénierie qui a placé Netwrix GroupID à l'avant-garde de la gestion de groupes et d'utilisateurs pour les environnements Active Directory et Azure AD. Son expérience en développement, marketing et ventes permet à Jonathan de comprendre pleinement le marché de l'Identity Management et la façon de penser des acheteurs.