Environment.SetEnvironmentVariable Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt, ändert oder löscht eine Umgebungsvariable.
Überlädt
SetEnvironmentVariable(String, String) |
Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess gespeichert ist. |
SetEnvironmentVariable(String, String, EnvironmentVariableTarget) |
Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess oder im Windows-Betriebssystemregistrierungsschlüssel für den aktuellen Benutzer oder lokalen Computer reserviert ist. |
SetEnvironmentVariable(String, String)
- Quelle:
- Environment.cs
- Quelle:
- Environment.cs
- Quelle:
- Environment.cs
Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess gespeichert ist.
public:
static void SetEnvironmentVariable(System::String ^ variable, System::String ^ value);
public static void SetEnvironmentVariable (string variable, string value);
public static void SetEnvironmentVariable (string variable, string? value);
static member SetEnvironmentVariable : string * string -> unit
Public Shared Sub SetEnvironmentVariable (variable As String, value As String)
Parameter
- variable
- String
Der Name einer Umgebungsvariable.
- value
- String
Ein Wert, der variable
zugewiesen werden soll.
Ausnahmen
variable
ist null
.
variable
enthält eine leere Zeichenfolge, ein erstes hexadezimales Nullzeichen (0x00) oder ein Gleichheitszeichen ("=").
-oder-
Die Länge von variable
oder value
ist größer oder gleich 32.767 Zeichen.
-oder-
Während der Ausführung dieses Vorgangs ist ein Fehler aufgetreten.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung zum Ausführen dieses Vorgangs.
Beispiele
Im folgenden Beispiel wird versucht, den Wert einer Umgebungsvariable namens Test1
aus dem Prozessumgebungsblock abzurufen. Wenn die Variable nicht vorhanden ist, erstellt das Beispiel die Variable und ruft den Wert ab. Im Beispiel wird der Wert der Variablen angezeigt. Für .NET-Implementierungen, die auf Windows-Systemen ausgeführt werden, ruft sie auch die GetEnvironmentVariables(EnvironmentVariableTarget)-Methode mit jedem Element der EnvironmentVariableTarget-Aufzählung auf, um festzulegen, dass die Variable nur aus dem aktuellen Prozessumgebungsblock abgerufen werden kann. (.NET-Implementierungen auf Unix-ähnlichen Systemen unterstützen nur Variablen im Prozessumgebungsblock.) Wenn das Beispiel die Variable erstellt hat, wird sie gelöscht.
using System;
public class Example
{
public static void Main()
{
string value;
bool toDelete = false;
// Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1");
// If necessary, create it.
if (value == null)
{
Environment.SetEnvironmentVariable("Test1", "Value1");
toDelete = true;
// Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1");
}
// Display the value.
Console.WriteLine($"Test1: {value}\n");
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
Console.WriteLine("Attempting to retrieve Test1 from:");
foreach (EnvironmentVariableTarget enumValue in
Enum.GetValues(typeof(EnvironmentVariableTarget))) {
value = Environment.GetEnvironmentVariable("Test1", enumValue);
Console.WriteLine($" {enumValue}: {(value != null ? "found" : "not found")}");
}
Console.WriteLine();
}
// If we've created it, now delete it.
if (toDelete) {
Environment.SetEnvironmentVariable("Test1", null);
// Confirm the deletion.
if (Environment.GetEnvironmentVariable("Test1") == null)
Console.WriteLine("Test1 has been deleted.");
}
}
}
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
module Example
open System
let mutable toDelete = false
// Check whether the environment variable exists.
let value =
let v = Environment.GetEnvironmentVariable "Test1"
// If necessary, create it.
if isNull v then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete <- true
Environment.GetEnvironmentVariable "Test1"
else
v
// Display the value.
printfn $"Test1: {value}\n"
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if Environment.OSVersion.Platform = PlatformID.Win32NT then
printfn "Attempting to retrieve Test1 from:"
for enumValue in Enum.GetValues typeof<EnvironmentVariableTarget> do
let value = Environment.GetEnvironmentVariable("Test1", enumValue :?> EnvironmentVariableTarget)
printfn $""" {enumValue}: {if value <> null then "found" else "not found"}"""
printfn ""
// If we've created it, now delete it.
if toDelete then
Environment.SetEnvironmentVariable("Test1", null)
// Confirm the deletion.
if Environment.GetEnvironmentVariable "Test1" |> isNull then
printfn "Test1 has been deleted."
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
Module Example
Public Sub Main()
Dim value As String
Dim toDelete As Boolean = False
' Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1")
' If necessary, create it.
If value Is Nothing Then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete = True
' Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1")
End If
' Display the value.
Console.WriteLine($"Test1: {value}")
Console.WriteLine()
' Confirm that the value can only be retrieved from the process
' environment block if running on a Windows system.
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Console.WriteLine("Attempting to retrieve Test1 from:")
For Each enumValue As EnvironmentVariableTarget In
[Enum].GetValues(GetType(EnvironmentVariableTarget))
value = Environment.GetEnvironmentVariable("Test1", enumValue)
Console.WriteLine($" {enumValue}: {If(value IsNot Nothing, "found", "not found")}")
Next
Console.WriteLine()
End If
' If we've created it, now delete it.
If toDelete Then
Environment.SetEnvironmentVariable("Test1", Nothing)
' Confirm the deletion.
If Environment.GetEnvironmentVariable("Test1") = Nothing Then
Console.WriteLine("Test1 has been deleted.")
End If
End If
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Test1: Value1
'
' Attempting to retrieve Test1 from:
' Process: found
' User: not found
' Machine: not found
'
' Test1 has been deleted.
'
' The example displays the following output if run on a Unix-based system:
' Test1: Value1
'
' Test1 has been deleted.
Hinweise
Das Aufrufen dieser Methode entspricht dem Aufrufen der SetEnvironmentVariable(String, String, EnvironmentVariableTarget)-Überladung mit dem Wert EnvironmentVariableTarget.Process für das argument target
.
Auf Unix-ähnlichen Systemen haben Aufrufe der SetEnvironmentVariable(String, String) Methode keine Auswirkungen auf systemeigene Bibliotheken, die geladen werden oder geladen werden. (In-Process-Umgebungsänderungen, die von systemeigenen Bibliotheken vorgenommen werden, werden von verwalteten Aufrufern nicht angezeigt.)
Wenn das argument value
nicht null
ist und die durch den parameter variable
benannte Umgebungsvariable nicht vorhanden ist, wird die Umgebungsvariable erstellt und dem Inhalt von value
zugewiesen. Falls vorhanden, wird der Wert geändert. Da die Umgebungsvariable nur im Umgebungsblock des aktuellen Prozesses definiert ist, wird sie nach Beendigung des Prozesses nicht beibehalten.
Wenn variable
ein nicht anfängliches hexadezimales Nullzeichen enthält, werden die Zeichen vor dem Nullzeichen als Der Name der Umgebungsvariablen betrachtet, und alle nachfolgenden Zeichen werden ignoriert.
Wenn value
ein nicht anfängliches hexadezimales Nullzeichen enthält, werden die Zeichen vor dem Nullzeichen der Umgebungsvariable zugewiesen, und alle nachfolgenden Zeichen werden ignoriert.
Wenn value
in Versionen vor .NET 9 null
oder leer ist und die durch variable
benannte Umgebungsvariable vorhanden ist, wird die Umgebungsvariable gelöscht. Wenn variable
nicht vorhanden ist, tritt kein Fehler auf, obwohl der Vorgang nicht ausgeführt werden kann.
value
gilt unter den folgenden Bedingungen als leer:
- Es ist String.Empty.
- Sie besteht aus einem einzelnen Zeichen, dessen Wert U+0000 ist.
Weitere Informationen
Gilt für:
SetEnvironmentVariable(String, String, EnvironmentVariableTarget)
- Quelle:
- Environment.cs
- Quelle:
- Environment.cs
- Quelle:
- Environment.cs
Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess oder im Windows-Betriebssystemregistrierungsschlüssel für den aktuellen Benutzer oder lokalen Computer reserviert ist.
public:
static void SetEnvironmentVariable(System::String ^ variable, System::String ^ value, EnvironmentVariableTarget target);
public static void SetEnvironmentVariable (string variable, string? value, EnvironmentVariableTarget target);
public static void SetEnvironmentVariable (string variable, string value, EnvironmentVariableTarget target);
static member SetEnvironmentVariable : string * string * EnvironmentVariableTarget -> unit
Public Shared Sub SetEnvironmentVariable (variable As String, value As String, target As EnvironmentVariableTarget)
Parameter
- variable
- String
Der Name einer Umgebungsvariable.
- value
- String
Ein Wert, der variable
zugewiesen werden soll.
- target
- EnvironmentVariableTarget
Einer der Enumerationswerte, die den Speicherort der Umgebungsvariablen angibt.
Ausnahmen
variable
ist null
.
variable
enthält eine leere Zeichenfolge, ein erstes hexadezimales Nullzeichen (0x00) oder ein Gleichheitszeichen ("=").
-oder-
Die Länge von variable
ist größer oder gleich 32.767 Zeichen.
-oder-
target
ist kein Mitglied der EnvironmentVariableTarget-Aufzählung.
-oder-
target
ist Machine oder User, und die Länge der variable
ist größer oder gleich 255.
-oder-
target
ist Process und die Länge der value
größer oder gleich 32.767 Zeichen ist.
-oder-
Während der Ausführung dieses Vorgangs ist ein Fehler aufgetreten.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung zum Ausführen dieses Vorgangs.
Beispiele
Im folgenden Beispiel werden Umgebungsvariablen für die EnvironmentVariableTarget.Process, EnvironmentVariableTarget.Userund Machine Ziele erstellt, überprüft, ob die Betriebssystemregistrierung die Benutzer- und Computerumgebungsvariablen enthält, und löscht dann die Umgebungsvariablen. Da .NET auf Unix-ähnlichen Systemen benutzer- und computerspezifische Umgebungsvariablen nicht unterstützt, werden nur SetEnvironmentVariable(String, String) und SetEnvironmentVariable(String, String, EnvironmentVariableTarget) mit dem Wert EnvironmentVariableTarget.Process eine Umgebungsvariable erfolgreich im Prozessumgebungsblock speichern.
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...
Hinweise
Mit der SetEnvironmentVariable(String, String, EnvironmentVariableTarget)-Methode können Sie eine Umgebungsvariable definieren, die für den aktuellen Prozess (der Process Wert) verfügbar ist. Umgebungsvariablen, die für den aktuellen Prozessumgebungsblock eindeutig sind, bleiben nur bis zum Ende des Prozesses erhalten.
Darüber hinaus können Sie auf Windows-Systemen nur mit der SetEnvironmentVariable(String, String, EnvironmentVariableTarget)-Methode eine Umgebungsvariable definieren, die für alle Prozesse verfügbar ist, die auf einem Computer (dem EnvironmentVariableTarget.Machine Wert) und für alle Prozesse verfügbar sind, die von einem Benutzer (dem EnvironmentVariableTarget.User Wert) ausgeführt werden. Computer- und Benutzerumgebungsvariablen werden in den Umgebungsblock des aktuellen Prozesses kopiert.
Auf Unix-ähnlichen Systemen werden Aufrufe der SetEnvironmentVariable(String, String, EnvironmentVariableTarget) Methode mit dem Wert EnvironmentVariableTarget.Machine oder EnvironmentVariableTarget.User ignoriert.
Auf Unix-ähnlichen Systemen haben Aufrufe der SetEnvironmentVariable(String, String, EnvironmentVariableTarget)-Methode mit einem Wert von EnvironmentVariableTarget.Process keine Auswirkungen auf systemeigene Bibliotheken, die geladen sind oder geladen werden. (In-Process-Umgebungsänderungen, die von systemeigenen Bibliotheken vorgenommen werden, werden von verwalteten Aufrufern nicht angezeigt.)
Wenn das argument value
nicht null
ist und die durch das Argument variable
benannte Umgebungsvariable nicht vorhanden ist, wird die Umgebungsvariable erstellt und dem Inhalt value
zugewiesen. Falls vorhanden, wird der Wert geändert.
Wenn variable
ein nicht anfängliches hexadezimales Nullzeichen enthält, werden die Zeichen vor dem Nullzeichen als Der Name der Umgebungsvariablen betrachtet, und alle nachfolgenden Zeichen werden ignoriert.
Wenn value
ein nicht anfängliches hexadezimales Nullzeichen enthält, werden die Zeichen vor dem Nullzeichen der Umgebungsvariable zugewiesen, und alle nachfolgenden Zeichen werden ignoriert.
Wenn value
in Versionen vor .NET 9 null
oder leer ist und die durch variable
benannte Umgebungsvariable vorhanden ist, wird die Umgebungsvariable gelöscht.
value
gilt unter den folgenden Bedingungen als leer:
- Es ist String.Empty.
- Sie besteht aus einem einzelnen Zeichen, dessen Wert U+0000 ist.
Wenn variable
nicht vorhanden ist, tritt kein Fehler auf, obwohl der Vorgang nicht ausgeführt werden kann. Achten Sie darauf, wenn target
Machineist, da Sie versehentlich eine Umgebungsvariable löschen können, die sich auf den gesamten lokalen Computer auswirkt, nicht nur auf den aktuellen Prozess oder den aktuellen Benutzer.
EnvironmentVariableTarget.Machine und EnvironmentVariableTarget.User auf Windows-Systemen
Wenn target
EnvironmentVariableTarget.Userist, wird die Umgebungsvariable im HKEY_CURRENT_USER\Environment Schlüssel der Registrierung des lokalen Computers gespeichert. Sie wird auch in Instanzen des Datei-Explorers kopiert, die als aktueller Benutzer ausgeführt werden. Die Umgebungsvariable wird dann von allen neuen Prozessen geerbt, die der Benutzer im Datei-Explorer startet.
Wenn target
EnvironmentVariableTarget.Machineist, wird die Umgebungsvariable im HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment Schlüssel der Registrierung des lokalen Computers gespeichert. Sie wird auch in alle Instanzen des Datei-Explorers kopiert. Die Umgebungsvariable wird dann von allen neuen Prozessen geerbt, die vom Datei-Explorer gestartet werden.
Wenn target
User oder Machineist, werden andere Anwendungen von einer Windows WM_SETTINGCHANGE
-Nachricht über den festgelegten Vorgang benachrichtigt.
Wenn target
EnvironmentVariableTarget.User oder EnvironmentVariableTarget.Machineist, empfehlen wir, dass die Länge von value
weniger als 2048 Zeichen beträgt.
Weitere Informationen
- GetEnvironmentVariable(String, EnvironmentVariableTarget)
- GetEnvironmentVariables(EnvironmentVariableTarget)
- EnvironmentVariableTarget