Lire en anglais

Partager via


EnvironmentVariableTarget Énumération

Définition

Spécifie l'emplacement où une variable d'environnement est stockée ou récupérée lors d'une opération de définition (set) ou d'obtention (get).

C#
public enum EnvironmentVariableTarget
C#
[System.Runtime.InteropServices.ComVisible(true)]
public enum EnvironmentVariableTarget
Héritage
EnvironmentVariableTarget
Attributs

Champs

Machine 2

La variable d'environnement est stockée ou récupérée à partir de la clé HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment de la base de registres du système d'exploitation Windows. Cette valeur doit être utilisée sur des implémentations de .NET exécutées sur des systèmes Windows uniquement.

Process 0

La variable d'environnement est stockée ou récupérée à partir du bloc environnement associé au processus en cours.

User 1

La variable d'environnement est stockée ou récupérée à partir de la clé HKEY_CURRENT_USER\Environment de la base de registres du système d'exploitation Windows. Cette valeur doit être utilisée sur des implémentations de .NET exécutées sur des systèmes Windows uniquement.

Exemples

L’exemple suivant utilise l’énumération dans les EnvironmentVariableTarget méthodes qui créent, récupèrent et suppriment des variables d’environnement. La sortie de l’exemple montre que les variables environmnentes stockées et récupérées sans spécifier de EnvironmentVariableTarget valeur sont stockées dans le bloc d’environnement associé au processus actuel (EnvironmentVariableTarget.Process). L’exemple de sortie à partir de systèmes unix montre également que les tentatives de définition d’une variable d’environnement avec une valeur autre que EnvironmentVariableTarget.Process celle qui est ignorée.

C#
using System;
using System.Collections;
using Microsoft.Win32;

class Sample
{
    public static void Main()
    {
        // Environment variable names for default, process, user, and machine targets.
        string defaultEnvVar = nameof(defaultEnvVar);
        string processEnvVar = nameof(processEnvVar);
        string userEnvVar = nameof(userEnvVar);
        string machineEnvVar = nameof(machineEnvVar);

        string dft = nameof(dft);
        string process = nameof(process);
        string user = nameof(user);
        string machine = nameof(machine);

        // Set the environment variable for each target.
        Console.WriteLine("Setting environment variables for each target...\n");
        // The default target (the current process).
        Environment.SetEnvironmentVariable(defaultEnvVar, dft);
        // The current process.
        Environment.SetEnvironmentVariable(processEnvVar, process,
                                           EnvironmentVariableTarget.Process);
        // The current user.
        Environment.SetEnvironmentVariable(userEnvVar, user,
                                           EnvironmentVariableTarget.User);
        // The local machine.
        Environment.SetEnvironmentVariable(machineEnvVar, machine,
                                           EnvironmentVariableTarget.Machine);

        // Define an array of environment variables.
        string[] envVars = { defaultEnvVar,processEnvVar, userEnvVar, machineEnvVar };

        // Try to get the environment variables from each target.
        // The default (no specified target).
        Console.WriteLine("Retrieving environment variables from the default target:");
        foreach (var envVar in envVars)
        {
          var value = Environment.GetEnvironmentVariable(envVar) ?? "(none)";
          Console.WriteLine($"   {envVar}: {value}");
        }
        // The process block.
        Console.WriteLine("\nRetrieving environment variables from the Process target:");
        foreach (var envVar in envVars)
        {
          var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) ?? "(none)";
          Console.WriteLine($"   {envVar}: {value}");
        }
        // The user block.
        Console.WriteLine("\nRetrieving environment variables from the User target:");
        foreach (var envVar in envVars)
        {
          var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) ?? "(none)";
          Console.WriteLine($"   {envVar}: {value}");
        }
        // The machine block.
        Console.WriteLine("\nRetrieving environment variables from the Machine target:");
        foreach (var envVar in envVars)
        {
          var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) ?? "(none)";
          Console.WriteLine($"   {envVar}: {value}");
        }

        // Delete the environment variable for each target.
        Console.WriteLine("\nDeleting environment variables for each target...\n");
        // The default target (the current process).
        Environment.SetEnvironmentVariable(defaultEnvVar, null);
        // The current process.
        Environment.SetEnvironmentVariable(processEnvVar, null,
                                           EnvironmentVariableTarget.Process);
        // The current user.
        Environment.SetEnvironmentVariable(userEnvVar, null,
                                           EnvironmentVariableTarget.User);
        // The local machine.
        Environment.SetEnvironmentVariable(machineEnvVar, null,
                                           EnvironmentVariableTarget.Machine);
    }
}
// The example displays the following output if run on a Windows system:
//      Setting environment variables for each target...
//
//      Retrieving environment variables from the default target:
//        defaultEnvVar: dft
//        processEnvVar: process
//        userEnvVar: user
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the Process target:
//        defaultEnvVar: dft
//        processEnvVar: process
//        userEnvVar: user
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the User target:
//        defaultEnvVar: (none)
//        processEnvVar: (none)
//        userEnvVar: user
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the Machine target:
//        defaultEnvVar: (none)
//        processEnvVar: (none)
//        userEnvVar: (none)
//        machineEnvVar: machine
//
//      Deleting environment variables for each target...
//
// The example displays the following output if run on a Unix-based system:
//
//      Setting environment variables for each target...
//
//      Retrieving environment variables from the default target:
//        defaultEnvVar: dft
//        processEnvVar: process
//        userEnvVar: (none)
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the Process target:
//        defaultEnvVar: dft
//        processEnvVar: process
//        userEnvVar: (none)
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the User target:
//        defaultEnvVar: (none)
//        processEnvVar: (none)
//        userEnvVar: (none)
//        machineEnvVar: (none)
//
//      Retrieving environment variables from the Machine target:
//        defaultEnvVar: (none)
//        processEnvVar: (none)
//        userEnvVar: (none)
//        machineEnvVar: (none)
//
//      Deleting environment variables for each target...

