Lire en anglais

Partager via


about_Environment_Variables

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

about_Environment_Variables

DESCRIPTION COURTE

Décrit comment accéder aux variables d'environnement Windows dans Windows PowerShell®.

DESCRIPTION DÉTAILLÉE

Les variables d'environnement stockent des informations sur l'environnement du système d'exploitation. Elles fournissent diverses informations détaillées, telles que le chemin d'accès du système d'exploitation, le nombre de processeurs utilisés par le système d'exploitation et l'emplacement des dossiers temporaires.

Les variables d'environnement stockent des données qui sont utilisées par le système d'exploitation et d'autres programmes. Par exemple, la variable d'environnement WINDIR contient l'emplacement du répertoire d'installation de Windows. Les programmes peuvent obtenir la valeur de cette variable pour connaître l'emplacement des fichiers du système d'exploitation Windows.

Dans Windows PowerShell, vous pouvez afficher et modifier les variables d'environnement Windows, y compris les variables définies dans le Registre et celles définies pour une session particulière. Le fournisseur Environment de Windows PowerShell facilite l'affichage et la modification des variables d'environnement.

Contrairement à d'autres types de variables dans Windows PowerShell, les variables d'environnement et leurs valeurs sont héritées par les sessions enfants, notamment les tâches locales en arrière-plan et les sessions où s'exécutent les membres de module. Les variables d'environnement sont donc adaptées pour le stockage des valeurs à utiliser dans toutes les sessions (parents et enfants).

FOURNISSEUR ENVIRONMENT DE WINDOWS POWERSHELL

Le fournisseur Environment de Windows PowerShell vous permet d'accéder aux variables d'environnement Windows dans Windows PowerShell sur un lecteur Windows PowerShell (le lecteur Env: ). Ce lecteur ressemble beaucoup à un lecteur de système de fichiers. Pour accéder au lecteur Env: , tapez :

  Set-Location Env:

Ensuite, pour afficher le contenu du lecteur Env: , tapez :

  Get-ChildItem

Vous pouvez afficher les variables d'environnement du lecteur Env: à partir de n'importe quel autre lecteur Windows PowerShell, puis accéder au lecteur Env: pour afficher et modifier les variables d'environnement.

OBJETS DE VARIABLE D'ENVIRONNEMENT

Dans Windows PowerShell, chaque variable d'environnement est représentée par un objet qui est une instance de la classe System.Collections.DictionaryEntry.

Dans chaque objet DictionaryEntry, le nom de la variable d'environnement est la clé du dictionnaire. La valeur de la variable est la valeur du dictionnaire.

Pour afficher une variable d'environnement dans Windows PowerShell, obtenez un objet qui représente la variable, puis affichez les valeurs des propriétés de l'objet. Quand vous modifiez une variable d'environnement dans Windows PowerShell, utilisez les méthodes qui sont associées à l'objet DictionaryEntry.

Pour afficher les propriétés et méthodes de l'objet représentant une variable d'environnement dans Windows PowerShell, utilisez l'applet de commande Get-Member. Par exemple, pour afficher les méthodes et les propriétés de tous les objets du lecteur Env: , tapez :

  Get-Item -Path Env:* | Get-Member

AFFICHAGE DES VARIABLES D'ENVIRONNEMENT

Vous pouvez utiliser les applets de commande contenant le nom Item (les applets de commande Item) pour afficher et modifier les valeurs des variables d'environnement. Étant donné que les variables d'environnement n'ont pas d'éléments enfants, la sortie de Get-Item est la même que celle de Get-ChildItem.

Quand vous faites référence à une variable d'environnement, tapez le nom du du lecteur Env: suivi du nom de la variable. Par exemple, pour afficher la valeur de la variable d'environnement COMPUTERNAME, tapez :

  Get-Childitem Env:Computername

Pour afficher les valeurs de toutes les variables d'environnement, tapez :

  Get-ChildItem Env:

