Windows:如何从命令行将程序添加到系统的路径环境变量中?

Windows:如何从命令行将程序添加到系统的路径环境变量中?

我想要永久地将目录添加到%PATH%大量 Windows 机器上的环境中。有没有办法从命令行 ( cmd) 执行此操作,以便我可以编写解决方案脚本,而不必在数十台服务器上使用 GUI。

我该如何实现这一目标?

答案1

到目前为止,最简单的方法是使用setx命令,包含在 Windows 7/Server 2008 及更高版本中,或作为Windows Server 2003 资源工具包适用于 XP 和 Server 2003 系统。

您可以使用setx命令在变量中指定一组全新的目录%PATH%,或者使用一些额外的逻辑附加一个值。假设我想将目录添加C:\stuff%PATH%。我会按如下方式操作:

setx PATH“%PATH%,C:\stuff”/ M

这会将,C:\stuff当前路径附加到当前路径,方法是用其当前值覆盖现有路径,后跟,C:\stuff。路径环境变量以逗号分隔。/M开关在 HKLM(系统范围)注册表配置单元中进行更改,而不是 HKCU(当前用户)注册表配置单元。

您可以将其放入登录/启动脚本中,或使用开关/s指定远程服务器作为目标,然后从您的工作站进行更改。例如,下面的命令会将 stuff 目录添加到 myserver.mydomain.com 上的路径,其中包含用户的凭据mydomainadmin

setx /s myserver.mydomain.com /u mydomain\mydomainadmin /p mypassword PATH "%PATH%,C:\stuff" /M

通常的限定条件适用,主要是更改全局环境变量只会影响下次登录时的用户会话,并且只会在下次检查时应用于应用程序(通常是在启动时),因此最简单的方法就是重新启动服务器,但如果您具体知道哪些用户或服务需要更改,您可以采取较少破坏性的措施来应用更改。

答案2

到目前为止,最简单的方法是使用组策略首选项客户端扩展,(GPP)包含在 Windows 7/Server 2008 及更高版本中,或作为更新适用于 XP 和 Server 2003 系统。

您可以使用 GPP 设置在变量中指定一组全新的目录%PATH%、“替换”,或使用“创建”附加一个值操作首选项。假设我想将目录添加C:\scripts%PATH%。我会按如下方式操作:

PATH 属性

GPO 摘要

这会附加C:\scripts到当前%PATH%。路径环境变量以分号分隔。使用 GPO 的计算机配置部分会在 HKLM(系统范围)注册表配置单元中进行更改,而不是 HKCU(当前用户)注册表配置单元。

不确定为什么我用 find 但它就在那里

您可以将其放入现有 GPO,或使用单独的 GPO 来定位特定工作站/用户。例如,下面的操作将脚本目录仅添加到计算机 ISC-JSCOTT 上的路径中。

请使用组而不是用户或计算机进行过滤

适用通常的条件。更改系统环境变量只会在启动时生效,因此让此更改应用于所有内容的最简单方法是重新启动。

答案3

path 的帮助给出了答案。Y:>path /? 显示或设置可执行文件的搜索路径。

PATH [[驱动器:]路径[;...][;%PATH%] PATH ;

键入 PATH ; 可清除所有搜索路径设置并指示 cmd.exe 仅在当前目录中搜索。键入不带参数的 PATH 可显示当前路径。在新路径设置中包含 %PATH% 会导致将旧路径附加到新设置中。

要将 c:\stuff 添加到路径变量,请运行:

路径 c:\stuff;%path%

相关内容