EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget Enum

Definizione

Specifica la posizione in cui una variabile di ambiente viene memorizzata o recuperata durante un'operazione di impostazione o di lettura.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
Ereditarietà
EnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTargetEnvironmentVariableTarget
Attributi

Campi

Machine Machine Machine Machine 2

La variabile di ambiente viene memorizzata o recuperata dalla chiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment nel 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. Questo valore deve essere usato nelle implementazioni di .NET in esecuzione solo nei sistemi Windows.This value should be used on .NET implementations running on Windows systems only.

Process Process Process Process 0

La variabile di ambiente viene memorizzata o recuperata dal blocco di ambiente associato al processo corrente.The environment variable is stored or retrieved from the environment block associated with the current process.

User User User User 1

La variabile di ambiente viene memorizzata o recuperata dalla chiave HKEY_CURRENT_USER\Environment nel 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. Questo valore deve essere usato nelle implementazioni di .NET in esecuzione solo nei sistemi Windows.This value should be used on .NET implementations running on Windows systems only.

Esempi

Nell'esempio seguente viene usata EnvironmentVariableTarget l'enumerazione nei metodi che creano, recuperano ed eliminano le variabili di ambiente.The following example uses the EnvironmentVariableTarget enumeration in methods that create, retrieve, and delete environment variables. L'output dell'esempio mostra che le variabili silenziosa archiviate e recuperate senza EnvironmentVariableTarget specificare un valore vengono archiviate nel blocco dell'ambiente associato al processoEnvironmentVariableTarget.Processcorrente ().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). L'output di esempio dei sistemi basati su UNIX Mostra anche che i tentativi di definire una variabile di ambiente con un EnvironmentVariableTarget.Process valore diverso da vengono ignorati.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...

Commenti

L' EnvironmentVariableTarget enumerazione viene utilizzata da determinati overload Environment.SetEnvironmentVariabledei metodi, Environment.GetEnvironmentVariablee Environment.GetEnvironmentVariables per specificare il percorso, o destinazione, in cui il nome e il valore di una variabile di ambiente vengono archiviati o recuperati.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.

La destinazione può essere una delle tre posizioni seguenti:The target can be one of three locations:

  • Blocco dell'ambiente associato al processo corrente (EnvironmentVariableTarget.Process).The environment block associated with the current process (EnvironmentVariableTarget.Process).

    L'utente crea la variabile di ambiente in un'operazione di impostazione.The user creates the environment variable in a set operation. Al termine del processo, il sistema operativo elimina la variabile di ambiente in tale processo.When the process terminates, the operating system destroys the environment variable in that process.

  • Chiave del registro di sistema del sistema operativo Windows riservata per le variabili di ambiente associateEnvironmentVariableTarget.Userall'utente corrente ().The Windows operating system registry key reserved for environment variables associated with the current user (EnvironmentVariableTarget.User).

    Nei sistemi Windows, quando l'utente crea la variabile di ambiente in un'operazione di impostazione, il sistema operativo archivia la variabile di ambiente nel registro di sistema, ma non nel processo corrente.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. Se l'utente avvia un nuovo processo, il sistema operativo copia la variabile di ambiente dal registro di sistema al processo.If the user starts a new process, the operating system copies the environment variable from the registry to that process. Al termine del processo, il sistema operativo elimina la variabile di ambiente in tale processo.When the process terminates, the operating system destroys the environment variable in that process. Tuttavia, la variabile di ambiente nel registro di sistema viene mantenute fino a quando non viene rimossa dall'utente a livello di codice o tramite uno strumento 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.

    Nei sistemi basati su UNIX, un tentativo di creare una variabile di ambiente EnvironmentVariable.User con non ha alcun effetto e un tentativo di recuperare una variabile di EnvironmentVariable.User ambiente null utilizzando restituisce C#(in Nothing ) o (in 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).

  • Chiave del registro di sistema riservata per le variabili di ambiente associate a tutti gli utentiEnvironmentVariableTarget.Machinenel computer locale ().The registry key reserved for environment variables associated with all users on the local machine (EnvironmentVariableTarget.Machine).

    Quando un utente crea la variabile di ambiente in un'operazione di impostazione, il sistema operativo archivia la variabile di ambiente nel registro di sistema, ma non nel processo corrente.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. Se un utente del computer locale avvia un nuovo processo, il sistema operativo copia la variabile di ambiente dal registro di sistema al processo.If any user on the local machine starts a new process, the operating system copies the environment variable from the registry to that process. Al termine del processo, il sistema operativo elimina la variabile di ambiente in tale processo.When the process terminates, the operating system destroys the environment variable in that process. Tuttavia, la variabile di ambiente nel registro di sistema viene mantenute fino a quando non viene rimossa da un utente a livello di codice o tramite uno strumento 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.

    Nei sistemi basati su UNIX, un tentativo di creare una variabile di ambiente EnvironmentVariable.Machine con non ha alcun effetto e un tentativo di recuperare una variabile di EnvironmentVariable.Machine ambiente null utilizzando restituisce C#(in Nothing ) o (in 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).

Si applica a