EnvironmentVariableTarget Enum

Definition

Gibt den Speicherort an, an dem eine Umgebungsvariable in einer Set- oder Get-Operation gespeichert bzw. abgerufen wird.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 = 
Public Enum EnvironmentVariableTarget
Inheritance
EnvironmentVariableTarget
Attributes

Fields

Machine 2

Die Umgebungsvariable wird im HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment-Schlüssel in der Registrierung des Windows-Betriebssystems gespeichert bzw. daraus abgerufen.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. Dieser Wert sollte nur in .NET-Implementierungen verwendet werden, die auf Windows-Systemen ausgeführt werden.This value should be used on .NET implementations running on Windows systems only.

Process 0

Die Umgebungsvariable wird in dem Umgebungsblock gespeichert, der dem aktuellen Prozess zugeordnet ist, bzw. daraus abgerufen.The environment variable is stored or retrieved from the environment block associated with the current process.

User 1

Die Umgebungsvariable wird im HKEY_CURRENT_USER\Environment-Schlüssel in der Registrierung des Windows-Betriebssystems gespeichert bzw. daraus abgerufen.The environment variable is stored or retrieved from the HKEY_CURRENT_USER\Environment key in the Windows operating system registry. Dieser Wert sollte nur in .NET-Implementierungen verwendet werden, die auf Windows-Systemen ausgeführt werden.This value should be used on .NET implementations running on Windows systems only.

Examples

Im folgenden Beispiel wird die EnvironmentVariableTarget-Enumeration in Methoden verwendet, die Umgebungsvariablen erstellen, abrufen und löschen.The following example uses the EnvironmentVariableTarget enumeration in methods that create, retrieve, and delete environment variables. Die Ausgabe des Beispiels zeigt, dass Environment mnent-Variablen, die ohne Angabe eines EnvironmentVariableTarget Werts gespeichert und abgerufen werden, im Umgebungsblock gespeichert werden, der dem aktuellen Prozess zugeordnet ist (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). Die Beispielausgabe von UNIX-basierten Systemen zeigt auch, dass Versuche, eine Umgebungsvariable mit einem anderen Wert als EnvironmentVariableTarget.Process zu definieren, ignoriert werden.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...

Remarks

Die EnvironmentVariableTarget-Enumeration wird von bestimmten über Ladungen der Methoden Environment.SetEnvironmentVariable, Environment.GetEnvironmentVariableund Environment.GetEnvironmentVariables verwendet, um den Speicherort bzw. das Ziel anzugeben, in dem der Name und der Wert einer Umgebungsvariablen gespeichert oder abgerufen werden.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.

Bei dem Ziel kann es sich um einen von dreispeicher Orten handeln:The target can be one of three locations:

  • Der Umgebungsblock, der dem aktuellen Prozess (EnvironmentVariableTarget.Process) zugeordnet ist.The environment block associated with the current process (EnvironmentVariableTarget.Process).

    Der Benutzer erstellt die Umgebungsvariable in einem Set-Vorgang.The user creates the environment variable in a set operation. Wenn der Prozess beendet wird, zerstört das Betriebssystem die Umgebungsvariable in diesem Prozess.When the process terminates, the operating system destroys the environment variable in that process.

  • Der Registrierungsschlüssel des Windows-Betriebssystems, der für die dem aktuellen Benutzer zugeordneten Umgebungsvariablen reserviert ist (EnvironmentVariableTarget.User).The Windows operating system registry key reserved for environment variables associated with the current user (EnvironmentVariableTarget.User).

    Wenn der Benutzer auf Windows-Systemen die Umgebungsvariable in einem Set-Vorgang erstellt, speichert das Betriebssystem die Umgebungsvariable in der Systemregistrierung, jedoch nicht im aktuellen Prozess.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. Wenn der Benutzer einen neuen Prozess startet, kopiert das Betriebssystem die Umgebungsvariable aus der Registrierung in diesen Prozess.If the user starts a new process, the operating system copies the environment variable from the registry to that process. Wenn der Prozess beendet wird, zerstört das Betriebssystem die Umgebungsvariable in diesem Prozess.When the process terminates, the operating system destroys the environment variable in that process. Die Umgebungsvariable in der Registrierung bleibt jedoch erhalten, bis Sie vom Benutzerprogramm gesteuert oder mithilfe eines Betriebssystem Tools entfernt wird.However, the environment variable in the registry persists until the user removes it programmatically or by means of an operating system tool.

    Bei UNIX-basierten Systemen hat der Versuch, eine Umgebungsvariable mit EnvironmentVariable.User zu erstellen, keine Auswirkung, und der Versuch, eine Umgebungsvariable mithilfe von EnvironmentVariable.User abzurufen, gibt null (in C#) oder Nothing (in Visual Basic) zurück.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).

  • Der Registrierungsschlüssel, der für Umgebungsvariablen reserviert ist, die allen Benutzern auf dem lokalen Computer zugeordnet sind (EnvironmentVariableTarget.Machine).The registry key reserved for environment variables associated with all users on the local machine (EnvironmentVariableTarget.Machine).

    Wenn ein Benutzer die Umgebungsvariable in einem Set-Vorgang erstellt, speichert das Betriebssystem die Umgebungsvariable in der Systemregistrierung, jedoch nicht im aktuellen Prozess.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. Wenn ein Benutzer auf dem lokalen Computer einen neuen Prozess startet, kopiert das Betriebssystem die Umgebungsvariable aus der Registrierung in diesen Prozess.If any user on the local machine starts a new process, the operating system copies the environment variable from the registry to that process. Wenn der Prozess beendet wird, zerstört das Betriebssystem die Umgebungsvariable in diesem Prozess.When the process terminates, the operating system destroys the environment variable in that process. Die Umgebungsvariable in der Registrierung bleibt jedoch erhalten, bis Sie von einem Benutzerprogramm gesteuert oder mithilfe eines Betriebssystem Tools entfernt wird.However, the environment variable in the registry persists until a user removes it programmatically or by means of an operating system tool.

    Bei UNIX-basierten Systemen hat der Versuch, eine Umgebungsvariable mit EnvironmentVariable.Machine zu erstellen, keine Auswirkung, und der Versuch, eine Umgebungsvariable mithilfe von EnvironmentVariable.Machine abzurufen, gibt null (in C#) oder Nothing (in Visual Basic) zurück.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).

Applies to