EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget 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
[System.Runtime.InteropServices.ComVisible(true)]
public enum EnvironmentVariableTarget
type EnvironmentVariableTarget = 
Public Enum EnvironmentVariableTarget
Vererbung
EnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTarget
Attribute

Felder

Machine Machine Machine 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.

Process Process Process 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 User User 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.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, die EnvironmentVariableTarget -Enumeration in Methoden zum Erstellen, ändern und Löschen von Umgebungsvariablen.The following code example demonstrates the EnvironmentVariableTarget enumeration in methods that create, modify, and delete environment variables.

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...

Hinweise

Die EnvironmentVariableTarget Enumeration wird verwendet, von bestimmten Überladungen der der Environment.SetEnvironmentVariable, Environment.GetEnvironmentVariable, und Environment.GetEnvironmentVariables Methoden, um den Speicherort oder das Ziel anzugeben, in den Namen und Wert einer Umgebungsvariablen gespeichert oder abgerufen wird.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.

Das Ziel kann eine der drei folgenden Speicherorte sein:The target can be one of three locations:

  • Der Umgebungsblock, der den aktuellen Prozess zugeordnet (EnvironmentVariableTarget.Process).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 Windows-Betriebssystem Registrierungsschlüssel reservierte für Umgebungsvariablen, die den aktuellen Benutzer zugeordnet (EnvironmentVariableTarget.User).The Windows operating system registry key reserved for environment variables associated with the current user (EnvironmentVariableTarget.User).

    Wenn der Benutzer die Umgebungsvariable in einem Set-Vorgang erstellt, speichert das Betriebssystem die Umgebungsvariable aus, in der Registrierung des Systems, aber nicht in den aktuellen Prozess.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 für den jeweiligen Prozess an.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 jedoch bleibt, bis der Benutzer sie programmgesteuert oder über ein Betriebssystem-Tool entfernt.However, the environment variable in the registry persists until the user removes it programmatically or by means of an operating system tool.

  • Der Registrierungsschlüssel, die für Umgebungsvariablen bezieht sich auf alle Benutzer auf dem lokalen Computer reservierten (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 Registrierung des Systems, aber nicht in den aktuellen Prozess an.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 alle Benutzer auf dem lokalen Computer einen neuen Prozess gestartet wird, kopiert das Betriebssystem die Umgebungsvariable aus der Registrierung für den jeweiligen Prozess an.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 jedoch bleibt, bis ein Benutzer sie programmgesteuert oder über ein Betriebssystem-Tool entfernt.However, the environment variable in the registry persists until a user removes it programmatically or by means of an operating system tool.

Gilt für: