Ler em inglês

Compartilhar via


Environment.GetEnvironmentVariables Método

Definição

Recupera todos os nomes das variáveis de ambiente e seus valores.

Sobrecargas

GetEnvironmentVariables()

Recupera todos os nomes de variáveis de ambiente e seus valores do processo atual.

GetEnvironmentVariables(EnvironmentVariableTarget)

Recupera todos os nomes de variáveis de ambiente e seus valores do processo atual ou de uma chave do Registro do sistema operacional Windows para o usuário atual ou o computador local.

GetEnvironmentVariables()

Origem:
Environment.Variables.Windows.cs
Origem:
Environment.Variables.Windows.cs
Origem:
Environment.Variables.Windows.cs

Recupera todos os nomes de variáveis de ambiente e seus valores do processo atual.

C#
public static System.Collections.IDictionary GetEnvironmentVariables ();

Retornos

Um dicionário que contém todos os nomes de variáveis de ambiente e seus valores. Caso contrário, um dicionário vazio se nenhuma variável de ambiente for encontrada.

Exceções

O chamador não tem a permissão necessária para executar essa operação.

O buffer está sem memória.

Exemplos

O exemplo a seguir demonstra o GetEnvironmentVariables método.

C#
// Sample for the Environment.GetEnvironmentVariables method
using System;
using System.Collections;

class Sample
{
    public static void Main()
    {
       Console.WriteLine();
       Console.WriteLine("GetEnvironmentVariables: ");
       foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
           Console.WriteLine("  {0} = {1}", de.Key, de.Value);
    }
}
// Output from the example is not shown, since it is:
//    Lengthy.
//    Specific to the machine on which the example is run.
//    May reveal information that should remain secure.

Comentários

Os nomes e valores das variáveis de ambiente são armazenados como pares chave-valor no retornado IDictionary.

Em sistemas Windows

Em sistemas Windows, o GetEnvironmentVariables método retorna as seguintes variáveis de ambiente:

  • Todas as variáveis de ambiente por computador definidas no momento em que o processo é criado, juntamente com seus valores.
  • Todas as variáveis de ambiente por usuário definidas no momento em que o processo é criado, juntamente com seus valores.
  • Todas as variáveis herdadas do processo pai do qual o aplicativo .NET foi iniciado ou adicionado ao bloco de processo enquanto o processo está em execução. As variáveis de ambiente são adicionadas enquanto o processo está em execução chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um target valor de EnvironmentVariableTarget.Process.

Em sistemas semelhantes ao Unix

Em sistemas semelhantes ao Unix, o GetEnvironmentVariables método recupera o nome e o valor de todas as variáveis de ambiente herdadas do processo pai que iniciou o dotnet processo ou que são definidas dentro do escopo do dotnet próprio processo. Depois que o dotnet processo terminar, essas últimas variáveis de ambiente deixarão de existir.

O .NET em execução em sistemas semelhantes ao Unix não dá suporte a variáveis de ambiente por computador ou por usuário.

Observação

Em sistemas semelhantes ao Unix, as modificações de ambiente em processo feitas por bibliotecas nativas não são vistas por chamadores gerenciados.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetEnvironmentVariables(EnvironmentVariableTarget)

Origem:
Environment.cs
Origem:
Environment.cs
Origem:
Environment.cs

Recupera todos os nomes de variáveis de ambiente e seus valores do processo atual ou de uma chave do Registro do sistema operacional Windows para o usuário atual ou o computador local.

C#
public static System.Collections.IDictionary GetEnvironmentVariables (EnvironmentVariableTarget target);

Parâmetros

target
EnvironmentVariableTarget

Um dos valores de EnvironmentVariableTarget. Há suporte apenas Process para .NET em execução em sistemas semelhantes ao Unix.

Retornos

Um dicionário que contém todos os nomes de variáveis de ambiente e seus valores da fonte especificada pelo parâmetro target. Caso contrário, um dicionário vazio se nenhuma variável de ambiente for encontrada.

Exceções

O chamador não tem a permissão necessária para executar essa operação para o valor especificado de target.

target contém um valor inválido.

Exemplos

O exemplo a seguir cria variáveis de ambiente para os EnvironmentVariableTarget.Processdestinos , EnvironmentVariableTarget.Usere Machine , verifica se o registro do sistema operacional contém as variáveis de ambiente do usuário e do computador e exclui as variáveis de ambiente. Como o .NET em sistemas semelhantes ao Unix não dá suporte a variáveis de ambiente por usuário e por computador, somente SetEnvironmentVariable(String, String) e SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor de EnvironmentVariableTarget.Process armazenar com êxito uma variável de ambiente para o bloco de ambiente de processo.

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

Comentários

Os nomes e valores das variáveis de ambiente são armazenados como pares chave/valor no objeto retornado IDictionary .

Em sistemas Windows

Em sistemas Windows, o target parâmetro especifica se a origem é o processo atual, a chave do Registro para o usuário atual ou a chave do Registro para o computador local.

Em sistemas semelhantes ao Unix

Em sistemas semelhantes ao Unix, há suporte apenas para um target valor de EnvironmentVariableTarget.Process . As variáveis de ambiente por processo são herdadas do processo pai (normalmente o shell) usado para iniciar o dotnet processo ou são definidas dentro do escopo do dotnet próprio processo. Depois que o processo dotnet termina, essas últimas variáveis de ambiente deixam de existir.

Não há suporte para variáveis de ambiente por computador e por usuário. Um target valor de EnvironmentVariableTarget.Machine ou EnvironmentVariableTarget.User retorna uma matriz vazia.

Observação

Em sistemas semelhantes ao Unix, as modificações de ambiente em processo feitas por bibliotecas nativas não são vistas por chamadores gerenciados.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1