Environment Provider

提供程序名称

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

另请参阅

概念

about_providers