Назад | Перейти на главную страницу

Переменные среды в 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 соответствует общесистемному пути в Свойства компьютера -> Переменные среды.

Есть ли у кого-нибудь идеи, что это может быть, или где я могу посмотреть?

Я могу попробовать две вещи.

  1. Запустить sfc /scannow чтобы увидеть, решит ли это какие-либо более серьезные проблемы.
  2. Проверьте реестр для Path ключ в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Что за тип. Следует сказать REG_EXPAND_SZ

У меня была очень похожая проблема - простым решением было добавить точка с запятой после псевдонима в определении пути.

Длинная история:

я использую node.js так что имейте NODE_HOME псевдоним, определенный через переменную пользовательской среды. Затем я добавляю этот псевдоним к своему ДОРОЖКА переменная окружения.

Я обнаружил, что после перезагрузки оболочка потеряла путь к NODE_HOME так npm и т. д. работать не будет. В чем дело?

При осмотре я вижу, что NODE_HOME установлен, но он волшебным образом приобрел точку с запятой.

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

ДОРОЖКА теперь заканчивается буквальной строкой % NODE_HOME% вместо расширенного пути к папке узла:

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

Исправить это:

Сначала удалите ошибочную точку с запятой в конце определения NODE_HOME.

Во-вторых, Добавить точка с запятой после NODE_HOME символ в определении ДОРОЖКА:

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

Теперь, когда я запускаю новую оболочку и расширяю ДОРОЖКА, он находит NODE_HOME:

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

И npm снова работает!

Я столкнулся с той же проблемой при настройке Maven ...

я нашел это пост на суперпользователе это пролило некоторый свет на проблему, но для меня это не сработало. Похоже, проблема заключалась в повышении прав, поскольку оболочка администратора работала, а оболочка пользователя - нет. В конце концов я решил просто воссоздать пользовательские переменные как системные переменные и добавить их в глобальный путь.

Это сработало для пары переменных, но у меня была одна пара, которая все равно не расширялась. Пару раз я воссоздавал их с новыми именами, но безрезультатно. Однако переменные, наконец, правильно расширились в пользовательской оболочке после того, как я отключил UAC, перезагрузился, снова включил UAC и снова перезагрузился.

ПРОБЛЕМА: У меня проблема была только синьилярная, насколько я вас правильно понимаю. Мой "Путь" содержал ...;% ANT_HOME% \ bin; ... Я правильно установил переменную ANT_HOME в Системные (не пользовательские) переменные, а CMD -> SET так же, как "echo% ANT_HOME%" распечатал ее правильно .

РЕШЕНИЕ: Я решил проблему перемещение папки из c: \ dev \ 3rd \ ant ... к c: ** Программные файлы (x86) ** \ dev \ 3rd \ ant ...