PowerShell の環境変数についてすべて: 完全かつ最新のガイド

最終更新: 08/05/2025
  • 環境変数は、 PowerShellの およびオペレーティング システム。
  • PowerShell で環境変数を作成、一覧表示、変更、または削除するための方法とスコープは複数あります。
  • 環境変数を正しく操作すると、スクリプトの自動化、セキュリティ、移植性が向上します。

PowerShell で環境変数を操作する

PowerShell の環境変数は、システム管理者と開発者の両方にとって不可欠なツールとなっています。環境変数を適切に管理することで、オペレーティングシステムやさまざまなアプリケーションの動作をカスタマイズし、自動化、統合、チームワークを促進することができます。PowerShellは非常に強力で柔軟なコマンドラインインターフェイスであり、特定のセッションだけでなく永続的に環境変数にアクセス、変更、保持するための複数の方法を提供しています。

PowerShell でこれらの変数がどのように機能するか、オペレーティング システムに応じて変数を管理する方法の違い、変数を一覧表示、作成、または変更するための最も効果的な方法を理解することは、このコンソールを最大限に活用するために不可欠です。次に、PowerShell で環境変数を操作することに関するすべての関連側面について、基本理論から高度な例まで詳しく説明し、専門家やコミュニティによってまとめられたすべてのベスト プラクティスと重要なヒント、および公式ドキュメントを統合します。

環境変数とは何ですか? PowerShell で環境変数は何に使用されますか?

環境変数は、オペレーティングシステムと実行中のアプリケーションの両方で使用される情報を格納するキーと値のペアです。これらを使用することで、プログラムの動作を制御したり、プロセス間の通信を容易にしたり、永続的な構成(パス、設定、認証情報など)を保存したりできます。PowerShell においては、これらの変数はスクリプトのカスタマイズ、タスクの自動化、コンソールから起動されたプロセスが適切な環境を継承することの保証などにおいて、非常に大きな柔軟性を提供します。

例えば、PATH変数には、システムが実行可能ファイルを探す際に参照するディレクトリのリストが含まれています。この変数にフォルダが含まれていれば、プログラムのフルパスを入力せずに起動できます。その他の一般的な環境変数には、TEMPUSERNAMEHOME ( Unixシステムの場合) などがあり、PowerShell にもPSModulePathPOWERSHELL_TELEMETRY_OPTOUTなど、特に便利な独自の変数が多数あります。

これらの変数を効率的に管理することで、さまざまなユーザー、プロジェクト、さらには開発や生産の特定の段階に合わせた環境を構築することが可能になり、これは小規模チームと大規模ITインフラストラクチャの両方において非常に高く評価される点です。

PowerShellで環境変数を使用する利点

PowerShellで環境変数を使用することには多くの利点があり、特に自動化とスクリプトの移植性が重要なシナリオで有効です。これには以下が含まれます。

  • 柔軟性: コードを変更せずに動作を変更し、スクリプトやプログラムをさまざまなコンテキストに適合させることができます。
  • セキュリティ: El ストレージ 環境変数内のキーやトークンなどの機密データを使用することで、ソース コード内で機密データが公開されることを回避できます。
  • 永続性: セッション間で値を維持したり、システムのすべてのユーザーに対して永続的な変数を保存したりすることも可能です。
  • プロセスの継承: 子プロセスは親プロセスから環境変数を継承することができ、これは複雑なタスクを調整するのに不可欠です。
  これは恥ずかしいことです。 Windows 0 のエラー 80070002x10 を修正するにはどうすればよいですか?

したがって、これらの変数を正しく管理することは、 WindowsLinux、またはmacOS環境でPowerShellを扱うすべての専門家にとって不可欠なスキルです。

PowerShell における環境変数のスコープ

PowerShellでは、環境変数はさまざまなスコープまたはレベルで存在し、それによって可視性と永続性が決定されます。

  • プロセスの範囲: これは現在の PowerShell セッションまたはプロセスにのみ影響します。セッションが閉じられると、変数は消えます。
  • ユーザースコープ: 変数はそれを定義したユーザー用に保存され、そのユーザーのすべてのセッションで使用できますが、他のユーザーには影響しません。
  • マシン(システム)スコープ: これらは、オペレーティング システムのすべてのユーザーとプロセスに対して定義され、最大限の永続性と範囲を持ちます。

