Environment.GetEnvironmentVariables Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wszystkie nazwy zmiennych środowiskowych i ich wartości.
Przeciążenia
GetEnvironmentVariables() |
Pobiera wszystkie nazwy zmiennych środowiskowych i ich wartości z bieżącego procesu. |
GetEnvironmentVariables(EnvironmentVariableTarget) |
Pobiera wszystkie nazwy zmiennych środowiskowych i ich wartości z bieżącego procesu lub z klucza rejestru systemu operacyjnego Windows dla bieżącego użytkownika lub komputera lokalnego. |
GetEnvironmentVariables()
Pobiera wszystkie nazwy zmiennych środowiskowych i ich wartości z bieżącego procesu.
public:
static System::Collections::IDictionary ^ GetEnvironmentVariables();
public static System.Collections.IDictionary GetEnvironmentVariables ();
static member GetEnvironmentVariables : unit -> System.Collections.IDictionary
Public Shared Function GetEnvironmentVariables () As IDictionary
Zwraca
Słownik zawierający wszystkie nazwy zmiennych środowiskowych i ich wartości; w przeciwnym razie pusty słownik, jeśli nie znaleziono żadnych zmiennych środowiskowych.
Wyjątki
Obiekt wywołujący nie ma wymaganych uprawnień do wykonania tej operacji.
Bufor jest poza pamięcią.
Przykłady
W poniższym przykładzie pokazano metodę GetEnvironmentVariables .
using namespace System;
using namespace System::Collections;
int main()
{
Console::WriteLine( "GetEnvironmentVariables: " );
for each (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.
// 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.
// Sample for the Environment.GetEnvironmentVariables method
open System
open System.Collections
printfn "\nGetEnvironmentVariables: "
for de in Environment.GetEnvironmentVariables() do
let de = de :?> DictionaryEntry
printfn $" {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.
' Sample for the Environment.GetEnvironmentVariables method
Imports System.Collections
Class Sample
Public Shared Sub Main()
Console.WriteLine("GetEnvironmentVariables: ")
For Each de As DictionaryEntry In Environment.GetEnvironmentVariables()
Console.WriteLine(" {0} = {1}", de.Key, de.Value)
Next
End Sub
End Class
' 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.
Uwagi
Nazwy i wartości zmiennych środowiskowych są przechowywane jako pary klucz-wartość w zwracanym IDictionaryobiekcie .
W systemach Windows
W systemach GetEnvironmentVariables
Windows metoda zwraca następujące zmienne środowiskowe:
- Wszystkie zmienne środowiskowe na maszynę zdefiniowane w momencie tworzenia procesu wraz z ich wartościami.
- Wszystkie zmienne środowiskowe dla użytkownika zdefiniowane w momencie tworzenia procesu wraz z ich wartościami.
- Wszystkie zmienne dziedziczone z procesu nadrzędnego, z którego aplikacja .NET została uruchomiona lub dodana do bloku procesu podczas uruchamiania procesu. Zmienne środowiskowe są dodawane podczas uruchamiania procesu przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody z wartością
target
EnvironmentVariableTarget.Process.
W systemach podobnych do systemu Unix
W systemach przypominających system GetEnvironmentVariables
Unix metoda pobiera nazwę i wartość wszystkich zmiennych środowiskowych dziedziczonych z procesu nadrzędnego, który uruchomił dotnet
proces lub które są zdefiniowane w zakresie dotnet
samego procesu. Po zakończeniu dotnet
procesu te ostatnie zmienne środowiskowe przestaną istnieć.
Platforma .NET działająca w systemach podobnych do systemu Unix nie obsługuje zmiennych środowiskowych dla poszczególnych maszyn ani dla użytkownika.
Uwaga
W systemach podobnych do systemu Unix modyfikacje środowiska przetwarzania wprowadzone przez biblioteki natywne nie są widoczne przez zarządzane osoby wywołujące.
Zobacz też
Dotyczy
GetEnvironmentVariables(EnvironmentVariableTarget)
- Źródło:
- Environment.cs
- Źródło:
- Environment.cs
- Źródło:
- Environment.cs
Pobiera wszystkie nazwy zmiennych środowiskowych i ich wartości z bieżącego procesu lub z klucza rejestru systemu operacyjnego Windows dla bieżącego użytkownika lub komputera lokalnego.
public:
static System::Collections::IDictionary ^ GetEnvironmentVariables(EnvironmentVariableTarget target);
public static System.Collections.IDictionary GetEnvironmentVariables (EnvironmentVariableTarget target);
static member GetEnvironmentVariables : EnvironmentVariableTarget -> System.Collections.IDictionary
Public Shared Function GetEnvironmentVariables (target As EnvironmentVariableTarget) As IDictionary
Parametry
- target
- EnvironmentVariableTarget
Jedna z EnvironmentVariableTarget wartości. Obsługiwane jest tylko Process na platformie .NET działającej w systemach przypominających system Unix.
Zwraca
Słownik zawierający wszystkie nazwy zmiennych środowiskowych i ich wartości ze źródła określonego target
przez parametr ; w przeciwnym razie pusty słownik, jeśli nie znaleziono zmiennych środowiskowych.
Wyjątki
Obiekt wywołujący nie ma wymaganych uprawnień do wykonania tej operacji dla określonej wartości .target
target
zawiera niedozwoloną wartość.
Przykłady
Poniższy przykład tworzy zmienne środowiskowe dla EnvironmentVariableTarget.Processobiektów docelowych , EnvironmentVariableTarget.Useri Machine sprawdza, czy rejestr systemu operacyjnego zawiera zmienne środowiskowe użytkownika i komputera, a następnie usuwa zmienne środowiskowe. Ponieważ platforma .NET w systemach przypominających system Unix nie obsługuje zmiennych środowiskowych dla poszczególnych użytkowników i maszyn, tylko SetEnvironmentVariable(String, String) z SetEnvironmentVariable(String, String, EnvironmentVariableTarget) wartością pomyślnego EnvironmentVariableTarget.Process przechowywania zmiennej środowiskowej do bloku środowiska przetwarzania.
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...
module Sample
open System
// Environment variable names for default, process, user, and machine targets.
let rec defaultEnvVar = nameof defaultEnvVar
let rec processEnvVar = nameof processEnvVar
let rec userEnvVar = nameof userEnvVar
let rec machineEnvVar = nameof machineEnvVar
let rec dft = nameof dft
let rec proc = nameof proc
let rec user = nameof user
let rec machine = nameof machine
// Set the environment variable for each target.
printfn "Setting environment variables for each target...\n"
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft)
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, proc, EnvironmentVariableTarget.Process)
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, user, EnvironmentVariableTarget.User)
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine, EnvironmentVariableTarget.Machine)
// Define a list of environment variables.
let envVars = [ defaultEnvVar; processEnvVar; userEnvVar; machineEnvVar ]
// Try to get the environment variables from each target.
// The default (no specified target).
printfn "Retrieving environment variables from the default target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable envVar with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The process block.
printfn "\nRetrieving environment variables from the Process target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The user block.
printfn "\nRetrieving environment variables from the User target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The machine block.
printfn "\nRetrieving environment variables from the Machine target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// Delete the environment variable for each target.
printfn "\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...
Uwagi
Nazwy i wartości zmiennych środowiskowych są przechowywane jako pary klucz/wartość w zwracanym IDictionary obiekcie.
W systemach Windows
W systemach Windows parametr określa, target
czy źródłem jest bieżący proces, klucz rejestru dla bieżącego użytkownika, czy klucz rejestru dla komputera lokalnego.
W systemach podobnych do systemu Unix
W systemach przypominających system Unix obsługiwana target
jest tylko wartość EnvironmentVariableTarget.Process . Zmienne środowiskowe dla procesu są dziedziczone z procesu nadrzędnego (zazwyczaj powłoki) używane do uruchamiania dotnet
procesu lub są definiowane w zakresie dotnet
samego procesu. Po zakończeniu procesu dotnet te ostatnie zmienne środowiskowe przestaną istnieć.
Zmienne środowiskowe na maszynę i użytkownika nie są obsługiwane. Wartość target
lub EnvironmentVariableTarget.MachineEnvironmentVariableTarget.User zwraca pustą tablicę.
Uwaga
W systemach podobnych do systemu Unix modyfikacje środowiska przetwarzania wprowadzone przez biblioteki natywne nie są widoczne przez zarządzane osoby wywołujące.