Windows-7
PATH 中的環境變數未針對非管理員命令提示符展開?
我有一台 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
與電腦屬性 -> 環境變數中定義的系統範圍路徑匹配。有沒有人知道這可能是什麼,或者我可以在哪裡看?
我可能會嘗試兩件事。
- 執行
sfc /scannow
以查看是否可以解決任何更大的問題。- 檢查系統資料庫中的
Path
鍵HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
。什麼類型。應該說**REG_EXPAND_SZ
**
我有一個非常相似的問題 - 簡單的解決方案是在路徑定義中的別名後添加一個分號。
很長的故事:
我正在使用通過使用者環境變數定義
node.js
的NODE_HOME別名。然後我將此別名附加到我的PATH環境變數中。我發現重新啟動後,shell 失去了到NODE_HOME的路徑,所以
npm
etc. 將無法工作。這是怎麼回事?檢查時,我看到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
再次工作!