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-Content 和 Set-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