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

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

Стив Виньо
источник

Ответы:

8

Две вещи, которые я мог бы попробовать.

  1. Запустите, sfc /scannowчтобы увидеть, решает ли это какие-либо более серьезные проблемы в игре.
  2. Проверьте реестр на Pathключ в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Что типа . Следует сказатьREG_EXPAND_SZ
Nixphoe
источник
Вот и все. Если я возьму обычную машину и установлю ее, REG_SZпроблема возникнет, если я верну ее обратно, REG_EXPAND_SZона исправится.
Стив Виньо
@ Стив - Сладкий! Я даже кое-что узнал об этом :)
Nixphoe
1
Но мне интересно. Почему он создает те переменные env с неправильным типом значения в реестре? Я не помню, чтобы у меня была эта проблема раньше, я использую Windows 8.1 Update 1, и кажется, что эта проблема могла возникнуть даже в XP! support.microsoft.com/kb/329308
Адриан Перес
0

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

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

Это работало для пары переменных, но у меня была одна пара, которая все еще не расширялась. Я воссоздал их с новыми именами пару раз, но безрезультатно. Тем не менее, переменные наконец-то правильно расширились в пользовательской оболочке после того, как я отключил 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 .

Во-вторых, добавьте точку с запятой после символа NODE_HOME в определении PATH :

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

Теперь, когда я запускаю новую оболочку и раскрываю PATH , он находит NODE_HOME :

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

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

Оскар Браво
источник
-1

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

РЕШЕНИЕ : Я решил проблему, переместив папку из c: \ dev \ 3rd \ ant ... в c: ** Programm Files (x86) ** \ dev \ 3rd \ ant ...

Lala.box
источник