Par défaut, Windows PowerShell affiche les variables d'environnement dans l'ordre dans lequel il les obtient. Pour trier la liste des variables d'environnement par nom de variable, envoyez la sortie d'une commande Get-ChildItem vers l'applet de commande Sort-Object. Par exemple, à partir d'un lecteur Windows PowerShell, tapez :

  Get-ChildItem Env: | Sort Name

Vous pouvez également accéder au lecteur Env: à l'aide de l'applet de commande Set-Location :

  Set-Location Env:

Si vous êtes dans le lecteur Env:, vous pouvez omettre le nom de lecteur Env: dans le chemin d'accès. Par exemple, pour afficher toutes les variables d'environnement, tapez :

  Get-ChildItem

Pour afficher la valeur de la variable COMPUTERNAME à partir du lecteur Env: , tapez :

  Get-ChildItem ComputerName

Vous pouvez également afficher et modifier les valeurs des variables d'environnement sans utiliser une applet de commande, à l'aide de l'analyseur d'expression fourni dans Windows PowerShell. Pour afficher la valeur d'une variable d'environnement, utilisez la syntaxe suivante :

  $Env:<variable-name>

Par exemple, pour afficher la valeur de la variable d'environnement WINDIR, tapez la commande suivante à l'invite de commandes Windows PowerShell :

  $Env:windir

Dans cette syntaxe, le signe dollar ($) désigne une variable et le nom du lecteur représente une variable d'environnement.

MODIFICATION DES VARIABLES D'ENVIRONNEMENT

Pour modifier une variable d'environnement de façon permanente, ouvrez Système dans le Panneau de configuration (onglet Avancé ou élément Paramètres système avancés), puis enregistrez la modification dans le Registre.

Quand vous modifiez des variables d'environnement dans Windows PowerShell, les modifications s'appliquent uniquement à la session active. Ce comportement ressemble à celui de la commande Set dans les environnements Windows et de la commande Setenv dans les environnements UNIX.

Vous devez également posséder l'autorisation nécessaire pour modifier les valeurs des variables. Sinon, si vous essayez de modifier une valeur, la commande échoue et Windows PowerShell affiche une erreur.

Vous pouvez modifier les valeurs des variables sans l'aide d'une applet de commande, en utilisant la syntaxe suivante :

          $Env:<variable-name> = "<new-value>"

Par exemple, pour ajouter « ;c:\temp » à la valeur de la variable d'environnement Path, utilisez la syntaxe suivante :

  $Env:path = $env:path + ";c:\temp"

Vous pouvez aussi utiliser les applets de commande Item, telles que Set-Item, Remove-Item et Copy-Item, pour modifier les valeurs des variables d'environnement. Par exemple, pour utiliser l'applet de commande Set-Item pour ajouter « ;c:\temp » à la valeur de la variable d'environnement Path, utilisez la syntaxe suivante :

          Set-Item -Path Env:Path -Value ($Env:Path + ";C:\Temp")

Dans cette commande, la valeur est placée entre parenthèses afin qu'elle soit interprétée comme une unité.

ENREGISTREMENT DES MODIFICATIONS APPORTÉES AUX VARIABLES D'ENVIRONNEMENT

Pour créer ou modifier la valeur d'une variable d'environnement pour chaque session Windows PowerShell, effectuez la modification dans votre profil Windows PowerShell.

Par exemple, pour ajouter le répertoire C:\Temp à la variable d'environnement Path de chaque session Windows PowerShell, ajoutez la commande suivante à votre profil Windows PowerShell.

  $Env:Path = $Env:Path + ";C:\Temp"

Pour ajouter la commande à un profil existant, par exemple le profil CurrentUser,AllHosts, tapez :

  Add-Content -Path $Profile.CurrentUserAllHosts -Value '$Env:Path = $Env:Path + ";C:\Temp"'

VARIABLES D'ENVIRONNEMENT STOCKANT LES PRÉFÉRENCES

