Environment.SetEnvironmentVariable Methode

Definitie

Hiermee maakt, wijzigt of verwijdert u een omgevingsvariabele.

Overloads

Name Description
SetEnvironmentVariable(String, String)

Hiermee maakt, wijzigt of verwijdert u een omgevingsvariabele die is opgeslagen in het huidige proces.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Hiermee maakt, wijzigt of verwijdert u een omgevingsvariabele die is opgeslagen in het huidige proces of in de Windows registersleutel van het besturingssysteem die is gereserveerd voor de huidige gebruiker of lokale computer.

SetEnvironmentVariable(String, String)

Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs

Hiermee maakt, wijzigt of verwijdert u een omgevingsvariabele die is opgeslagen in het huidige proces.

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)

Parameters

variable
String

De naam van een omgevingsvariabele.

value
String

Een waarde waaraan moet worden toegewezen variable.

Uitzonderingen

variable is null.

variable bevat een tekenreeks met lengte nul, een eerste hexadecimale nulteken (0x00) of een gelijkteken (=).

– of –

De lengte van variable of value is groter dan of gelijk aan 32.767 tekens.

– of –

Er is een fout opgetreden tijdens de uitvoering van deze bewerking.

De aanroeper heeft niet de vereiste machtiging om deze bewerking uit te voeren.

Voorbeelden

In het volgende voorbeeld wordt geprobeerd de waarde op te halen van een omgevingsvariabele met de naam Test1 uit het procesomgevingsblok. Als de variabele niet bestaat, wordt in het voorbeeld de variabele gemaakt en wordt de waarde ervan opgehaald. In het voorbeeld wordt de waarde van de variabele weergegeven. Voor .NET implementaties die worden uitgevoerd op Windows systemen, wordt ook de methode GetEnvironmentVariables(EnvironmentVariableTarget) aangeroepen met elk lid van de opsomming EnvironmentVariableTarget om te bepalen dat de variabele alleen kan worden opgehaald uit het huidige procesomgevingsblok. (.NET implementaties op Unix-achtige systemen ondersteunen alleen variabelen in het procesomgevingsblok.) Ten slotte, als het voorbeeld de variabele heeft gemaakt, wordt deze verwijderd.

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.

Opmerkingen

Het aanroepen van deze methode is gelijk aan het aanroepen van SetEnvironmentVariable(String, String, EnvironmentVariableTarget) de EnvironmentVariableTarget.Process overbelasting met een waarde voor het target argument.

Op Unix-achtige systemen hebben aanroepen naar de SetEnvironmentVariable(String, String) methode geen effect op systeemeigen bibliotheken die wel of niet worden geladen. (Omgekeerd worden in-process-omgevingswijzigingen die zijn aangebracht door systeemeigen bibliotheken, niet gezien door beheerde bellers.)

Als het value argument niet null is en de omgevingsvariabele met de naam van de variable parameter niet bestaat, wordt de omgevingsvariabele gemaakt en de inhoud ervan valuetoegewezen. Als deze bestaat, wordt de waarde ervan gewijzigd. Omdat de omgevingsvariabele alleen in het omgevingsblok van het huidige proces is gedefinieerd, blijft deze niet behouden nadat het proces is beëindigd.

Als variable het een niet-initiële hexadecimale nulteken bevat, worden de tekens vóór het nulteken beschouwd als de naam van de omgevingsvariabele en worden alle volgende tekens genegeerd.

Als value het een niet-initiële hexadecimale nulteken bevat, worden de tekens voor het nulteken toegewezen aan de omgevingsvariabele en worden alle volgende tekens genegeerd.

Als value is null (of leeg in versies vóór .NET 9) en de omgevingsvariabele met de naam variable bestaat, wordt de omgevingsvariabele verwijderd. Als variable dit niet het geval is, treedt er geen fout op, ook al kan de bewerking niet worden uitgevoerd. value wordt als leeg beschouwd onder een van de volgende voorwaarden:

  • Het is String.Empty.
  • Het bestaat uit één teken waarvan de waarde U+0000 is.

Zie ook

Van toepassing op

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs
Bron:
Environment.cs

Hiermee maakt, wijzigt of verwijdert u een omgevingsvariabele die is opgeslagen in het huidige proces of in de Windows registersleutel van het besturingssysteem die is gereserveerd voor de huidige gebruiker of lokale computer.

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)

Parameters

variable
String

De naam van een omgevingsvariabele.

value
String

Een waarde waaraan moet worden toegewezen variable.

target
EnvironmentVariableTarget

Een van de opsommingswaarden waarmee de locatie van de omgevingsvariabele wordt opgegeven.

Uitzonderingen

variable is null.

variable bevat een tekenreeks met lengte nul, een eerste hexadecimale nulteken (0x00) of een gelijkteken (=).

– of –

De lengte is variable groter dan of gelijk aan 32.767 tekens.

– of –

target is geen lid van de EnvironmentVariableTarget opsomming.

– of –

target is Machine of User, en de lengte is variable groter dan of gelijk aan 255.

– of –

