提供者名稱

Environment

磁碟機

Env:

簡短描述

提供 Windows 環境變數的存取權。

詳細描述

Windows PowerShell Environment 提供者可以用來取得、新增、變更、清除和刪除 Windows PowerShell 中的 Windows 環境變數。

Environment 提供者是指僅包含代表環境變數之物件一般命名空間。變數沒有子項目。

每個環境變數都是 System.Collections.DictionaryEntry 類別的執行個體。變數的名稱就是字典索引鍵。環境變數的值就是字典值。

Environment 提供者會在 Env: 磁碟機中公開其資料存放區。若要使用環境變數,請將您的位置變更為 Env: 磁碟機 ("set-location env:"),或是從其他 Windows PowerShell 磁碟機執行工作。若要從其他位置參考環境變數,請在路徑中使用磁碟機名稱 Env:。

環境變數提供者支援包含 Item 名詞的所有 Cmdlet,但 Invoke-Item 除外。此外,它也支援 Get-ContentSet-Content Cmdlet。不過,它既不支援包含 ItemProperty 名詞的 Cmdlet,也不支援任何 Cmdlet 中的 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 --------------------------

這個命令會建立值為 Non-Admin 的 USERMODE 環境變數:

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

因為目前的位置是 Env: 磁碟機,所以 Path 參數的值是點 (.)。該點代表目前位置。 如果目前的位置不是 Env: 磁碟機,Path 參數值就會是 Env:。

顯示環境變數的屬性和方法

-------------------------- 範例 1 --------------------------

這個命令會使用 Get-ChildItem Cmdlet 來取得所有環境變數:

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 Cmdlet 來取得代表 WINDIR 環境變數的物件。管線運算子 (|) 會將結果傳送至 Format-List 命令。該命令會使用 Property 參數搭配萬用字元 (*) 來格式化並顯示 WINDIR 環境變數的所有屬性值。

變更環境變數的屬性

-------------------------- 範例 1 --------------------------

這個命令會使用 Rename-Item Cmdlet,將您所建立的 USERMODE 環境變數名稱變更為 USERROLE:

rename-item -path env:USERMODE -newname USERROLE

這項變更會影響到 DictionaryEntry 物件的 Name、Key 和 PSPath 等屬性。 請勿變更系統所使用的環境變數名稱。雖然這些變更只會影響目前的工作階段,但是它們可能會造成系統或程式執行錯誤。

-------------------------- 範例 2 --------------------------

這個命令會使用 Set-Item Cmdlet,將 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

請參閱




目錄