Leggere in inglese

Condividi tramite


Environment.GetEnvironmentVariables Metodo

Definizione

Recupera tutti i nomi delle variabili di ambiente e i rispettivi valori.

Overload

GetEnvironmentVariables()

Recupera tutti i nomi delle variabili di ambiente e i rispettivi valori dal processo corrente.

GetEnvironmentVariables(EnvironmentVariableTarget)

Recupera tutti i nomi delle variabili di ambiente e i rispettivi valori dal processo corrente o dalla chiave del Registro del sistema operativo Windows per l'utente corrente o per il computer locale.

GetEnvironmentVariables()

Origine:
Environment.Variables.Windows.cs
Origine:
Environment.Variables.Windows.cs
Origine:
Environment.Variables.Windows.cs

Recupera tutti i nomi delle variabili di ambiente e i rispettivi valori dal processo corrente.

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

Restituisce

Dizionario contenente tutti i nomi delle variabili di ambiente e i rispettivi valori, se presenti; in caso contrario, se non viene trovata alcuna variabile di ambiente, verrà restituito un dizionario vuoto.

Eccezioni

Il chiamante non ha l'autorizzazione richiesta per eseguire questa operazione.

La memoria del buffer è insufficiente.

Esempio

Nell'esempio seguente viene illustrato il GetEnvironmentVariables metodo.

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.

Commenti

I nomi e i valori per le variabili di ambiente vengono archiviati come coppie chiave-valore nell'oggetto restituito IDictionary.

Nei sistemi Windows

Nei sistemi Windows il GetEnvironmentVariables metodo restituisce le variabili di ambiente seguenti:

Nei sistemi unix

Nei sistemi Unix, il GetEnvironmentVariables metodo recupera il nome e il valore di tutte le variabili di ambiente ereditate dal processo padre che ha avviato il dotnet processo o che vengono definiti nell'ambito del dotnet processo stesso. Al termine del dotnet processo, queste ultime variabili di ambiente non possono esistere.

.NET in esecuzione nei sistemi unix non supporta variabili di ambiente per computer o per utente.

Nota

Nei sistemi Unix, le modifiche dell'ambiente in-process apportate dalle librerie native non vengono visualizzate dai chiamanti gestiti.

Vedi anche

Si applica a

.NET 10 e altre versioni
Prodotto Versioni
.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, 10
.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)

Origine:
Environment.cs
Origine:
Environment.cs
Origine:
Environment.cs

Recupera tutti i nomi delle variabili di ambiente e i rispettivi valori dal processo corrente o dalla chiave del Registro del sistema operativo Windows per l'utente corrente o per il computer locale.

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

Parametri

target
EnvironmentVariableTarget

Uno dei valori di EnvironmentVariableTarget. È supportato solo Process in .NET in esecuzione nei sistemi unix.

Restituisce

Dizionario contenente tutti i nomi delle variabili di ambiente e i rispettivi valori ricavati dall'origine specificata dal parametro target, se presenti; in caso contrario, se non viene trovata alcuna variabile di ambiente, verrà restituito un dizionario vuoto.

Eccezioni

Il chiamante non ha l'autorizzazione richiesta per eseguire questa operazione per il valore specificato di target.

target contiene un valore non valido.

Esempio

Nell'esempio seguente vengono create variabili di ambiente per le EnvironmentVariableTarget.Processdestinazioni , EnvironmentVariableTarget.Usere Machine verifica se il Registro di sistema operativo contiene le variabili di ambiente utente e computer, quindi elimina le variabili di ambiente. Poiché i sistemi .NET in unix non supportano variabili di ambiente per utente e per computer, solo SetEnvironmentVariable(String, String) e SetEnvironmentVariable(String, String, EnvironmentVariableTarget) con un valore di archiviare correttamente una variabile di EnvironmentVariableTarget.Process ambiente al blocco di ambiente di 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...

Commenti

I nomi e i valori delle variabili di ambiente vengono archiviati come coppie chiave/valore nell'oggetto restituito IDictionary .

Nei sistemi Windows

Nei sistemi Windows il target parametro specifica se l'origine è il processo corrente, la chiave del Registro di sistema per l'utente corrente o la chiave del Registro di sistema per il computer locale.

Nei sistemi unix

Nei sistemi unix-like è supportato solo un target valore di EnvironmentVariableTarget.Process . Le variabili di ambiente per processo vengono ereditate dal processo padre (in genere la shell) usata per avviare il dotnet processo o sono definite nell'ambito del dotnet processo stesso. Al termine del processo dotnet, queste ultime variabili di ambiente non esistono.

Le variabili di ambiente per computer e per utente non sono supportate. Valore target di EnvironmentVariableTarget.Machine o EnvironmentVariableTarget.User restituisce una matrice vuota.

Nota

Nei sistemi Unix, le modifiche dell'ambiente in-process apportate dalle librerie native non vengono visualizzate dai chiamanti gestiti.

Vedi anche

Si applica a

.NET 10 e altre versioni
Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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