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


22

这个问题几乎说明了一切。我有一些用户无权编辑自己的PATH环境变量,并且如果出于某种原因需要对其进行修改,则需要注销,以便管理员可以登录并更改其环境变量PATH,然后再重新登录。这不理想。可以用更好的方法吗?


很好奇-但是如何防止用户更改自己的默认环境?您是否只是拒绝他们访问“我的电脑” /“属性” /“高级” /“环境变量”?他们仍然可以通过多种方法修改HKCU /环境。
库珀


组策略首选项?只是一个想法。
西蒙·卡特琳

Answers:


6

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


25

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

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

该对话框将显示您当前的用户变量以及系统变量。如果尚未添加本地PATH变量,则可能需要添加。

例如,要更新您的路径以包括Python 3.3目录,请单击“新建”:

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

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


2
我必须认为这个答案是:“ 我的用户无权编辑自己的PATH ...”,并且永久地做到这一点,比其他人做得更好。做得非常好。想知道为什么不从“我的电脑”中单击该内容是否受管理员保护?就像用这种方式访问​​UI一样保护非本地字段。
鲁芬2014年

10

我的电脑/属性/高级/环境变量。已打开的命令提示符窗口,此处的更改将立即生效。无需注销并重新登录。

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


我网络上的普通用户无法像这样更改自己的环境变量,除非我可以通过“ run as ...”或类似方式以
特权

4

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

set PATH=C:\somedir;%PATH%

但这只会更改命令提示符(以及从命令提示符启动的所有应用)。假设您希望将其应用于用户所做的所有事情,那么您将更改用户环境变量。右键单击“我的电脑”,“属性”,“高级”,“环境”变量,然后在“用于添加变量的用户变量”中:

PATH = C:\whatever

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


我需要更改PATH中已经存在的条目的顺序,因此在这种情况下,从用户变量中删除不适合我
09年

setx,正如@Berzemus提到的那样,可以/m永久编辑系统PATH变量(开关)。
专利

2

即使用户没有“管理员”权限,用户也可以在命令提示符处设置PATH变量,该变量将覆盖系统范围的PATH变量。该更改将对用户从该命令提示符启动的新进程生效。(进行更改后,现有的Explorer进程以及用户正在运行的任何其他进程将不会“看到”更改。)


1

除了上述答案外,您还可以更新注册表(具有可编写脚本的优点):

PATH变量存储在HKEY_CURRENT_USER \ Environment中。

读取当前路径:

reg query HKEY_CURRENT_USER\Environment /v PATH

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

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

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

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

rundll32 sysdm.cpl,EditEnvironmentVariables

同样,此小程序编辑注册表并具有与上述相同的效果。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.