Environment プロバイダー

適用対象: Windows PowerShell 4.0, Windows PowerShell 5.0

プロバイダー名

環境

ドライブ

Env:

概要

Windows 環境変数へのアクセスを提供します。

詳細説明

Windows PowerShell Environment プロバイダーでは、Windows PowerShell の Windows 環境変数を取得、追加、変更、消去、削除できます。

Environment プロバイダーは環境変数を表すオブジェクトのみを含むフラットな名前空間です。変数に子項目はありません。

各環境変数は System.Collections.DictionaryEntry クラスのインスタンスです。変数の名前はディクショナリ キーです。環境変数の値はディクショナリ値です。

Environment プロバイダーは Env: ドライブでそのデータ ストアを公開します。環境変数を使用するには、Env: ドライブ (「set-location env:」) に場所を変更するか、別の Windows PowerShell ドライブから使用できます。別の場所から環境変数を参照するには、パスに Env: ドライブ名を使用します。

Environment プロバイダーは、Invoke-Item コマンドレットを除き、名詞「Item」を含むすべてのコマンドレットをサポートします。また、Get-Content コマンドレットと Set-Content コマンドレットをサポートします。ただし、名詞「ItemProperty」が含まれるコマンドレットはサポートせず、また、すべてのコマンドレットで Filter パラメーターをサポートしません。

環境変数は通常の命名規則標準に準拠する必要があります。また、名前に等号 (=) を含めることはできません。

環境変数を変更した場合、現在のセッションのみが影響を受けます。変更を保存するには、Windows PowerShell プロファイルに変更を追加するか、Export-Console を使用して現在のセッションを保存します。

機能

ShouldProcess

Env:ドライブに移動する

-------------------------- 例 1 --------------------------

このコマンドは現在の場所を Env: ドライブに変更します。

set-location env:

このコマンドは Windows PowerShell のあらゆるドライブから実行できます。ファイル システム ドライブに戻るには、ドライブ名を入力します。たとえば、「set-location c:」と入力します。

環境変数を取得する

-------------------------- 例 1 --------------------------

このコマンドは現在のセッションにあるすべての環境変数を一覧表示します。

get-childitem -path env:

このコマンドはすべての Windows PowerShell ドライブから使用できます。

-------------------------- 例 2 --------------------------

このコマンドは WINDIR 環境変数を取得します。

get-childitem -path env:windir

-------------------------- 例 3 --------------------------

このコマンドは現在のセッションにあるすべての環境変数の一覧を取得し、名前で並べ替えます。

get-childitem  | sort-object -property name

既定では、環境変数は Windows PowerShell により検出された順序で表示されます。このコマンドは Env: ドライブで送信されます。このコマンドを別のドライブから実行するときは、Env: の値と共に Path パラメーターを追加します。

新しい環境変数の作成

-------------------------- 例 1 --------------------------

このコマンドは値 Non-Admin で USERMODE 環境変数を作成します。

new-item -path . -name USERMODE -value Non-Admin

現在の場所は Env: ドライブにあるため、Path パラメーターの値はドット (.) です。ドットは現在の場所を表します。Env: ドライブにいない場合、Path パラメーターの値は Env: になります。

環境変数のプロパティとメソッドの表示

-------------------------- 例 1 --------------------------

このコマンドは Get-ChildItem コマンドレットを使用し、すべての環境変数を取得します。

get-childitem -path env: | get-member

パイプライン演算子 (|) は結果を Get-Member に送信します。このコマンドレットがオブジェクトのメソッドとプロパティを表示します。Env: ドライブの一連の環境変数など、Get-Member に一連のオブジェクトをパイプで送ると、Get-Member はその中の各オブジェクトを個別に評価します。その後、Get-Member は見つかった各オブジェクト タイプの情報を返します。すべてのオブジェクトが同じ種類の場合、その 1 つのオブジェクト タイプに関する情報が返されます。この場合、すべての環境変数が DictionaryEntry オブジェクトです。一連の DictionaryEntry オブジェクトに関する情報を得るには、Get-Member の InputObject パラメーターを使用します。たとえば、「get-member -inputobject (get-childitem env:)」と入力します。InputObject パラメーターを使用すると、Get-Member はコレクションのオブジェクトではなく、コレクションを評価します。

-------------------------- 例 2 --------------------------

このコマンドは WINDIR 環境変数のプロパティの値を一覧表示します。

get-item env:windir | format-list -property *

このコマンドは Get-Item コマンドレットを使用し、WINDIR 環境変数を表すオブジェクトを取得します。パイプライン演算子 (|) は結果を Format-List コマンドに送ります。Format-List コマンドは Property パラメーターとワイルドカード文字 (*) を使用し、WINDIR 環境変数のすべてのプロパティの値を書式設定し、表示します。

環境変数のプロパティの変更

-------------------------- 例 1 --------------------------

このコマンドは Rename-Item コマンドレットを使用し、作成した USERMODE 環境変数の名前を USERROLE に変更します。

rename-item -path env:USERMODE -newname USERROLE

この変更は DictionaryEntry オブジェクトの Name、Key、PSPath プロパティに影響を与えます。システムが使用する環境変数の名前は変更しないでください。これらの変更は現在のセッションにのみ影響を与えますが、システムまたはプログラムの誤作動の原因になりかねません。

-------------------------- 例 2 --------------------------

このコマンドは Set-Item コマンドレットを使用し、USERROLE 環境変数の値を Administrator に変更します。

set-item -path env:USERROLE -value Administrator

環境変数のコピー

-------------------------- 例 1 --------------------------

このコマンドは USERROLE 環境変数の値を USERROLE2 環境変数にコピーします。

copy-item -path env:USERROLE -destination env:USERROLE2

環境変数の削除

-------------------------- 例 1 --------------------------

このコマンドは現在のセッションから USERROLE2 環境変数を削除します。

remove-item -path env:USERROLE2

このコマンドはすべての Windows PowerShell ドライブで使用できます。Env: ドライブにいる場合、パスからドライブ名を省略できます。

-------------------------- 例 2 --------------------------

このコマンドは USERROLE 環境変数を削除します。

clear-item -path env:USERROLE

See Also

Other Resources

about_Providers