Windows:如何从命令行将程序添加到系统的path环境variables?

我正在寻找永久性的添加一个目录到大量的Windows机器上可用的%PATH%环境。 有没有办法从命令行( cmd )做到这一点,所以我可以编写一个解决scheme,而不是在几十个服务器上使用GUI。

我怎样才能做到这一点?

到目前为止,最简单的方法是通过使用Windows 7 / Server 2008及更高版本中包含的setx命令,或作为Windows Server 2003 Resource Kit for XP和Server 2003系统的一部分。

您可以使用setx命令在%PATH%variables中指定一组全新的目录,或者使用一些额外的逻辑来追加一个值。 假设我想将C:\stuff目录添加到%PATH% 。 我会这样做,如下所示:

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

这附加,C:\stuff到当前path覆盖现有的path与其当前值,其次是,C:\stuff 。 path环境variables是逗号分隔的。 /M开关在HKLM(系统范围)registryconfiguration单元中进行更改,而不是HKCU(当前用户)registryconfiguration单元中的更改。

您可以将其引入login/启动脚本,或者使用/s开关将远程服务器指定为目标,并从工作站进行更改。 例如,下面的内容会将stuff目录添加到myserver.mydomain.com上的path中,并使用mydomainadmin用户的凭据。

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

通常的限制条件适用,主要是更改全局环境variables只会影响用户下次login时的会话,并且只有在下次检查时才会应用到应用程序中,这通常是在启动时进行的,所以最简单的方法是将其应用于所有内容是要重启服务器,但是如果你明确地知道用户或服务需要更改,可以采取更less的破坏性措施来应用更改。

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

您可以使用GPP设置在%PATH%variables中指定一组全新的目录,或者使用“创build” 动作首选项来追加一个值。 假设我想将C:\scripts目录添加到%PATH% 。 我会这样做,如下所示:

PATH属性

GPO总结

这将C:\scripts附加到当前的%PATH% 。 path环境variables是分号分隔的。 使用GPO的“计算机configuration”部分在HKLM(系统范围)registryconfiguration单元中进行更改,而不是HKCU(当前用户)registryconfiguration单元。

不知道为什么我使用了查找,但在那里

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

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

通常的资格适用。 更改系统环境variables只会在启动时生效,所以最简单的方法就是重新启动。

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

PATH [[drive:] path [; …] [;%PATH%] PATH;

typesPATH; 清除所有searchpath设置,并指示cmd.exe仅在当前目录中search。 键入不带参数的PATH来显示当前path。 在新path设置中包括%PATH%会导致旧path被追加到新设置。

要将c:\ stuff添加到pathvariables中,请运行:

pathc:\ stuff;%path%