target is Process en de lengte van value is groter dan of gelijk aan 32.767 tekens.

– of –

Er is een fout opgetreden tijdens de uitvoering van deze bewerking.

De aanroeper heeft niet de vereiste machtiging om deze bewerking uit te voeren.

Voorbeelden

In het volgende voorbeeld worden omgevingsvariabelen voor de EnvironmentVariableTarget.Process, EnvironmentVariableTarget.Useren Machine doelen gemaakt. Hiermee wordt gecontroleerd of het besturingssysteemregister de omgevingsvariabelen van de gebruiker en computer bevat en vervolgens de omgevingsvariabelen verwijdert. Omdat .NET op Unix-achtige systemen geen omgevingsvariabelen per gebruiker en per machine ondersteunt, worden alleen SetEnvironmentVariable(String, String) en SetEnvironmentVariable(String, String, EnvironmentVariableTarget) met de waarde EnvironmentVariableTarget.Process een omgevingsvariabele opgeslagen in het procesomgevingsblok.

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

Opmerkingen

Met SetEnvironmentVariable(String, String, EnvironmentVariableTarget) de methode kunt u een omgevingsvariabele definiëren die beschikbaar is voor het huidige proces (de Process waarde). Omgevingsvariabelen die uniek zijn voor het huidige procesomgevingsblok, blijven alleen behouden totdat het proces eindigt.

Bovendien kunt u op Windows systemen alleen de methode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) een omgevingsvariabele definiëren die beschikbaar is voor alle processen die worden uitgevoerd op een computer (de EnvironmentVariableTarget.Machine-waarde) en voor alle processen die worden uitgevoerd door een gebruiker (de EnvironmentVariableTarget.User-waarde). Omgevingsvariabelen per machine en per gebruiker worden gekopieerd naar het omgevingsblok van het huidige proces.

In Unix-achtige systemen worden aanroepen naar de SetEnvironmentVariable(String, String, EnvironmentVariableTarget) methode met een waarde van EnvironmentVariableTarget.Machine of EnvironmentVariableTarget.User genegeerd.

Op Unix-achtige systemen hebben aanroepen naar de SetEnvironmentVariable(String, String, EnvironmentVariableTarget) methode met een waarde die EnvironmentVariableTarget.Process geen effect heeft op systeemeigen bibliotheken die wel of niet worden geladen. (Omgekeerd worden in-process-omgevingswijzigingen die zijn aangebracht door systeemeigen bibliotheken, niet gezien door beheerde bellers.)

Als het value argument niet null is en de omgevingsvariabele met de naam van het variable argument niet bestaat, wordt de omgevingsvariabele gemaakt en de inhoud ervan valuetoegewezen. Als deze bestaat, wordt de waarde ervan gewijzigd.

Als variable het een niet-initiële hexadecimale nulteken bevat, worden de tekens vóór het nulteken beschouwd als de naam van de omgevingsvariabele en worden alle volgende tekens genegeerd.

Als value het een niet-initiële hexadecimale nulteken bevat, worden de tekens voor het nulteken toegewezen aan de omgevingsvariabele en worden alle volgende tekens genegeerd.

Als value is null (of leeg in versies vóór .NET 9) en de omgevingsvariabele met de naam variable bestaat, wordt de omgevingsvariabele verwijderd. value wordt als leeg beschouwd onder een van de volgende voorwaarden:

  • Het is String.Empty.
  • Het bestaat uit één teken waarvan de waarde U+0000 is.

Als variable dit niet het geval is, treedt er geen fout op, hoewel de bewerking niet kan worden uitgevoerd. Wees voorzichtig wanneer target , Machineomdat u per ongeluk een omgevingsvariabele kunt verwijderen die van invloed is op uw hele lokale computer, niet alleen het huidige proces of de huidige gebruiker.

EnvironmentVariableTarget.Machine en EnvironmentVariableTarget.User op Windows systemen

Als target dat het is EnvironmentVariableTarget.User, wordt de omgevingsvariabele opgeslagen in de HKEY_CURRENT_USER\Environment sleutel van het register van de lokale computer. Het wordt ook gekopieerd naar exemplaren van Verkenner die worden uitgevoerd als de huidige gebruiker. De omgevingsvariabele wordt vervolgens overgenomen door nieuwe processen die de gebruiker start vanuit Verkenner.

Als dat het istarget, EnvironmentVariableTarget.Machine wordt de omgevingsvariabele opgeslagen in de HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment sleutel van het register van de lokale computer. Het wordt ook gekopieerd naar alle exemplaren van Verkenner. De omgevingsvariabele wordt vervolgens overgenomen door nieuwe processen die worden gestart vanuit Verkenner.

Als target is User of Machine, worden andere toepassingen op de hoogte gesteld van de ingestelde bewerking door een Windows WM_SETTINGCHANGE bericht.

Als target dat het is EnvironmentVariableTarget.User of EnvironmentVariableTarget.Machine, raden we u aan om de lengte van value minder dan 2048 tekens te bepalen.

Zie ook

Van toepassing op