ユーザー レベルおよびマシン レベルで変数を変更するには適切な権限が必要であり、これらの変更はオペレーティング システムに応じて Windows レジストリまたは構成ファイルに反映されることが多いです。

PowerShellで環境変数を一覧表示および照会する方法

利用可能な環境変数を確認する方法はいくつかあります。PowerShellでは、完全なリストを取得したり、特定の変数を検索したりするための迅速かつ効率的な方法が提供されています。

  • 全リスト: メインコマンドは Get-ChildItem 環境変数:、現在のセッション内のすべての環境変数とそれぞれの値を表示します。彼の別名、例えば gci 環境:, ディレクトリ環境: y ls 環境:、それらは同じように機能します。
  • 個別相談: 特定の変数の値を参照するには、構文を使用します。 $Env:変数名。 例えば、 $Env:PATH PATH 変数の値を表示します。
  • フィルタ結果: あなたは組み合わせることができます Get-ChildItem 環境変数: とともに 場所 - オブジェクト 名前または値が指定された条件に一致する変数を検索します。

setコマンドを使用する従来のcmdと比較すると、PowerShell のオプションははるかに強力で、出力を簡単にカスタマイズおよび操作できます。

PowerShell で環境変数を作成および変更する

PowerShell で環境変数を作成または変更するのは非常に簡単です。変数に持たせたいスコープに応じて、いくつかの方法があります。

$Env を使用した直接メソッド:

最も速く、最も一般的に使用される方法は、コンソールで直接値を割り当てることです。

$Env:MiVariable = "ValorEjemplo"

変更は現在のセッションにのみ有効です。コンソールを閉じると、変数は消えます。

環境プロバイダーコマンドレットの使用

PowerShell環境プロバイダーを使用すると、変数をファイルまたはファイルシステムの要素であるかのように扱うことができます。

  • 新しい変数を作成します: New-Item -Path Env:\MiVariable -Value 'ValorEjemplo'
  • 値を変更: Set-Item -Path Env:\MiVariable -Value 'NuevoValor'
  • 変数の名前を変更: Rename-Item -Path Env:MiVariable -NewName NuevoNombre

これらのコマンドレットは、永続的な回避策が使用されない限り、現在のセッションにのみ影響します。これについては後で説明します。

  ChromeOSでGoogleドライブをオフラインで使用する方法:完全ガイド

.NETベースのメソッド

PowerShellでは、 .NETクラスとメソッドを使用できます。System.Environmentクラスは、環境変数によく使用されます。変数を永続的に定義または変更するには、次の方法を使用します。

::SetEnvironmentVariable('MiVariable', 'ValorEjemplo', 'User')

3番目のパラメータは、スコープ(プロセスユーザーマシン)を示します。これにより、ユーザーまたはシステムに対して変数を永続的に設定できます。

PowerShellで環境変数を削除する

環境変数を削除するのは、作成するのと同じくらい簡単です。使用する方法に応じて、いくつかの方法で実行できます。

  • 空の値または $null を割り当てる: $Env:MiVariable = '' o $Env:MiVariable = $null。現在のセッションから削除されます。
  • アイテムの削除: Remove-Item -Path Env:\MiVariable。セッションから変数を削除します。
  • .NET の場合: ::SetEnvironmentVariable('MiVariable', '', 'User')。 Windows のユーザー変数を削除します。

システム変数の中には、オペレーティング システムやインストールされたプログラムの正常な機能に不可欠なものもあるため、どのような影響があるか分からないままシステム変数を削除したり上書きしたりしないことが重要です。

高度な管理: 永続性とプロファイル

コンピュータを再起動したり、新しいセッションを開いたりした後でも、環境変数を永続的に使用できると便利な場合が多くあります。これを行うには、オペレーティング システムと目的に応じてさまざまな選択肢があります。

PowerShellプロファイルを編集する

PowerShellプロファイルは、コンソールを開くたびに実行されるスクリプトです。環境変数を定義する行を追加することで、それらの変数を常に利用できるようになります。

