Windows-7

PATH 中的環境變數未針對非管理員命令提示符展開?

  • May 18, 2018

我有一台 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與電腦屬性 -> 環境變數中定義的系統範圍路徑匹配。

有沒有人知道這可能是什麼,或者我可以在哪裡看?

我可能會嘗試兩件事。

  1. 執行sfc /scannow以查看是否可以解決任何更大的問題。
  2. 檢查系統資料庫中的PathHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment。什麼類型。應該說**REG_EXPAND_SZ**

我有一個非常相似的問題 - 簡單的解決方案是在路徑定義中的別名後添加一個分號

很長的故事:

我正在使用通過使用者環境變數定義node.jsNODE_HOME別名。然後我將此別名附加到我的PATH環境變數中。

我發現重新啟動後,shell 失去了到NODE_HOME的路徑,所以npmetc. 將無法工作。這是怎麼回事?

檢查時,我看到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再次工作!

引用自:https://serverfault.com/questions/300544