Переменные среды в 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
соответствует определенному общесистемному пути в Свойствах компьютера -> Переменные среды.
У кого-нибудь есть идеи, что это может быть, или где я могу посмотреть?
4 ответа
Две вещи, которые я мог бы попробовать.
- Запустить
sfc /scannow
чтобы увидеть, решает ли это какие-либо более серьезные проблемы в игре. - Проверьте реестр на наличие
Path
ключ вHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
, Что за тип Следует сказатьREG_EXPAND_SZ
У меня была очень похожая проблема - простым решением было добавить точку с запятой после псевдонима в определении пути.
Длинная история:
я использую 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
снова работает!
Я столкнулся с той же проблемой при попытке настроить Maven...
Я нашел этот пост в Superuser, который пролил некоторый свет на проблему, но она не сработала для меня. Казалось, проблема заключается в повышении прав, поскольку оболочка администратора будет работать, а пользовательская - нет. Наконец, я решил просто воссоздать пользовательские переменные в качестве системных переменных и добавить их в глобальный путь.
Это сработало для пары переменных, но у меня была одна пара, которая все еще не расширялась. Я воссоздал их с новыми именами пару раз, но безрезультатно. Тем не менее, переменные наконец-то правильно расширились в пользовательской оболочке после того, как я отключил UAC, перезагрузил, снова включил UAC и снова перезагрузил.
ПРОБЛЕМА: Моя проблема была только зловещей, как я вас правильно понимаю. Мой "путь" содержал...;%ANT_HOME%\bin;... Я правильно установил переменную ANT_HOME в Системные (не пользовательские) переменные, а CMD -> SET так же, как "echo %ANT_HOME%", напечатал ее правильно,
РЕШЕНИЕ: Я решил проблему, переместив папку из c:\dev\3rd\ant... в c:**Programm Files (x86)**\dev\3rd\ant...