非管理员命令提示符下PATH中的环境变量未扩展?


11

我有一台Windows 7计算机,当普通用户运行命令提示符时,无法在中扩展环境变量%PATH%。如果命令提示符改为以管理员身份运行(右键单击,以管理员身份运行),则将%PATH%适当扩展。

具体来说,%PATH%对于cmd.exe以用户身份运行(通过显示set path),如下所示:

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

...而%PATH%cmd.exe管理员身份运行如下:

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

我尝试以新用户身份登录以创建新的配置文件,并且该配置文件上的问题仍然存在。HKEY_CURRENT_USER\Environment\PATH不存在,并且HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path与“计算机属性”->“环境变量”中定义的系统范围路径匹配。

是否有人对这可能是什么或我在哪里可以看到任何想法?

Answers:


8

我可以尝试两件事。

  1. 运行sfc /scannow,看是否可以解决更大的问题。
  2. 检查注册表中的注册表PathHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment。是什么类型的。应该说REG_EXPAND_SZ

就是这样 如果我使用普通计算机并将其设置为REG_SZ问题,那么如果我将其重新设置为问题,该问题REG_EXPAND_SZ将得到解决。
史蒂夫·维格诺

@Steve-太好了!我什至学到了一些:)
Nixphoe 2011年

1
但是我不知道。为什么会在注册表中创建具有错误值类型的环境变量?我以前不记得有这个问题,我使用的是Windows 8.1 Update 1,看来即使在XP中也可能发生此问题!support.microsoft.com/kb/329308
阿德里安·佩雷斯

0

我在尝试配置Maven时遇到了相同的问题...

在“超级用户”上发现了这篇文章,此问题提供了一些启示,但对我而言不起作用。问题似乎与权限提升有关,因为管理外壳程序可以工作,而用户外壳程序则行不通。我最终决定只是将用户变量重新创建为系统变量,然后将其添加到全局路径。

这适用于几个变量,但是我有一对仍然无法扩展。我几次用新名称重新创建它们,但无济于事。但是,在禁用UAC,重新引导,重新启用UAC并再次重新引导之后,变量最终在用户外壳中正确扩展。


0

我有一个非常类似的问题-简单的解决方案是在路径定义中的别名后面添加分号

很长的故事:

我使用的node.js是通过用户环境变量定义的NODE_HOME别名。然后,我将此别名附加到我的PATH环境变量中。

我发现,重新引导后,外壳失去了指向NODE_HOME的路径,因此npm等无法正常工作。这是怎么回事?

经过检查,我发现已设置NODE_HOME,但是它神奇地获得了分号。

C:\Users\ob>echo %NODE_HOME%
C:\Users\ob\node-8.11.1;

PATH现在以文字字符串%NODE_HOME%结束,而不是节点文件夹的扩展路径:

C:\Users\ob>echo %PATH%
C:\Program...rams\Git\cmd;%NODE_HOME%

要解决这个问题:

首先,从NODE_HOME定义的末尾删除错误的分号。

其次,在PATH的定义中的NODE_HOME符号后添加一个分号:

C:\Program...rams\Git\cmd;%NODE_HOME%;

现在,当我启动一个新的shell并展开PATH时,它将找到NODE_HOME

C:\Users\ob>echo %PATH%
C:\Program...ams\Git\cmd;C:\Users\tkobo\Installations\node-8.11.1;

npm再次工作!


-1

问题:据我所知,我的问题只是sinlar。我的“路径”包含...;%ANT_HOME%\ bin; ...我在系统(不是用户)变量下正确设置了变量ANT_HOME,并且CMD-> SET与“ echo%ANT_HOME%”相同,因此正确打印了它。

解决方案:我通过将文件夹从c:\ dev \ 3rd \ ant ... 移至 c:** Programm Files(x86)** \ dev \ 3rd \ ant ... 解决了该问题。

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.