PowerShell を使用して環境変数を設定する方法

  1. 環境変数とは
  2. PowerShell の Env:で環境変数を設定する
  3. PowerShell での [System.Environment] .NET クラスの設定
  4. 現在の PowerShell セッションの環境変数を更新する
  5. 結論
PowerShell を使用して環境変数を設定する方法

Windows PowerShell を使用して Windows 環境変数を設定、読み取り、新しい環境変数を作成することは、コマンドの適切な実行を知っていれば簡単です。

PowerShell は、$env: PSDrive および [System.Environment] .NET クラスを介して Windows 環境変数と対話するためのさまざまな方法を提供します。この記事では、PowerShell を使用して環境変数を設定し、現在のセッションでそれらを更新する方法について説明します。

環境変数とは

名前が示すように、環境変数は Windows およびアプリケーションの環境に関する情報を格納します。

私たちは、Windows エクスプローラーや Notepadcmd.exe、PowerShell などのプレーンテキストエディターを介して環境変数にアクセスできます。

環境変数を使用することで、PowerShell スクリプトやモジュール内でファイルパス、ユーザー名またはコンピュータ名などをハードコーディングすることを避けることができます。

PowerShell の Env:で環境変数を設定する

PowerShell を使用して、New-Item コマンドレットで新しい環境変数を作成できます。しかし、まずは Value パラメーターに環境変数の名前を Env:\<EnvVarName> 形式で指定します。

例コード:

New-Item -Path Env:\TEST -Value WIN10-DESKTOP

PowerShell コマンドレット New-Item を使用して、Env:\名前空間内に TEST という名前の環境変数を作成または更新します。-Value WIN10-DESKTOP を指定することにより、この変数に値 WIN10-DESKTOP を割り当てます。

このアクションは現在の PowerShell セッションに影響を与え、TEST 環境変数をセッション内の他のスクリプトおよびコマンドからアクセス可能にします。

出力:

PowerShell 環境変数をリフレッシュ - 出力 1

私たちは Set-Item コマンドレットを使用して、環境変数を設定したり、既に存在しない場合は新しい環境変数を作成したりできます。以下の Set-Item コマンドレットを使用する例をご覧ください。

私たちは環境変数を作成または修正することができます。

例コード:

Set-Item -Path Env:TEST -Value "TestValue"

PowerShell コマンドレット Set-Item を使用して、Env:\名前空間内にある既存の環境変数 TEST の値を変更します。-Value "TestValue"を指定することにより、文字列"TestValue"TEST 環境変数に割り当てます。

このアクションは現在の PowerShell セッションに直接影響を与え、セッション内の他のスクリプトおよびコマンドが TEST の値を使用できるように更新します。

出力:

PowerShell 環境変数を更新 - 出力 2

PowerShell での [System.Environment] .NET クラスの設定

[System.Environment] はいくつかの異なる.NET 静的クラスメソッドを使用します。静的な方法が何であるかを理解する必要はありません。

私たちが学ぼうとしている技術のいずれかを使用する方法を理解するだけで十分であり、クラス([System.Environment])を参照した後、2つのコロン(::)を続け、その後にメソッドを書きます。

前述の.NET クラスを使用して環境変数を設定するには、SetEnvironmentVariable() 関数を使用して、指定されたスコープの既存の環境変数の値を設定するか、まだ存在しない場合は新しい環境変数を作成します。

プロセススコープで変数を設定する場合、プロセススコープは揮発性であり、現在のセッションに存在し、ユーザーおよびマシンスコープへの変更は永続的であることがわかります。

例コード:

[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')

私たちは.NET メソッド [System.Environment]::SetEnvironmentVariable() を使用して、ユーザー固有の環境で値'TestValue'を持つ TestVariable という名前の環境変数を設定します。3 番目のパラメーターとして'User'を指定することで、この変数がユーザーの環境コンテキスト内で設定されることを確認します。

このアクションは現在のユーザーの環境設定に影響を与え、他のスクリプトやアプリケーションが割り当てられた値で TestVariable にアクセスできるようにします。

現在の PowerShell セッションの環境変数を更新する

新しく設定した環境変数を PowerShell セッションで使用するために、ユーザープロファイルとマシンの環境変数を.NET クラスを介して取得し、それを PowerShell 環境変数に割り当てます。

環境変数は PowerShell 変数とも見なされるため、より直接的に値を割り当てることができます。

例コード:

$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")

私たちは、[System.Environment]::GetEnvironmentVariable() を使用して取得したシステムおよびユーザーの Path 環境変数の値を連結することによって、$env:PATH 環境変数を更新しています。まず、"Machine"パラメーターを使用してシステム Path 変数を取得し、その後、"User"パラメーターを使用して取得したユーザーPath 変数を追加します。

これらの値をセミコロン区切りで結合することで、両方のパスセットが更新された $env:PATH に含まれることを確認できます。

出力:

PowerShell 環境変数をリフレッシュ - 出力 3

結論

この記事では、環境変数を PowerShell で管理するためのさまざまな方法を探求し、異なる技術を使用して設定および更新することに焦点を当てました。最初に、New-ItemSet-Item のような PowerShell コマンドレットを使用して環境変数を作成または修正する方法を示し、各ステップに対して明確な例と説明を提供しました。

次に、環境変数を操作するための [System.Environment] .NET クラスの使用について掘り下げました。SetEnvironmentVariable() メソッドを通じて、特定のスコープを持つ変数を設定する方法を学び、それぞれのスコープが変数の永続性に与える影響を理解しました。

最後に、現在の PowerShell セッション内で環境変数を更新する重要性について説明し、動的に変数を更新するための [System.Environment]::GetEnvironmentVariable() の使用を強調しました。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell Environment Variables