Environment.SetEnvironmentVariable Environment.SetEnvironmentVariable Environment.SetEnvironmentVariable Environment.SetEnvironmentVariable Method

Definition

Erstellt, ändert oder löscht eine Umgebungsvariable.Creates, modifies, or deletes an environment variable.

Überlädt

SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String)

Erstellt, ändert oder löscht eine im aktuellen Prozess gespeicherte Umgebungsvariable.Creates, modifies, or deletes an environment variable stored in the current process.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess oder im Registrierungsschlüssel des für den aktuellen Benutzer oder den lokalen Computer reservierten Windows-Betriebssystems gespeichert ist.Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine.

SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String) SetEnvironmentVariable(String, String)

Erstellt, ändert oder löscht eine im aktuellen Prozess gespeicherte Umgebungsvariable.Creates, modifies, or deletes an environment variable stored in the current process.

public:
 static void SetEnvironmentVariable(System::String ^ variable, System::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 String String String

Der Name einer Umgebungsvariablen.The name of an environment variable.

value
String String String String

Ein Wert, der variable zugewiesen werden soll.A value to assign to variable.

Ausnahmen

variable enthält eine leere Zeichenfolge („“), ein anfängliches Hexadezimalzeichen 0 (0x00) oder ein Gleichheitszeichen ("=").variable contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("=").

- oder --or- Die Länge von variable oder value ist größer gleich 32.767 Zeichen.The length of variable or value is greater than or equal to 32,767 characters.

- oder --or- Während der Ausführung dieses Vorgangs ist ein Fehler aufgetreten.An error occurred during the execution of this operation.

Der Aufrufer hat nicht die erforderliche Berechtigung zum Ausführen dieses Vorgangs.The caller does not have the required permission to perform this operation.

Beispiele

Im folgenden Beispiel wird versucht, den Wert einer Umgebungsvariablen mit dem Namen des abzurufenden Test1 in dem Umgebungsblock Prozess.The following example attempts to retrieve the value of an environment variable named Test1 from the process environment block. Wenn die Variable nicht vorhanden ist, wird im Beispiel wird die Variable erstellt, und ruft den Wert ab.If the variable doesn't exist, the example creates the variable and retrieves its value. Das Beispiel zeigt den Wert der Variablen.The example displays the value of the variable. Für .NET-Implementierungen, die auf Windows-Systemen ausgeführt werden, ruft er auch die GetEnvironmentVariables(EnvironmentVariableTarget) -Methode mit dem jedes Element der EnvironmentVariableTarget Enumeration, die überprüft wird, ob die Variable nur aus der aktuellen Umgebung prozessblock abgerufen werden kann.For .NET implementations running on Windows systems, it also calls the GetEnvironmentVariables(EnvironmentVariableTarget) method with each member of the EnvironmentVariableTarget enumeration to establish that the variable can be retrieved only from the current process environment block. (.NET Implementierungen auf Unix-basierten Systemen unterstützt nur Variablen im prozessblock-Umgebung.) Schließlich im Beispiel wird die Variable erstellt, löscht sie es.(.NET implementations on Unix-based systems only support variables in the process environment block.) Finally, if the example created the variable, it deletes it.

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
   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 einem Wert von EnvironmentVariableTarget.Process für die target Argument.Calling this method is equivalent to calling the SetEnvironmentVariable(String, String, EnvironmentVariableTarget) overload with a value of EnvironmentVariableTarget.Process for the target argument.

Wenn die value Argument ist nicht leer (siehe die Erläuterung der Löschen einer Umgebungsvariablen, die weiter unten in diesem Abschnitt für die Definition von ein leerer Wert) und die Umgebungsvariable mit dem Namen, indem die variable Parameter nicht vorhanden ist, die Umgebungsvariable wird erstellt und dem Inhalt von zugewiesen value.If the value argument is not empty (see the discussion of deleting an environment variable later in this section for the definition of an empty value) and the environment variable named by the variable parameter does not exist, the environment variable is created and assigned the contents of value. Wenn sie vorhanden ist, wird ihr Wert geändert werden.If it does exist, its value is modified. Da die Umgebungsvariable in der Umgebungsblock, der nur den aktuellen Prozess definiert ist, behält es nicht, nachdem der Prozess beendet wurde.Because the environment variable is defined in the environment block of the current process only, it does not persist after the process has ended.

Wenn variable enthält ein nicht anfängliches Hexadezimalzeichen 0 (null) Zeichen, die Zeichen, bevor das Nullzeichen werden als Name der Umgebungsvariablen betrachtet und alle nachfolgende Zeichen werden ignoriert.If variable contains a non-initial hexadecimal zero character, the characters before the zero character are considered the environment variable name and all subsequent characters are ignored.

Wenn value enthält ein nicht anfängliches Hexadezimalzeichen 0 (null) Zeichen, die Zeichen, bevor das Nullzeichen werden der Umgebungsvariablen zugewiesen, und alle nachfolgende Zeichen werden ignoriert.If value contains a non-initial hexadecimal zero character, the characters before the zero character are assigned to the environment variable and all subsequent characters are ignored.

Wenn value leer ist und die Umgebungsvariable mit dem Namen von variable vorhanden ist, wird die Umgebungsvariable gelöscht.If value is empty and the environment variable named by variable exists, the environment variable is deleted. Wenn variable ist nicht vorhanden, kein Fehler auftritt, obwohl der Vorgang kann nicht ausgeführt werden.If variable does not exist, no error occurs even though the operation cannot be performed. value wird unter einer der folgenden Bedingungen leer betrachtet:value is considered empty under any of the following conditions:

  • Es ist null.It is null.

  • Es ist String.Empty.It is String.Empty.

  • Es besteht aus einem einzelnen Zeichen, dessen Wert U + 0000 ist.It consists of a single character whose value is U+0000.

Sicherheit

EnvironmentPermission
für vollständigen Zugriff auf Umgebungsvariablen.for full access to environment variables. Zugeordnete Enumeration: UnrestrictedAssociated enumeration: Unrestricted

Siehe auch

SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget) SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Erstellt, ändert oder löscht eine Umgebungsvariable, die im aktuellen Prozess oder im Registrierungsschlüssel des für den aktuellen Benutzer oder den lokalen Computer reservierten Windows-Betriebssystems gespeichert ist.Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine.