Les fonctionnalités Windows PowerShell peuvent utiliser des variables d'environnement pour stocker les préférences utilisateur. Ces variables fonctionnent comme des variables de préférence, à la différence qu'elles sont héritées par les sessions enfants des sessions dans lesquelles elles sont créées. Pour plus d'informations sur les variables de préférence, consultez about_preference_variables.

Les variables d'environnement qui stockent les préférences sont les suivantes :

PSEXECUTIONPOLICYPREFERENCE

Stocke l'ensemble des stratégies d'exécution pour la session active. Cette variable d'environnement est disponible uniquement quand vous définissez une stratégie d'exécution pour une seule session. Il y a deux façons de procéder :

-- Utilisez PowerShell.exe pour démarrer une session à partir de la ligne de commande et utilisez son paramètre ExecutionPolicy pour définir la stratégie d'exécution pour la session.

-- Utilisez l'applet de commande Set-ExecutionPolicy. Utilisez le paramètre Scope avec la valeur Process.

Pour plus d'informations, consultez about_Execution_Policies.

PSMODULEPATH

Stocke les chemins d'accès aux répertoires de modules par défaut. Windows PowerShell recherche les modules dans les répertoires spécifiés si vous ne spécifiez pas de chemin d'accès complet à un module.

La valeur par défaut de $Env: PSModulePath est :

                $home\Documents\WindowsPowerShell\Modules; $pshome\Modules

Windows PowerShell définit la valeur de « $pshome\Modules » dans le Registre. Il définit la valeur de « $home\Documents\WindowsPowerShell\Modules » à chaque démarrage de Windows PowerShell.

De plus, les programmes d'installation qui installent des modules dans d'autres répertoires, tels que le répertoire Program Files, peuvent ajouter leurs emplacements à la valeur de PSModulePath.

Pour modifier les répertoires de modules par défaut pour la session active, modifiez la valeur de la variable d'environnement PSModulePath à l'aide de la syntaxe de commande suivante.

Par exemple, pour ajouter le répertoire « C:\Program Files\Fabrikam\Modules » à la valeur de la variable d'environnement PSModulePath, tapez :

                $Env:PSModulePath = $Env:PSModulePath + ";C:\Program Files\Fabrikam\Modules"

Le point-virgule (;) dans la commande sépare le nouveau chemin d'accès du chemin d'accès qui le précède dans la liste.

Pour modifier la valeur de PSModulePath pour chaque session, ajoutez la commande précédente dans votre profil Windows PowerShell ou utilisez la méthode SetEnvironmentVariable de la classe Environment.

La commande suivante utilise la méthode GetEnvironmentVariable pour obtenir la valeur de l'ordinateur de PSModulePath et la méthode SetEnvironmentVariable pour ajouter le chemin d'accès C:\Program Files\Fabrikam\Modules à la valeur.

$path = [System.Environment]::GetEnvironmentVariable("PSModulePath", "Machine")
            [System.Environment]::SetEnvironmentVariable("PSModulePath", $path + `
               ";C:\Program Files\Fabrikam\Modules", "Machine")

Pour ajouter un chemin d'accès au paramètre utilisateur, changez la valeur cible par User.

            $path = [System.Environment]::GetEnvironmentVariable("PSModulePath", "User")
            [System.Environment]::SetEnvironmentVariable("PSModulePath", $path + `
               ";$home\Documents\Fabrikam\Modules", "User")

Pour plus d'informations sur les méthodes de la classe System.Environment, consultez « Méthodes Environment » dans la bibliothèque MSDN à l'adresse https://go.microsoft.com/fwlink/?LinkId=242783.

Vous pouvez également ajouter une commande qui modifie la valeur dans votre profil ou utiliser Système dans le Panneau de configuration pour modifier la valeur de la variable d'environnement PSModulePath dans le Registre.

Pour plus d'informations, consultez about_Modules.

VOIR AUSSI

Environment (fournisseur)

about_Modules