如何在不注销的情况下修改用户的 PATH 环境变量?

nin*_*ded 26 windows environment-variables path

这个问题几乎说明了一切;我有用户无权编辑自己的PATH环境变量,如果他们出于某种原因需要修改它,他们需要注销,以便管理员可以在PATH用户重新登录之前登录并为他们更改. 这并不理想。可以以更好的方式完成吗?

小智 24

对于没有管理员权限的帐户:

打开“用户帐户”并选择“更改我的环境变量”(http://support.microsoft.com/kb/931715)。

此对话框将显示您当前的用户变量以及系统变量。如果您还没有,您可能需要添加本地 PATH 变量。

例如,要更新路径以包含 Python 3.3 目录,请单击新建:

变量名称:PATH 变量值:%PATH%;C:\Python33

这通过获取当前系统 PATH 并添加到其中来创建本地 PATH。

  • 我必须考虑这个答案,“*我有用户没有权限编辑他们自己的 PATH*...”,并且这样做*永久*,比其他人更好。做得很好。想知道为什么从“我的电脑”点击它是受管理员保护的,如果不是这样?只需像 UI 以这种方式访问​​时一样保护非本地字段。 (2认同)

Joh*_*ers 14

我的电脑/属性/高级/环境变量。除了已经打开的命令提示符窗口之外,那里的更改会立即生效。无需注销并重新登录。

注意:如果您无权访问该窗口,则可以通过rundll32 sysdm.cpl,EditEnvironmentVariables从“运行”窗口或命令行运行来获取它。


Kri*_*nha 9

除了上面的答案之外,您还可以更新注册表(其优点是可编写脚本):

PATH 变量存储在 HKEY_CURRENT_USER\Environment 中。

读取当前路径:

reg query HKEY_CURRENT_USER\Environment /v PATH
Run Code Online (Sandbox Code Playgroud)

要将值 c:\somedir 附加到路径:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"
Run Code Online (Sandbox Code Playgroud)

请注意,进程在启动时会读取环境,因此您必须重新启动进程才能获取新路径。

更新:我发现的另一种方法是运行:

rundll32 sysdm.cpl,EditEnvironmentVariables
Run Code Online (Sandbox Code Playgroud)

同样,这个小程序编辑注册表,与上面的效果相同。


Ber*_*mus 7

您可以随时调用具有管理员权限的 cmd shell(或任何其他 runas 方法),并使用诸如SETX 之类的工具来永久修改路径。现有的 shell 和/或正在运行的程序可能会使用旧路径,但任何新的 shell/程序都将使用新设置。


Joh*_*nie 5

在命令提示符下,您可以执行以下操作:

set PATH=C:\somedir;%PATH%
Run Code Online (Sandbox Code Playgroud)

但这只会更改命令提示符(以及从命令提示符启动的任何应用程序)。假设您希望这适用于用户所做的一切,您可以更改用户环境变量。右键单击“我的电脑”、“属性”、“高级”、“环境变量”,然后在“用于添加变量的用户变量:

PATH = C:\whatever
Run Code Online (Sandbox Code Playgroud)

当用户登录时,它会被添加到系统范围的路径中。