public:
 static void SetEnvironmentVariable(System::String ^ variable, System::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 String String String

Der Name einer Umgebungsvariablen.The name of an environment variable.

value
String String String String

Ein Wert, der variable zugewiesen werden soll.A value to assign to variable.

target
EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget EnvironmentVariableTarget

Einer der Enumerationswerte, der den Standort der Umgebungsvariablen angibt.One of the enumeration values that specifies the location of the environment variable.

Ausnahmen

variable enthält eine leere Zeichenfolge („“), ein anfängliches Hexadezimalzeichen 0 (0x00) oder ein Gleichheitszeichen ("=").variable contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("=").

- oder --or- Die Länge von variable ist größer gleich 32.767 Zeichen.The length of variable is greater than or equal to 32,767 characters.

- oder --or- target ist kein Member der EnvironmentVariableTarget -Enumeration.target is not a member of the EnvironmentVariableTarget enumeration.

- oder --or- target ist gleich Machine oder gleich User, und die Länge von variable ist größer gleich 255.target is Machine or User, and the length of variable is greater than or equal to 255.

- oder --or- target ist gleich Process , und die Länge von value ist größer gleich 32,767.target is Process and the length of value is greater than or equal to 32,767 characters.

- oder --or- Während der Ausführung dieses Vorgangs ist ein Fehler aufgetreten.An error occurred during the execution of this operation.

Der Aufrufer hat nicht die erforderliche Berechtigung zum Ausführen dieses Vorgangs.The caller does not have the required permission to perform this operation.

Beispiele

Das folgende Beispiel erstellt die Umgebungsvariablen für die EnvironmentVariableTarget.Process, EnvironmentVariableTarget.User, und Machine ausgerichtet ist, überprüft, ob die Registrierung des Betriebssystems, die Benutzer und Computer-Umgebungsvariablen enthält, und löscht dann die Umgebungsvariablen.The following example creates environment variables for the EnvironmentVariableTarget.Process, EnvironmentVariableTarget.User, and Machine targets, checks whether the operating system registry contains the user and machine environment variables, then deletes the environment variables. Da .NET auf Unix-basierten Systemen nicht Unterstützung pro Benutzer und pro Computer Umgebungsvariablen nur übernimmt SetEnvironmentVariable(String, String) und SetEnvironmentVariable(String, String, EnvironmentVariableTarget) mit einem Wert von EnvironmentVariableTarget.Process erfolgreich eine Umgebungsvariable zu der Process-Block-Umgebung zu speichern.Because .NET on Unix-based systems does not support per-user and per-machine environment variables, only SetEnvironmentVariable(String, String) and SetEnvironmentVariable(String, String, EnvironmentVariableTarget) with a value of EnvironmentVariableTarget.Process successfully store an environment variable to the process environment block.

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

Die SetEnvironmentVariable(String, String, EnvironmentVariableTarget) Methode können Sie eine Umgebungsvariable zu definieren, die für den aktuellen Prozess verfügbar ist (die Process Wert).The SetEnvironmentVariable(String, String, EnvironmentVariableTarget) method lets you define an environment variable that is available to the current process (the Process value). Umgebungsvariablen, die der aktuelle Block des Prozess-Umgebung eindeutig sind bestehen, nur verwendet werden, bis der Prozess beendet.Environment variables that are unique to the current process environment block persist only until the process ends.

Darüber hinaus auf Windows-Systemen nur die SetEnvironmentVariable(String, String, EnvironmentVariableTarget) Methode können Sie eine Umgebungsvariable zu definieren, die für alle Prozesse verfügbar ist, die auf einem Computer ausgeführt (die EnvironmentVariableTarget.Machine Wert) und für alle Prozesse, die von einem Benutzer ausgeführt wird (die EnvironmentVariableTarget.User Wert).In addition, on Windows systems only, the SetEnvironmentVariable(String, String, EnvironmentVariableTarget) method lets you define an environment variable that is available to all processes that run on a machine (the EnvironmentVariableTarget.Machine value) and to all processes run by a user (the EnvironmentVariableTarget.User value). Pro Computer und benutzerspezifische Umgebungsvariablen werden in der Umgebungsblock, der den aktuellen Prozess kopiert.Per-machine and per-user environment variables are copied into the environment block of the current process.

Aufrufe in .NET Core unter MacOS und Linux-Systeme, die SetEnvironmentVariable(String, String, EnvironmentVariableTarget) Methode mit einem Wert von EnvironmentVariableTarget.Machine oder EnvironmentVariableTarget.User werden ignoriert.On .NET Core on macOS and Linux systems, calls to the SetEnvironmentVariable(String, String, EnvironmentVariableTarget) method with a value of EnvironmentVariableTarget.Machine or EnvironmentVariableTarget.User are ignored.

Wenn die value Argument ist nicht leer (siehe die Erläuterung der Löschen einer Umgebungsvariablen, die weiter unten in diesem Abschnitt für die Definition von ein leerer Wert) und die Umgebungsvariable mit dem Namen, indem die variable Argument ist nicht vorhanden, die Umgebungsvariable wird erstellt und dem Inhalt von zugewiesen value.If the value argument is not empty (see the discussion of deleting an environment variable later in this section for the definition of an empty value) and the environment variable named by the variable argument does not exist, the environment variable is created and assigned the contents of value. Wenn sie vorhanden ist, wird ihr Wert geändert werden.If it does exist, its value is modified.

Wenn variable enthält ein nicht anfängliches Hexadezimalzeichen 0 (null) Zeichen, die Zeichen, bevor das Nullzeichen werden als Name der Umgebungsvariablen betrachtet und alle nachfolgende Zeichen werden ignoriert.If variable contains a non-initial hexadecimal zero character, the characters before the zero character are considered the environment variable name and all subsequent characters are ignored.

Wenn value enthält ein nicht anfängliches Hexadezimalzeichen 0 (null) Zeichen, die Zeichen, bevor das Nullzeichen werden der Umgebungsvariablen zugewiesen, und alle nachfolgende Zeichen werden ignoriert.If value contains a non-initial hexadecimal zero character, the characters before the zero character are assigned to the environment variable and all subsequent characters are ignored.

Wenn value leer ist und die Umgebungsvariable mit dem Namen von variable vorhanden ist, wird die Umgebungsvariable gelöscht.If value is empty and the environment variable named by variable exists, the environment variable is deleted. value wird unter einer der folgenden Bedingungen leer betrachtet:value is considered empty under any of the following conditions:

  • Es ist null.It is null.

  • Es ist String.Empty.It is String.Empty.

  • Es besteht aus einem einzelnen Zeichen, dessen Wert U + 0000 ist.It consists of a single character whose value is U+0000.

Wenn variable ist nicht vorhanden, kein Fehler auftritt, obwohl der Vorgang kann nicht ausgeführt werden.If variable does not exist, no error occurs although the operation cannot be performed. Seien Sie vorsichtig beim target ist Machine, da Sie versehentlich eine Umgebungsvariable löschen können, die den gesamten lokalen Computer, nicht nur den aktuellen Prozess oder Benutzer betreffen.Be careful when target is Machine, because you can accidentally delete an environment variable that affects your entire local machine, not just the current process or user.

EnvironmentVariableTarget.Machine und EnvironmentVariableTarget.User auf Windows-SystemenEnvironmentVariableTarget.Machine and EnvironmentVariableTarget.User on Windows systems

Wenn target ist EnvironmentVariableTarget.User, die Umgebungsvariable im Schlüssel HKEY_CURRENT_USER\Environment für die Registrierung des lokalen Computers gespeichert ist.If target is EnvironmentVariableTarget.User, the environment variable is stored in the HKEY_CURRENT_USER\Environment key of the local computer's registry. Es wird ebenfalls auf Instanzen von Datei-Explorer kopiert, die als aktueller Benutzer ausgeführt werden.It is also copied to instances of File Explorer that are running as the current user. Die Umgebungsvariable wird dann durch alle neue Prozesse geerbt, die der Benutzer im Datei-Explorer startet.The environment variable is then inherited by any new processes that the user launches from File Explorer.

Auf ähnliche Weise, wenn target ist EnvironmentVariableTarget.Machine, die Umgebungsvariable im HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment Schlüssel für die Registrierung des lokalen Computers gespeichert ist.Similarly, if target is EnvironmentVariableTarget.Machine, the environment variable is stored in the HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment key of the local computer's registry. Es wird auch für alle Instanzen des Datei-Explorers kopiert.It is also copied to all instances of File Explorer. Die Umgebungsvariable wird dann durch alle neue Prozesse geerbt, die im Datei-Explorer gestartet werden.The environment variable is then inherited by any new processes that are launched from File Explorer.

Wenn target ist User oder Machine, andere Anwendungen des Vorgangs zum Festlegen informiert Sie über eine Windows WM_SETTINGCHANGE Nachricht.If target is User or Machine, other applications are notified of the set operation by a Windows WM_SETTINGCHANGE message.

Wenn target ist EnvironmentVariableTarget.User oder EnvironmentVariableTarget.Machine, es wird empfohlen, die die Länge des value weniger als 2048 Zeichen sein.If target is EnvironmentVariableTarget.User or EnvironmentVariableTarget.Machine, we recommend that the length of value be less than 2048 characters.

Sicherheit

EnvironmentPermission
für vollständigen Zugriff auf Umgebungsvariablen.for full access to environment variables. Zugeordnete Enumeration: UnrestrictedAssociated enumeration: Unrestricted

Siehe auch

Gilt für: