EnvironmentVariableTarget Wyliczenie

Definicja

Określa lokalizację, w której zmienna środowiskowa jest przechowywana lub pobierana w ramach operacji set lub get.Specifies the location where an environment variable is stored or retrieved in a set or get operation.

public enum class EnvironmentVariableTarget
public enum EnvironmentVariableTarget
[System.Runtime.InteropServices.ComVisible(true)]
public enum EnvironmentVariableTarget
type EnvironmentVariableTarget = 
[<System.Runtime.InteropServices.ComVisible(true)>]
type EnvironmentVariableTarget = 
Public Enum EnvironmentVariableTarget
Dziedziczenie
EnvironmentVariableTarget
Atrybuty

Pola

Machine 2

Zmienna środowiskowa jest przechowywana lub pobierana z HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment klucza w rejestrze systemu operacyjnego Windows.The environment variable is stored or retrieved from the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment key in the Windows operating system registry. Ta wartość powinna być używana w implementacjach platformy .NET działających tylko w systemach Windows.This value should be used on .NET implementations running on Windows systems only.

Process 0

Zmienna środowiskowa jest przechowywana lub pobierana z bloku środowiska skojarzonego z bieżącym procesem.The environment variable is stored or retrieved from the environment block associated with the current process.

User 1

Zmienna środowiskowa jest przechowywana lub pobierana z HKEY_CURRENT_USER\Environment klucza w rejestrze systemu operacyjnego Windows.The environment variable is stored or retrieved from the HKEY_CURRENT_USER\Environment key in the Windows operating system registry. Ta wartość powinna być używana w implementacjach platformy .NET działających tylko w systemach Windows.This value should be used on .NET implementations running on Windows systems only.

Przykłady

Poniższy przykład używa EnvironmentVariableTarget wyliczenia w metodach, które tworzą, pobierają i usuwają zmienne środowiskowe.The following example uses the EnvironmentVariableTarget enumeration in methods that create, retrieve, and delete environment variables. Dane wyjściowe z przykładu pokazują, że zmienne environmnent przechowywane i pobierane bez określania EnvironmentVariableTarget wartości są przechowywane w bloku środowiska skojarzonym z bieżącym procesem ( EnvironmentVariableTarget.Process ).The output from the example shows that environmnent variables stored and retrieved without specifying a EnvironmentVariableTarget value are stored in the environment block associated with the current process (EnvironmentVariableTarget.Process). Przykładowe dane wyjściowe z systemów UNIX pokazują również, że program próbuje zdefiniować zmienną środowiskową o wartości innej niż EnvironmentVariableTarget.Process jest ignorowana.The example output from Unix-based systems also shows that attempts to define an environment variable with a value other than EnvironmentVariableTarget.Process is ignored.

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...
Imports System.Collections
Imports Microsoft.Win32

Module Sample 
    Public Sub Main() 
        ' Environment variable names for default, process, user, and machine targets.
        Dim defaultEnvVar As String = NameOf(defaultEnvVar)
        Dim processEnvVar As String = NameOf(processEnvVar)
        Dim userEnvVar As String = NameOf(userEnvVar)
        Dim machineEnvVar As String = NameOf(machineEnvVar)

        Dim dft As String = NameOf(dft)
        Dim process As String = NameOf(process)
        Dim user As String = NameOf(user)
        Dim machine As String = NameOf(machine)

        ' Set the environment variable for each target.
        Console.WriteLine("Setting environment variables for each target...")
        ' 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)
        Console.WriteLine()

        ' Define an array of environment variables.
        Dim envVars As String() = { 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:")
        For Each envVar in envVars
          Dim value = Environment.GetEnvironmentVariable(envVar)
          Console.WriteLine($"   {envVar}: {If(value IsNot Nothing, value, "(none)")}")
        Next
        Console.WriteLine()
        ' The process block.
        Console.WriteLine("Retrieving environment variables from the Process target:")
        For Each envVar in envVars
          Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process)
          Console.WriteLine($"   {envVar}: {If(value IsNot Nothing, value, "(none)")}")
        Next
        Console.WriteLine()
        ' The user block.
        Console.WriteLine("Retrieving environment variables from the User target:")
        For Each envVar in envVars
          Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User)
          Console.WriteLine($"   {envVar}: {value}")
        Next
        Console.WriteLine()
        ' The machine block.
        Console.WriteLine("Retrieving environment variables from the Machine target:")
        For Each envVar in envVars
          Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine)
          Console.WriteLine($"   {envVar}: {value}")
        Next
        Console.WriteLine()

        ' Delete the environment variable for each target.
        Console.WriteLine("Deleting environment variables for each target...")
        ' The default target (the current process).
        Environment.SetEnvironmentVariable(defaultEnvVar, Nothing)
        ' The current process.
        Environment.SetEnvironmentVariable(processEnvVar, Nothing, 
                                           EnvironmentVariableTarget.Process)
        ' The current user.
        Environment.SetEnvironmentVariable(userEnvVar, Nothing, 
                                           EnvironmentVariableTarget.User)
        ' The local machine.
        Environment.SetEnvironmentVariable(machineEnvVar, Nothing, 
                                           EnvironmentVariableTarget.Machine)
    End Sub
