Environment.SetEnvironmentVariable メソッド

定義

環境変数を作成、変更、または削除します。Creates, modifies, or deletes an environment variable.

オーバーロード

SetEnvironmentVariable(String, String)

現在のプロセスに格納されている環境変数を作成、変更、または削除します。Creates, modifies, or deletes an environment variable stored in the current process.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

現在のプロセス、または Windows オペレーティング システムのレジストリ キー (現在のユーザー用に予約されているレジストリ キーまたはローカル コンピューター用に予約されているレジストリ キー) に格納される環境変数を作成、変更、または削除します。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)

現在のプロセスに格納されている環境変数を作成、変更、または削除します。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)

パラメーター

variable
String

環境変数の名前。The name of an environment variable.

value
String

variable に割り当てる値。A value to assign to variable.

例外

variablenullです。variable is null.

variable に、長さ 0 の文字列、最初の 16 進数 0 文字 (0x00)、または等号 ("=") が含まれています。variable contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("=").

または-or- variable または value の長さが 32,767 文字以上です。The length of variable or value is greater than or equal to 32,767 characters.

- または --or- この操作の実行中にエラーが発生しました。An error occurred during the execution of this operation.

呼び出し元に、この操作を実行するために必要なアクセス許可がありません。The caller does not have the required permission to perform this operation.

次の例では、プロセス環境ブロックから Test1 という名前の環境変数の値を取得しようとしています。The following example attempts to retrieve the value of an environment variable named Test1 from the process environment block. 変数が存在しない場合、この例では変数を作成し、その値を取得します。If the variable doesn't exist, the example creates the variable and retrieves its value. この例では、変数の値が表示されます。The example displays the value of the variable. Windows システム上で実行されている .NET 実装の場合は、EnvironmentVariableTarget 列挙体の各メンバーと共に @no__t 0 メソッドを呼び出して、現在のプロセス環境ブロックからのみ変数を取得できることを確立します。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. (Unix ベースのシステム上の .NET 実装では、プロセス環境ブロックの変数のみがサポートされます)。最後に、この例で変数を作成した場合は、変数が削除されます。(.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.

注釈

このメソッドを呼び出すことは、target 引数に対して EnvironmentVariableTarget.Process の値を指定して @no__t 0 のオーバーロードを呼び出すことと同じです。Calling this method is equivalent to calling the SetEnvironmentVariable(String, String, EnvironmentVariableTarget) overload with a value of EnvironmentVariableTarget.Process for the target argument.

@No__t 0 引数が空でない場合 (このセクションで後述する空の値の定義については、後で環境変数を削除する方法に関する説明を参照)、variable パラメーターで指定された環境変数が存在しない場合は、環境変数が作成されます。および 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. 存在する場合は、その値が変更されます。If it does exist, its value is modified. 環境変数は、現在のプロセスの環境ブロックでのみ定義されているので、プロセスが終了した後は保持されません。Because the environment variable is defined in the environment block of the current process only, it does not persist after the process has ended.

@No__t-0 に最初の16進数以外のゼロ文字が含まれている場合、ゼロ文字の前の文字は環境変数名と見なされ、それ以降のすべての文字は無視されます。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.

@No__t-0 に最初の16進数以外のゼロ文字が含まれている場合は、ゼロ文字の前の文字が環境変数に割り当てられ、それ以降のすべての文字は無視されます。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.

@No__t-0 が空で variable という名前の環境変数が存在する場合、環境変数は削除されます。If value is empty and the environment variable named by variable exists, the environment variable is deleted. @No__t-0 が存在しない場合は、操作を実行できなくてもエラーは発生しません。If variable does not exist, no error occurs even though the operation cannot be performed. value は、次のいずれかの条件下で空と見なされます。value is considered empty under any of the following conditions:

  • @No__t-0 です。It is null.

  • @No__t-0 です。It is String.Empty.

  • 値が U + 0000 である1文字で構成されます。It consists of a single character whose value is U+0000.

セキュリティ

EnvironmentPermission
環境変数へのフルアクセス。for full access to environment variables. 関連付けられた列挙型: UnrestrictedAssociated enumeration: Unrestricted

こちらもご覧ください

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

現在のプロセス、または Windows オペレーティング システムのレジストリ キー (現在のユーザー用に予約されているレジストリ キーまたはローカル コンピューター用に予約されているレジストリ キー) に格納される環境変数を作成、変更、または削除します。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)

パラメーター

variable
String

環境変数の名前。The name of an environment variable.

value
String

variable に割り当てる値。A value to assign to variable.

target
EnvironmentVariableTarget

環境変数の位置を指定する列挙値の 1 つ。One of the enumeration values that specifies the location of the environment variable.

例外

variablenullです。variable is null.

variable に、長さ 0 の文字列、最初の 16 進数 0 文字 (0x00)、または等号 ("=") が含まれています。variable contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("=").

- または --or- variable の長さが 32,767 文字以上です。The length of variable is greater than or equal to 32,767 characters.

または-or- targetEnvironmentVariableTarget 列挙体のメンバーではありません。target is not a member of the EnvironmentVariableTarget enumeration.

- または --or- targetMachine または Userで、 variable の長さが 255 文字以上です。target is Machine or User, and the length of variable is greater than or equal to 255.

- または --or- targetProcess で、 value の長さが 32,767 文字以上です。target is Process and the length of value is greater than or equal to 32,767 characters.