Remarques

L’énumération EnvironmentVariableTarget est utilisée par certaines surcharges du Environment.SetEnvironmentVariable, Environment.GetEnvironmentVariableet Environment.GetEnvironmentVariables des méthodes pour spécifier l’emplacement ou la cible, où le nom et la valeur d’une variable d’environnement sont stockés ou récupérés.

La cible peut être l’un des trois emplacements suivants :

  • Bloc d’environnement associé au processus actuel (EnvironmentVariableTarget.Process).

    L’utilisateur crée la variable d’environnement dans une opération définie. Lorsque le processus se termine, le système d’exploitation détruit la variable d’environnement dans ce processus.

  • Clé de Registre du système d’exploitation Windows réservée aux variables d’environnement associées à l’utilisateur actuel (EnvironmentVariableTarget.User).

    Sur Windows systèmes, lorsque l’utilisateur crée la variable d’environnement dans une opération définie, le système d’exploitation stocke la variable d’environnement dans le registre système, mais pas dans le processus actuel. Si l’utilisateur démarre un nouveau processus, le système d’exploitation copie la variable d’environnement du Registre vers ce processus. Lorsque le processus se termine, le système d’exploitation détruit la variable d’environnement dans ce processus. Toutefois, la variable d’environnement dans le Registre persiste jusqu’à ce que l’utilisateur le supprime par programmation ou par le biais d’un outil de système d’exploitation.

    Sur les systèmes Unix, une tentative de création d’une variable d’enviroment sans EnvironmentVariable.User effet et une tentative de récupération d’une variable d’enviroment à l’aide EnvironmentVariable.User de retours null (en C#) ou Nothing (en Visual Basic).

  • Clé de Registre réservée pour les variables d’environnement associées à tous les utilisateurs sur l’ordinateur local (EnvironmentVariableTarget.Machine).

    Lorsqu’un utilisateur crée la variable d’environnement dans une opération définie, le système d’exploitation stocke la variable d’environnement dans le registre système, mais pas dans le processus actuel. Si un utilisateur sur l’ordinateur local démarre un nouveau processus, le système d’exploitation copie la variable d’environnement du Registre vers ce processus. Lorsque le processus se termine, le système d’exploitation détruit la variable d’environnement dans ce processus. Toutefois, la variable d’environnement dans le Registre persiste jusqu’à ce qu’un utilisateur le supprime par programmation ou par le biais d’un outil de système d’exploitation.

    Sur les systèmes Unix, une tentative de création d’une variable d’enviroment sans EnvironmentVariable.Machine effet et une tentative de récupération d’une variable d’enviroment à l’aide EnvironmentVariable.Machine de retours null (en C#) ou Nothing (en Visual Basic).

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1