Environment Provider
プロバイダー名
Environment
ドライブ
Env:
簡易説明
Windows 環境変数へのアクセスを提供します。
詳細説明
Windows PowerShell 環境プロバイダーを使用すると、Windows PowerShell で Windows 環境変数を取得、追加、変更、クリア、および削除できます。
環境プロバイダーは、環境変数を表すオブジェクトのみを含むフラットな名前空間です。変数には子の項目がありません。
各環境変数は System.Collections.DictionaryEntry クラスのインスタンスです。環境変数の名前はディクショナリ キーです。環境変数の値はディクショナリ値です。
環境プロバイダーは、Env: ドライブにデータ ストアを公開します。環境変数を操作するには、場所を Env: ドライブに変更するか ("set-location env:")、別の Windows PowerShell ドライブから作業します。別の場所から環境変数を参照するには、パスでドライブ名 "Env:" を指定します。
環境変数プロバイダーは、Invoke-Item を除き、名前に Item という名詞が含まれるすべてのコマンドレットをサポートします。また、Get-Content および Set-Content コマンドレットもサポートします。ただし、ItemProperty という名詞を含むコマンドレット、およびあらゆるコマンドレットの Filter パラメーターはサポートされません。
環境変数は、通常の名前付けの標準に従って命名する必要があります。また、名前に等号 (=) を使用することができません。
環境変数を変更した場合、その変更は現在のセッションにのみ影響します。変更を保存するには、変更を Windows PowerShell プロファイルに追加するか、Export-Console を使用して現在のセッションを保存します。
例
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 --------------------------
次のコマンドは、USERMODE 環境変数を作成し、Non-Admin という値を設定します。
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 は、検出した各オブジェクトの型に関する情報を返します。すべてのオブジェクトが同じ型である場合は、その型に関する情報を返します。この例では、すべての環境変数が 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 コマンドに渡されます。このコマンドは、ワイルドカード文字 (*) が指定された 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