または-or- この操作の実行中にエラーが発生しました。An error occurred during the execution of this operation.

呼び出し元に、この操作を実行するために必要なアクセス許可がありません。The caller does not have the required permission to perform this operation.

次の例では、EnvironmentVariableTarget.ProcessEnvironmentVariableTarget.User、および @no__t 2 のターゲットの環境変数を作成し、オペレーティングシステムのレジストリにユーザーとコンピューターの環境変数が含まれているかどうかを確認してから、環境変数を削除します。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. Unix ベースのシステム上の .NET はユーザー単位およびコンピューター単位の環境変数をサポートしていないため、EnvironmentVariableTarget.Process の値を持つ SetEnvironmentVariable(String, String)SetEnvironmentVariable(String, String, EnvironmentVariableTarget) のみが正常にプロセス環境ブロックに環境変数を格納します。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...

注釈

@No__t-0 メソッドを使用すると、現在のプロセスで使用できる環境変数 (Process の値) を定義できます。The SetEnvironmentVariable(String, String, EnvironmentVariableTarget) method lets you define an environment variable that is available to the current process (the Process value). 現在のプロセス環境ブロックに固有の環境変数は、プロセスが終了するまで保持されます。Environment variables that are unique to the current process environment block persist only until the process ends.

さらに、Windows システムでのみ、SetEnvironmentVariable(String, String, EnvironmentVariableTarget) メソッドを使用して、コンピューター上で実行されるすべてのプロセス (@no__t 1 の値) およびユーザーが実行するすべてのプロセス (@no__t 2 の値) で使用できる環境変数を定義できます。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). コンピューターごとおよびユーザーごとの環境変数は、現在のプロセスの環境ブロックにコピーされます。Per-machine and per-user environment variables are copied into the environment block of the current process.

MacOS および Linux システム上の .NET Core では、値が EnvironmentVariableTarget.Machine または @no__t の SetEnvironmentVariable(String, String, EnvironmentVariableTarget) メソッドの呼び出しは無視されます。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.

@No__t-0 引数が空でない場合 (このセクションで後述する空の値の定義については、後で環境変数を削除する方法に関する説明を参照)、variable 引数で指定された環境変数が存在しない場合は、環境変数が作成されます。および 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. 存在する場合は、その値が変更されます。If it does exist, its value is modified.

@No__t-0 に最初の16進数以外のゼロ文字が含まれている場合、ゼロ文字の前の文字は環境変数名と見なされ、それ以降のすべての文字は無視されます。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.

@No__t-0 に最初の16進数以外のゼロ文字が含まれている場合は、ゼロ文字の前の文字が環境変数に割り当てられ、それ以降のすべての文字は無視されます。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.

@No__t-0 が空で variable という名前の環境変数が存在する場合、環境変数は削除されます。If value is empty and the environment variable named by variable exists, the environment variable is deleted. value は、次のいずれかの条件下で空と見なされます。value is considered empty under any of the following conditions:

  • @No__t-0 です。It is null.

  • @No__t-0 です。It is String.Empty.

  • 値が U + 0000 である1文字で構成されます。It consists of a single character whose value is U+0000.

@No__t-0 が存在しない場合は、操作を実行できませんが、エラーは発生しません。If variable does not exist, no error occurs although the operation cannot be performed. 現在のプロセスまたはユーザーだけでなく、ローカルコンピューター全体に影響を与える環境変数を誤って削除することができるので targetMachine の場合は注意してください。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.

環境変数ターゲット. Machine と環境変数 Windows システム上のユーザーEnvironmentVariableTarget.Machine and EnvironmentVariableTarget.User on Windows systems

@No__t-0 が EnvironmentVariableTarget.User の場合、環境変数はローカルコンピューターのレジストリの HKEY_CURRENT_USER\Environment キーに格納されます。If target is EnvironmentVariableTarget.User, the environment variable is stored in the HKEY_CURRENT_USER\Environment key of the local computer's registry. また、現在のユーザーとして実行されているエクスプローラーのインスタンスにもコピーされます。It is also copied to instances of File Explorer that are running as the current user. その後、ユーザーがエクスプローラーから起動した新しいプロセスによって、環境変数が継承されます。The environment variable is then inherited by any new processes that the user launches from File Explorer.

同様に、targetEnvironmentVariableTarget.Machine の場合、環境変数はローカルコンピューターのレジストリの HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment キーに格納されます。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. また、ファイルエクスプローラーのすべてのインスタンスにもコピーされます。It is also copied to all instances of File Explorer. その後、エクスプローラーから起動される新しいプロセスによって、環境変数が継承されます。The environment variable is then inherited by any new processes that are launched from File Explorer.

@No__t-0 @no__t が-1 または Machine の場合、他のアプリケーションには、Windows WM_SETTINGCHANGE メッセージによって設定操作が通知されます。If target is User or Machine, other applications are notified of the set operation by a Windows WM_SETTINGCHANGE message.

@No__t-0 が EnvironmentVariableTarget.User または EnvironmentVariableTarget.Machine の場合は、value の長さを2048文字未満にすることをお勧めします。If target is EnvironmentVariableTarget.User or EnvironmentVariableTarget.Machine, we recommend that the length of value be less than 2048 characters.

セキュリティ

EnvironmentPermission
環境変数へのフルアクセス。for full access to environment variables. 関連付けられた列挙型: UnrestrictedAssociated enumeration: Unrestricted

こちらもご覧ください

適用対象