# Ver ruta del perfil
echo $PROFILE
# Si no existe, créalo
new-item -path $PROFILE -ItemType File -Force
# Añade al perfil la declaración para persistir variables
$perfilContenido = @"
$Env:MiVariable = "Valor persistente"
"@
$perfilContenido | Add-Content -Path $PROFILE

これにより、そのユーザーのすべての新しい PowerShell セッションで変数が使用できるようになります。

スコープでSetEnvironmentVariable()を使用する

`::SetEnvironmentVariable`を使用すると、ユーザーまたはシステム全体の環境変数を作成できます。これらの環境変数は、コンソールを閉じたり Windows を再起動したりした後も保持されます。また、PowerShell で環境変数を管理することに関連するいくつかの側面については、PowerShell での GPO の管理に関するこのガイドで説明されています。

::SetEnvironmentVariable('MiVariable', 'Valor', 'User')
::SetEnvironmentVariable('MiVariable', 'Valor', 'Machine')

最初のコマンドはユーザーのみに保存し、2 番目のコマンドはすべてのユーザーに保存します。削除は前と同じように行われ、空の文字列が割り当てられます。

エイリアスコマンド
関連記事:
CMDとPowerShellでコマンドエイリアスを作成する方法:Windowsターミナルを最適化するための究極ガイド

PowerShell の環境変数: 実用的な例と特殊変数

PowerShellには、従来の変数に加えて、コンソール環境をさらにカスタマイズできる独自の変数があります。その中でも特に重要なものをいくつか挙げます。

  • POWERSHELL_TELEMETRY_OPTOUT: Microsoft へのテレメトリ データの送信を無効にすることができます。
  • POWERSHELL_DISTRIBUTION_CHANNEL: PowerShell インスタンスがどのようにインストールされたかを報告します (手動での変更は推奨されません)。
  • POWERSHELL_UPDATECHECK: 更新通知の動作を制御します。
  • PS実行ポリシー設定: 現在のセッションのスクリプト実行ポリシーを反映します (Windows のみ)。
  • PSModulePath: PowerShell がモジュールとリソースを検索するフォルダーのリスト。
  • PSモジュール分析キャッシュパス: モジュールとコマンドレットのキャッシュ ファイルへのパス。検索とインポートを高速化するのに役立ちます。
  • PSDisableModuleAnalysisCacheCleanup: モジュール キャッシュの自動クリアを無効にすることができます。
  携帯電話番号を使って名前を見つける最良の方法は何ですか?

これらの変数を適切に構成すると、PowerShell 環境のパフォーマンス、セキュリティ、および制御を最適化できます。

Windows およびその他のシステムの PATH、PATHEXT、および標準変数

環境変数の中で、PATHはおそらく最も重要なものです。これは、フルパスを指定せずにコマンドを実行したときにシステムが探索するディレクトリを格納します。Windowsではディレクトリはセミコロン( ;)で区切られますが、Unixシステムではコロン(:)がディレクトリ区切り文字として使用されます。

もう一つ興味深い変数としてPATHEXTがあり、これはどの拡張子が実行可能とみなされるかを指定するため、異なる言語のスクリプトをその名前を呼び出すだけで起動できるようになります。

Windows以外のシステムでは、システム標準に従ってPowerShellがそれらのプラットフォーム上で実行されている場合、PowerShellも認識する標準的なXDG変数(例えば、XDG_CONFIG_HOMEXDG_DATA_HOME 、 XDG_CACHE_HOMEなど)が見つかるのが一般的です。

PowerShell を使用して Linux および macOS で環境変数を操作する方法

PowerShellはクロスプラットフォームなので、Unixベースのシステムでも同じ基本的なテクニックを使用できます。ただし、PowerShellセッションを超えて変数を保持するには、適切な初期化ファイルで変数を変更する必要があります。例:

  • /etc/環境: すべてのユーザーに対して永続的な変数を定義できる Linux のグローバル ファイル。
  • /etc/profile.d/: シェル セッションを開始するときに変数を設定するスクリプトを配置できるフォルダー。
  • ~/.bashrc または ~/.zshrc: ログイン時に読み込まれる変数をエクスポートできるユーザーおよびシェル固有のファイル。

変数をグローバルに適用するには、管理者権限が必要であり、セッションまたはシステムを再起動する必要があることに注意してください。