End Module
' 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...

Uwagi

EnvironmentVariableTargetWyliczenie jest używane przez niektóre przeciążenia Environment.SetEnvironmentVariable Environment.GetEnvironmentVariable metod,, i Environment.GetEnvironmentVariables do określania lokalizacji lub miejsca docelowego, gdzie nazwa i wartość zmiennej środowiskowej są przechowywane lub pobierane.The EnvironmentVariableTarget enumeration is used by certain overloads of the Environment.SetEnvironmentVariable, Environment.GetEnvironmentVariable, and Environment.GetEnvironmentVariables methods to specify the location, or target, where the name and value of an environment variable is stored or retrieved.

Element docelowy może być jedną z trzech lokalizacji:The target can be one of three locations:

  • Blok środowiska skojarzony z bieżącym procesem ( EnvironmentVariableTarget.Process ).The environment block associated with the current process (EnvironmentVariableTarget.Process).

    Użytkownik tworzy zmienną środowiskową w operacji zestawu.The user creates the environment variable in a set operation. Po zakończeniu procesu system operacyjny niszczy zmienną środowiskową w tym procesie.When the process terminates, the operating system destroys the environment variable in that process.

  • Klucz rejestru systemu operacyjnego Windows zarezerwowany dla zmiennych środowiskowych skojarzonych z bieżącym użytkownikiem ( EnvironmentVariableTarget.User ).The Windows operating system registry key reserved for environment variables associated with the current user (EnvironmentVariableTarget.User).

    W systemach Windows, gdy użytkownik tworzy zmienną środowiskową w ramach operacji zestawu, system operacyjny zapisuje zmienną środowiskową w rejestrze systemowym, ale nie w bieżącym procesie.On Windows systems, when the user creates the environment variable in a set operation, the operating system stores the environment variable in the system registry, but not in the current process. Jeśli użytkownik uruchamia nowy proces, system operacyjny kopiuje zmienną środowiskową z rejestru do tego procesu.If the user starts a new process, the operating system copies the environment variable from the registry to that process. Po zakończeniu procesu system operacyjny niszczy zmienną środowiskową w tym procesie.When the process terminates, the operating system destroys the environment variable in that process. Jednak zmienna środowiskowa w rejestrze zachowuje się, dopóki użytkownik nie usunie go programowo lub za pomocą narzędzia systemu operacyjnego.However, the environment variable in the registry persists until the user removes it programmatically or by means of an operating system tool.

    W systemach opartych na systemie UNIX próba utworzenia zmiennej środowiskowej, która EnvironmentVariable.User nie ma wpływu, i próby pobrania zmiennej środowiskowej przy użyciu funkcji EnvironmentVariable.User Returns null (w języku C#) lub Nothing (w Visual Basic).On Unix-based systems, an attempt to create an enviroment variable with EnvironmentVariable.User has no effect, and an attempt to retrieve an enviroment variable using EnvironmentVariable.User returns null (in C#) or Nothing (in Visual Basic).

  • Klucz rejestru zarezerwowany dla zmiennych środowiskowych skojarzonych ze wszystkimi użytkownikami na komputerze lokalnym ( EnvironmentVariableTarget.Machine ).The registry key reserved for environment variables associated with all users on the local machine (EnvironmentVariableTarget.Machine).

    Gdy użytkownik tworzy zmienną środowiskową w ramach operacji zestawu, system operacyjny zapisuje zmienną środowiskową w rejestrze systemowym, ale nie w bieżącym procesie.When a user creates the environment variable in a set operation, the operating system stores the environment variable in the system registry, but not in the current process. Jeśli dowolny użytkownik na komputerze lokalnym uruchamia nowy proces, system operacyjny kopiuje zmienną środowiskową z rejestru do tego procesu.If any user on the local machine starts a new process, the operating system copies the environment variable from the registry to that process. Po zakończeniu procesu system operacyjny niszczy zmienną środowiskową w tym procesie.When the process terminates, the operating system destroys the environment variable in that process. Jednak zmienna środowiskowa w rejestrze zachowuje się, dopóki użytkownik nie usunie go programowo lub za pomocą narzędzia systemu operacyjnego.However, the environment variable in the registry persists until a user removes it programmatically or by means of an operating system tool.

    W systemach opartych na systemie UNIX próba utworzenia zmiennej środowiskowej, która EnvironmentVariable.Machine nie ma wpływu, i próby pobrania zmiennej środowiskowej przy użyciu funkcji EnvironmentVariable.Machine Returns null (w języku C#) lub Nothing (w Visual Basic).On Unix-based systems, an attempt to create an enviroment variable with EnvironmentVariable.Machine has no effect, and an attempt to retrieve an enviroment variable using EnvironmentVariable.Machine returns null (in C#) or Nothing (in Visual Basic).

Dotyczy