Environment.GetEnvironmentVariables Metoda

Definice

Načte všechny názvy proměnných prostředí a jejich hodnoty.

Přetížení

GetEnvironmentVariables()

Načte všechny názvy proměnných prostředí a jejich hodnoty z aktuálního procesu.

GetEnvironmentVariables(EnvironmentVariableTarget)

Načte všechny názvy proměnných prostředí a jejich hodnoty z aktuálního procesu nebo z klíče registru operačního systému Windows pro aktuálního uživatele nebo místní počítač.

GetEnvironmentVariables()

Zdroj:
Environment.Variables.Windows.cs
Zdroj:
Environment.Variables.Windows.cs
Zdroj:
Environment.Variables.Windows.cs

Načte všechny názvy proměnných prostředí a jejich hodnoty z aktuálního procesu.

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

Návraty

Slovník, který obsahuje všechny názvy proměnných prostředí a jejich hodnoty; v opačném případě prázdný slovník, pokud nejsou nalezeny žádné proměnné prostředí.

Výjimky

Volající nemá požadované oprávnění k provedení této operace.

Vyrovnávací paměť nemá dostatek paměti.

Příklady

Následující příklad ukazuje metodu GetEnvironmentVariables .

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.

Poznámky

Názvy a hodnoty proměnných prostředí jsou uloženy jako páry klíč-hodnota ve vráceném IDictionaryobjektu .

V systémech Windows

V systémech GetEnvironmentVariables Windows vrátí metoda následující proměnné prostředí:

V unixových systémech

V unixových systémech metoda načte název a hodnotu všech proměnných prostředí, GetEnvironmentVariables které jsou zděděny z nadřazeného procesu, který proces spustil dotnet , nebo které jsou definovány v rámci samotného dotnet procesu. dotnet Po dokončení procesu tyto proměnné prostředí přestanou existovat.

Rozhraní .NET spuštěné v systémech unixových systémů nepodporuje proměnné prostředí pro jednotlivé počítače ani uživatele.

Poznámka

V systémech unixových systémů nejsou spravované volající vidět úpravy prostředí v procesu provedené nativními knihovnami.

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
Environment.cs
Zdroj:
Environment.cs
Zdroj:
Environment.cs

Načte všechny názvy proměnných prostředí a jejich hodnoty z aktuálního procesu nebo z klíče registru operačního systému Windows pro aktuálního uživatele nebo místní počítač.

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

Parametry

target
EnvironmentVariableTarget

Jedna z EnvironmentVariableTarget hodnot. Podporuje se pouze Process v .NET běžících v systémech unixových.

Návraty

Slovník, který obsahuje všechny názvy proměnných prostředí a jejich hodnoty ze zdroje určeného target parametrem; v opačném případě se zobrazí prázdný slovník, pokud nejsou nalezeny žádné proměnné prostředí.

Výjimky

Volající nemá požadovaná oprávnění k provedení této operace pro zadanou hodnotu .target

target obsahuje neplatnou hodnotu.

Příklady

Následující příklad vytvoří proměnné prostředí pro EnvironmentVariableTarget.Processcíle , EnvironmentVariableTarget.Usera Machine , zkontroluje, jestli registr operačního systému obsahuje proměnné prostředí uživatele a počítače, a pak odstraní proměnné prostředí. Vzhledem k tomu, že .NET v unixových systémech nepodporuje proměnné prostředí pro uživatele a počítače, pouze SetEnvironmentVariable(String, String) a SetEnvironmentVariable(String, String, EnvironmentVariableTarget) s hodnotou EnvironmentVariableTarget.Process úspěšně uložit proměnnou prostředí do bloku prostředí procesu.

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

Poznámky

Názvy a hodnoty proměnných prostředí jsou uloženy jako páry klíč/hodnota ve vráceném IDictionary objektu.

V systémech Windows

V systémech Windows parametr určuje, target jestli je zdrojem aktuální proces, klíč registru pro aktuálního uživatele nebo klíč registru pro místní počítač.

V unixových systémech

V unixových systémech se podporuje pouze target hodnota .EnvironmentVariableTarget.Process Proměnné prostředí pro jednotlivé procesy se dědí z nadřazeného procesu (obvykle prostředí) použitého ke spuštění dotnet procesu nebo jsou definovány v rámci samotného dotnet procesu. Jakmile proces dotnet skončí, tyto proměnné prostředí přestanou existovat.

Proměnné prostředí pro jednotlivé počítače a uživatele se nepodporují. Hodnota targetEnvironmentVariableTarget.Machine nebo EnvironmentVariableTarget.User vrátí prázdné pole.

Poznámka

V systémech unixových systémů nejsou spravované volající vidět úpravy prostředí v procesu provedené nativními knihovnami.

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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