[玩转系统] 如何在 PowerShell 中设置环境变量
作者:精品下载站 日期:2024-12-14 06:31:59 浏览:14 分类:玩电脑
如何在 PowerShell 中设置环境变量
操作系统和应用程序使用环境变量来存储配置设置、系统路径和其他信息。您计算机上的所有程序都可以访问此数据。我们可以使用PowerShell来查看、更改或设置环境变量。
要设置环境 (env) 变量,您通常使用“系统属性”屏幕,但当您需要在多台计算机上添加或更改变量时,使用 PowerShell 会更容易。
在本文中,我将解释不同的环境变量以及如何使用 PowerShell 设置环境变量。
环境变量
在我们了解如何使用 PowerShell 管理变量之前,我们首先仔细看看环境 (env) 变量,以便更好地理解它们。环境变量基本上是键值对,是进程运行环境的一部分。
Windows 上可以定义三个范围的环境变量:
-
用户范围
机器(系统)范围
工艺范围
用户范围主要包含用户配置文件文件夹的路径,例如 OneDrive、Appdata 或临时文件夹。在机器范围内,您将找到有关设备的信息以及系统查找和执行命令或程序的关键变量,而无需每次都指定完整路径。
进程范围包含当前进程(或 PowerShell 会话)中的变量。它还将列出用户和机器范围内的所有变量。当会话关闭时,添加到流程范围的自定义变量将会丢失。
因此,要设置重新启动后仍然可用的环境变量,并且对于所有用户,您需要将它们存储在计算机范围内。为此,您需要拥有正确的权限。
使用 PowerShell 获取环境变量
在我们向系统添加新的环境变量之前,我们首先看一下如何在 PowerShell 中获取变量。我们可以使用两种方法在 Powershell 中获取和设置环境变量:.NET 方法 [System.Environment]
和 PowerShell 环境提供程序 $env:
。
要列出所有环境变量,您可以使用以下命令之一:
# .NET method
[System.Environment]::GetEnvironmentVariables()
# Environment provider, sorting them by name
Get-Item env:* | sort-object name
# Or in short:
gi env:* | sort name
# Using the drive method
dir env:
.NET 方法的优点是您可以指定变量的范围。这样我们就可以只列出用户环境变量作为例子。但是,当您知道需要哪个变量或想要查看所有变量时,环境提供程序当然要短得多。
因此,要仅查看用户环境变量,我们可以在.NET方法中指定用户范围。其他选项是机器
或进程
# Replace User with Machine or Process to view the other scopes
[System.Environment]::GetEnvironmentVariables([System.EnvironmentVariableTarget]::User)
查看具体环境变量
如果您想检查特定变量的值,那么您至少需要知道名称。然后我们可以使用 $env:
方法来查看变量的值:
# Get the OneDrive folder path
$env:OneDrive
例如,如果您不知道变量的确切名称,或者想要查看所有与 OneDrive 相关的变量,则可以将 Get-Item
cmdlet 与通配符 * 结合使用
:
# Get all variables that start with OneDrive
Get-Item env:OneDrive*
# Result
Name Value
---- -----
OneDrive C:\Users\ruud\OneDrive - Pixel Supply
OneDriveConsumer C:\Users\ruud\OneDrive
OneDriveCommercial C:\Users\ruud\OneDrive - Pixel Supply
# Or get all variables that contain the word Path
Get-Item env:*Path*
我们还可以通过.NET方法获取环境变量。为此,您需要使用命令[System.Environment]::GetEnvironmentVariable
。请注意,此命令看起来与 .NET 方法几乎相同,只是其末尾缺少 s
。
要列出 OneDrive 变量值,我们可以使用以下命令。请注意,我们还可以指定变量的范围,但这不是必需的。
[System.Environment]::GetEnvironmentVariable("OneDrive", "User")
在 PowerShell 中设置 ENV 变量
要在 PowerShell 中设置环境 (env) 变量,您可以使用两种方法:环境提供程序或 [System.Environment]::SetEnvironmentVariable
方法。推荐使用后者,因为它也允许您在机器(系统)范围内设置和更改变量。
例如,要创建一个新的环境变量 TenantId
,并使用我们的租户 ID 作为值,我们可以使用以下命令:
[System.Environment]::SetEnvironmentVariable('TenantId','11e1234-28gv-4413-aaf8-a1e8b7f4c3d6')
现在,如果我们查看该变量,我们可以看到它已设置为所需的值:
但有一个问题,如果关闭PowerShell,那么环境变量就消失了。原因是您添加的任何变量默认都存储在流程范围中。我们可以通过添加所需的范围来解决这个问题,例如机器范围:
笔记
要在机器范围内添加或更改变量,您需要具有提升的权限。在提升(管理员)模式下运行 PowerShell,否则您会收到错误“不允许请求的注册表访问”。[System.Environment]::SetEnvironmentVariable('TenantId','11e1234-28gv-4413-aaf8-a1e8b7f4c3d6', 'Machine')
如果我们现在查看机器范围内的环境变量,那么您将看到它已列出:
添加持久环境变量的另一个选项是在 PowerShell 配置文件中添加变量。这样,每次打开 PowerShell 时都会添加/更新环境变量。
例如,要添加新变量并更新默认 Path 变量,您可以在 Powershell 配置文件中添加以下两行:
$Env:UserPrincipalName = '[email protected]'
$Env:Path += ';C:\Tools
添加临时 ENV 变量
当添加变量时没有指定作用域时,它会自动存储在进程作用域中。这意味着当您关闭 PowerShell 会话时该变量将丢失。因此,当您需要添加临时环境变量时,此方法非常有用。
为此,我们可以使用前面描述的 .NET 方法,也可以使用变量语法或环境提供程序。变量语法 $Env:
是快速设置或更新变量的最简单方法:
$env:UserPrincipalName = '[email protected]'
如果需要更新该值,只需设置新值即可更改它。这些值始终是字符串,这意味着我们可以使用 += 运算符将值附加到变量。例如,这允许您向现有 PATH 变量添加路径。
# Change the value of the variable
$env:UserPrincipalName = '[email protected]'
# Adding a value to the existing one:
$env:Path += ';d:\scripts'
创建或更新变量的另一种方法是使用环境提供程序。例如,要快速添加环境变量,您可以使用 New-Item
cmdlet:
New-Item -Path Env:\UserPrincipalname -Value '[email protected]'
# Result
Name Value
---- -----
UserPrincipalname [email protected]
要更新或更改变量的值,您可以使用 Set-Item
cmdlet:
# Change the variable
Set-Item -Path Env:\UserPrincipalname -Value '[email protected]'
删除环境变量
环境变量不能为空。因此,要删除它,我们可以将该值设置为空字符串(或 $null
),也可以使用 Remove-Item
cmdlet 来删除该变量。
要将 PowerShell 中的环境变量设置为空字符串,您可以使用前面描述的方法之一:
# Set the variable to $null
$env:UserPrincipalName = $null
# Change it to an empty string
$env:UserPrincipalName = ''
# Set it to an empty string with the .NET method
[Environment]::SetEnvironmentVariable('UserPrincipalName ', '', 'Machine')
# Or use the Environment provider
Set-Item -Path Env:\UserPrincipalname -Value ''
另一种选择是使用 Remove-Item
cmdlet。它与上面的方法具有相同的效果,但可能更清楚您实际上是在删除变量。
Remove-Item -Path Env:\UserPrincipalname
包起来
设置环境变量 PowerShell 有不同的方法。最简单的方法当然是使用环境变量$env:
。但如果您想创建持久变量,则需要使用 .Net 方法并将范围设置为机器。
请记住,在创建变量时,请仔细检查该变量是否尚不存在。覆盖系统变量可能会对其他程序产生负面影响。
希望这篇文章对您有所帮助,如果您有任何疑问,请在下面发表评论。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag