EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget Enum

Definición

Especifica la ubicación donde se almacena una variable de entorno o de donde se recupera en una operación Set o Get.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
Herencia
EnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTarget
Atributos

Campos

Machine Machine Machine Machine 2

La variable de entorno se almacena o recupera de la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment del Registro del sistema operativo 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. Este valor debe usarse en implementaciones de .NET que se ejecuten exclusivamente en sistemas Windows.This value should be used on .NET implementations running on Windows systems only.

Process Process Process Process 0

La variable de entorno se almacena o recupera del bloque de entorno asociado al proceso actual.The environment variable is stored or retrieved from the environment block associated with the current process.

User User User User 1

La variable de entorno se almacena o recupera de la clave HKEY_CURRENT_USER\Environment del Registro del sistema operativo Windows.The environment variable is stored or retrieved from the HKEY_CURRENT_USER\Environment key in the Windows operating system registry. Este valor debe usarse en implementaciones de .NET que se ejecuten exclusivamente en sistemas Windows.This value should be used on .NET implementations running on Windows systems only.

Ejemplos

En el ejemplo siguiente se usa el EnvironmentVariableTarget enumeración en métodos que crean, recuperar y eliminar variables de entorno.The following example uses the EnvironmentVariableTarget enumeration in methods that create, retrieve, and delete environment variables. El resultado del ejemplo muestra que las variables de entorno se almacenan y recuperan sin especificar un EnvironmentVariableTarget valor se almacena en el bloque de entorno asociado con el proceso actual (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). En el ejemplo de salida de los sistemas basados en Unix también muestra que intenta definir una variable de entorno con un valor distinto de EnvironmentVariableTarget.Process se omite.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...

Comentarios

El EnvironmentVariableTarget enumeración se utiliza determinadas sobrecargas de los Environment.SetEnvironmentVariable, Environment.GetEnvironmentVariable, y Environment.GetEnvironmentVariables métodos para especificar la ubicación o el destino, donde se almacena o recupera el nombre y valor de una variable de entorno.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.

El destino puede ser una de estas tres ubicaciones:The target can be one of three locations:

  • El bloque de entorno asociado con el proceso actual (EnvironmentVariableTarget.Process).The environment block associated with the current process (EnvironmentVariableTarget.Process).

    El usuario crea la variable de entorno en una operación de establecimiento.The user creates the environment variable in a set operation. Cuando finaliza el proceso, el sistema operativo destruye la variable de entorno en el proceso.When the process terminates, the operating system destroys the environment variable in that process.

  • La clave del registro del sistema operativo Windows reservada para las variables de entorno asociado con el usuario actual (EnvironmentVariableTarget.User).The Windows operating system registry key reserved for environment variables associated with the current user (EnvironmentVariableTarget.User).

    En los sistemas de Windows, cuando el usuario crea la variable de entorno en una operación set, el sistema operativo almacena la variable de entorno en el registro del sistema, pero no en el proceso actual.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. Si el usuario inicia un nuevo proceso, el sistema operativo copia la variable de entorno del registro para ese proceso.If the user starts a new process, the operating system copies the environment variable from the registry to that process. Cuando finaliza el proceso, el sistema operativo destruye la variable de entorno en el proceso.When the process terminates, the operating system destroys the environment variable in that process. Sin embargo, la variable de entorno en el registro continúa hasta que el usuario quita mediante programación o con una herramienta del sistema operativo.However, the environment variable in the registry persists until the user removes it programmatically or by means of an operating system tool.

    En los sistemas basados en Unix, un intento de crear una variable de entorno con EnvironmentVariable.User tiene ningún efecto y se intenta recuperar una variable entorno mediante EnvironmentVariable.User devuelve null (en C#) o Nothing (en 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).

  • La clave del registro reservada para las variables de entorno asociadas con todos los usuarios en el equipo local (EnvironmentVariableTarget.Machine).The registry key reserved for environment variables associated with all users on the local machine (EnvironmentVariableTarget.Machine).

    Cuando un usuario crea la variable de entorno en una operación set, el sistema operativo almacena la variable de entorno en el registro del sistema, pero no en el proceso actual.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. Si cualquier usuario en el equipo local inicia un proceso nuevo, el sistema operativo copia la variable de entorno del registro para ese proceso.If any user on the local machine starts a new process, the operating system copies the environment variable from the registry to that process. Cuando finaliza el proceso, el sistema operativo destruye la variable de entorno en el proceso.When the process terminates, the operating system destroys the environment variable in that process. Sin embargo, la variable de entorno en el registro continúa hasta que un usuario quita mediante programación o con una herramienta del sistema operativo.However, the environment variable in the registry persists until a user removes it programmatically or by means of an operating system tool.

    En los sistemas basados en Unix, un intento de crear una variable de entorno con EnvironmentVariable.Machine tiene ningún efecto y se intenta recuperar una variable entorno mediante EnvironmentVariable.Machine devuelve null (en C#) o Nothing (en 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).

Se aplica a