about_Environment_Provider
提供程序名称
Environment
驱动器
Env:
功能
ShouldProcess
简短说明
提供对 Windows 环境变量的访问权限。
详细说明
PowerShell Environment 提供程序允许在 PowerShell 中获取、添加、更改、清除和删除环境变量和值。
环境变量是动态命名的变量,用于描述程序的运行环境。 Windows 和 PowerShell 使用环境变量来存储影响系统和进程执行的持久性信息。 与 PowerShell 变量不同,环境变量不受作用域限制。
Environment 驱动器是一个包含特定于当前用户会话的环境变量的平面命名空间。 环境变量没有子项。
Environment 提供程序支持本文中介绍的以下 cmdlet。
此提供程序公开的类型
每个环境变量都是 System.Collections.DictionaryEntry 类的实例。 变量的名称是字典键。 环境变量的值是字典值。
在 Environment 驱动器中导航
Environment 提供程序在 Env:
驱动器中公开其数据存储。 若要使用环境变量,请将位置更改为 Env:
驱动器 (Set-Location Env:
),或从另一个 PowerShell 驱动器进行操作。 若要从其他位置引用环境变量,请在路径中使用驱动器名称 Env:
。
Set-Location Env:
若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入:
Set-Location C:
还可以从任何其他 PowerShell 驱动器使用 Environment 提供程序。 若要从其他位置引用环境变量,请在路径中使用驱动器名称 Env:
。
Environment 提供程序还使用变量前缀 $env:
公开环境变量。 以下命令查看 ProgramFiles 环境变量的内容。 可以从任何 PowerShell 驱动器使用 $env:
变量前缀。
PS C:\> $env:ProgramFiles
C:\Program Files
还可以使用 $env:
变量前缀更改环境变量的值。 只要当前 PowerShell 会话处于活动状态,所做的任何更改就只与当前 PowerShell 会话相关。
注意
PowerShell 使用别名来让你熟悉如何使用提供程序路径。 dir
和 ls
等命令现在是 Get-ChildItem 的别名,cd
是 Set-Location 的别名。 而 pwd
是 Get-Location 的别名。
获取环境变量
此命令列出当前会话中的所有环境变量。
Get-Item -Path Env:
你可以从任何 PowerShell 驱动器使用此命令。
Environment 提供程序没有容器,因此上述命令在与 Get-ChildItem
一起使用时具有相同的效果。
Get-ChildItem -Path Env:
获取选定的环境变量
此命令获取 WINDIR
环境变量。
Get-ChildItem -Path Env:windir
还可以使用变量前缀格式。
$env:windir
创建环境变量
此命令创建值为“Non-Admin”的 USERMODE
环境变量。 -Path
参数值在 Env:
驱动器中创建新项。 只要当前 PowerShell 会话处于活动状态,就只能在该会话中使用新环境变量。
PS C:\> New-Item -Path Env: -Name USERMODE -Value Non-Admin
更改环境变量
重命名环境变量
此命令使用 Rename-Item
cmdlet 将创建的 USERMODE
环境变量的名称更改为 USERROLE
。 不要更改系统所使用的环境变量的名称。 尽管这些更改仅影响当前会话,但它们可能会导致系统或程序无法正常运行。
Rename-Item -Path Env:USERMODE -NewName USERROLE
更改环境变量
此命令使用 Set-Item
cmdlet 将 USERROLE
环境变量的值更改为“Administrator”。
Set-Item -Path Env:USERROLE -Value Administrator
复制环境变量
此命令将 USERROLE
环境变量的值复制到 USERROLE2
环境变量。
Copy-Item -Path Env:USERROLE -Destination Env:USERROLE2
移除环境变量
此命令从当前会话中删除 USERROLE2
环境变量。
Remove-Item -Path Env:USERROLE2
使用 Clear-Item 移除环境变量
此命令通过清除 USERROLE
环境变量的值来删除该环境变量。
Clear-Item -Path Env:USERROLE
使用管道
提供程序 cmdlet 接受管道输入。 可以使用管道将提供程序数据从一个 cmdlet 发送到另一个提供程序 cmdlet 来简化任务。 若要详细了解如何将管道与提供程序 cmdlet 配合使用,请参阅本文中提供的 cmdlet 参考。
获取帮助
从 Windows PowerShell 3.0 开始,你可以获取有关提供程序 cmdlet 的自定义帮助主题,它们介绍了这些 cmdlet 在文件系统驱动器中的行为方式。
若要获取针对文件系统驱动器进行自定义的帮助主题,请在文件系统驱动器中运行 Get-Help 命令,或使用 Get-Help 的 -Path
参数来指定文件系统驱动器。
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path env: