PowerShell HelpFile - about_environment_variables
 記事記号:[me1528] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_Environment_Variables

簡易説明
    Windows PowerShell で Windows 環境変数にアクセスする方法について説明します。
    
詳細説明
    環境変数には、オペレーティング システムの環境についての情報が格納されます。
    この情報には、オペレーティング システムのパス、オペレーティング システムによ
    って使用されているプロセッサの数、一時フォルダーの場所などの詳細情報が含まれ
    ます。

    環境変数に格納されているデータは、オペレーティング システムやその他のプログ
    ラムによって使用されます。たとえば、環境変数 WINDIR には、Windows がインスト
    ールされているディレクトリの場所が格納されています。プログラムは、この変数の
    値に対してクエリを実行し、Windows オペレーティング システム ファイルがある場
    所を判断できます。

    Windows PowerShell では、Windows 環境変数を、レジストリに設定した変数および
    特定のセッション用に設定された変数も含め、表示および変更できます。Windows Po
    werShell 環境プロバイダーを使用すると、環境変数の表示および変更が容易になり、
    このプロセスが簡略化されます。
    
    Windows PowerShell のその他の種類の変数とは異なり、環境変数とその値は子セッ
    ション (モジュール メンバーが実行されるローカル バックグランド ジョブおよび
    セッションなど) に継承されます。そのため、環境変数は親セッションと子セッショ
    ンの両方に必要な値の格納に適しています。
   
  Windows PowerShell の環境プロバイダー
      Windows PowerShell の環境プロバイダーを使用すると、Windows PowerShell で 
      Windows PowerShell ドライブ (Env: ドライブ) の Windows 環境変数にアクセス
      できます。このドライブは、ファイル システム ドライブと同じように表示されま
      す。Env: ドライブに移動するには、次のように入力します。

	  set-location env:

      次に、Env: ドライブの内容を表示するには、次のコマンドを入力します。

	  get-childitem

      Env: ドライブの環境変数は、その他の任意の Windows PowerShell ドライブから
      参照できます。また、Env: ドライブに移動して、環境変数の表示や変更ができます。

  環境変数オブジェクト
      Windows PowerShell では、各環境変数が System.Collections.DictionaryEntry 
      クラスのインスタンスであるオブジェクトによって表されます。
	
      各 DictionaryEntry オブジェクトにおいて、環境変数の名前はディクショナリ キ
      ーです。環境変数の値はディクショナリ値です。

      Windows PowerShell の環境変数を表示するには、変数を表すオブジェクトを取得し、
      その後にオブジェクト プロパティの値を表示します。Windows PowerShell の環境
      変数を変更するときは、DictionaryEntry オブジェクトに関連付けられているメソ
      ッドを使用します。

      Windows PowerShell で環境変数を表すオブジェクトのプロパティとメソッドを表
      示するには、Get-Member コマンドレットを使用します。
      たとえば、Env: ドライブにあるすべてのオブジェクトのメソッドとプロパティを
      表示するには、次のように入力します。

	  get-item -path env:* |get-member

  環境変数の表示
      名詞 Item を含むコマンドレット (Item コマンドレット) を使用して、環境変数
      の値の表示および変更を行うことができます。環境変数には子の項目がないため、
      Get-Item と Get-ChildItem の出力は同じです。

      環境変数を参照するときは、Env: ドライブ名を入力した後に、変数の名前を入力
      します。たとえば、COMPUTERNAME 環境変数の値を表示するには、次のコマンドを
      入力します。

	  get-childitem env:computername

      すべての環境変数の値を表示するには、次のコマンドを入力します。

	  get-childitem env:

      既定では、環境変数は取得された順序で表示されます。環境変数の一覧を変数名の
      順に並べ替えるには、Get-ChildItem コマンドの出力を Sort-Object コマンドレッ
      トにパイプします。たとえば、任意の Windows PowerShell ドライブから、次のコ
      マンドを入力します。

	  get-childitem env: | sort name

      Set-Location コマンドレットを使用して、Env: ドライブに移動することもできます。

	  set-location env:

      Env: ドライブから使用する場合は、パス内の Env: ドライブ名を省略できます。
      たとえば、すべての環境変数を表示するには、次のコマンドを入力します。

	  get-childitem

      Env: ドライブ内から COMPUTERNAME 変数の値を表示するには、次のコマンドを入
      力します。

	  get-childitem computername

      また、Windows PowerShell の式パーサーを使用すると、コマンドレットを使用せ
      ずに環境変数の値を表示および変更できます。環境変数の値を表示するには、次の
      構文を使用します。

	  $env:<変数名>

      たとえば、WINDIR 環境変数の値を表示するには、Windows PowerShell コマンド 
      プロンプトで次のコマンドを入力します。

	  $env:windir

      この構文では、ドル記号 ($) は変数を示し、ドライブ名は環境変数を示しています。

  環境変数の変更
      環境変数に対する変更を保持するには、コントロール パネルの [システム] ([詳
      細設定] タブまたは [システムの詳細設定] 項目) を使用して、レジストリに変更
      を格納します。

      Windows PowerShell の環境変数を変更した場合、その変更は現在のセッションの
      みに影響します。この動作は、Windows ベース環境での Set コマンドおよび UNIX 
      ベース環境での Setenv コマンドの動作に似ています。

      また、変数の値を変更するアクセス許可も必要です。適切なアクセス許可なしに値
      を変更しようとすると、コマンドが失敗してエラーが表示されます。

      次の構文を使用すると、コマンドレットを使用せずに変数の値を変更できます。

          $env:<変数名> = "<新しい値>"

      たとえば、Path 環境変数の値に ";c:\temp" を追加するには、次の構文を使用し
      ます。

	  $env:path = $env:path + ";c:\temp"

      また、Set-Item、Remove-Item、Copy-Item などの Item コマンドレットを使用し
      て、環境変数の値の変更を行うこともできます。たとえば、Set-Item コマンドレ
      ットを使用して、Path 環境変数の値に ";c:\temp" を追加するには、次の構文を
      使用します。

          set-item -path env:path -value ($env:path + ";c:\temp")
	
      このコマンドでは値がかっこで囲まれているため、1 つの単位として解釈されます。

  環境変数の変更の保存
      すべての Windows PowerShell セッションで環境変数の値を作成または変更するに
      は、Windows PowerShell プロファイルに変更を追加します。

      たとえば、すべての Windows PowerShell セッションで、C:\Temp ディレクトリを 
      Path 環境変数に追加するには、Windows PowerShell プロファイルに次のコマンド
      を追加します。

	  $env:path = $env:path + ";c:\temp"

      CurrentUser、AllHosts プロファイルなど、既存のプロファイルにコマンドを追加
      するには、次のように入力します。

	  add-content -path $profile.CurrentUserAllHosts -value '$env:path = 
	  $env:path + ";c:\temp"'

  設定を格納する環境変数
      Windows PowerShell の機能は、環境変数を使用してユーザー設定を格納すること
      ができます。これらの変数はユーザー設定変数のように機能しますが、変数が作成
      されたセッションの子セッションに継承されます。ユーザー設定変数の詳細につい
      ては、「about_preference_variables」を参照してください。

      設定を格納する環境変数は次のとおりです。

        PSModulePath
            既定のモジュール ディレクトリへのパスを格納します。モジュールに対する
            完全なパスを指定しない場合、Windows PowerShell は指定されているディレ
            クトリにあるモジュールを探します。

            $env:PSModulePath の既定値は、次のとおりです。

                $home\Documents\WindowsPowerShell\Modules; $pshome\Modules
            
            Windows PowerShell は、"$pshome\Modules" の値をレジストリに設定します。
            Windows PowerShell を起動するごとに 
            "$home\Documents\WindowsPowerShell\Modules" の値を設定します。

            また、Program Files ディレクトリなど、その他のディレクトリにモジュー
            ルをインストールするセットアップ プログラムは、PSModulePath の値にイ
            ンストール場所を追加します。

            既定のモジュールのディレクトリを変更するには、PSModulePath 環境変数
            の値を変更します。

            たとえば、PSModulePath 環境変数の値に "C:\ps-test\Modules" ディレク
            トリを追加するには、次のコマンドを入力します。

                $env:PSModulePath = $env:PSModulePath + ";c:\ps-test\Modules"

            コマンドのセミコロン (;) は、一覧の新しいパスとその直前のパスとを区
            切ります。

            値を変更するコマンドをプロファイルに追加するか、またはコントロール 
            パネルの [システム] で、レジストリの PSModulePath 環境変数の値を変
            更しない限り、変更は現在のセッションにのみ影響します。
            
            詳細については、「about_Modules」を参照してください。

関連項目
    Environment (プロバイダー)
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_environment_variables
ご利用数: 1915742
感想・要望・問い合わせは こちら