Змінні середовища в 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

Це було все. Якщо я беру звичайну машину і встановлюю її, REG_SZто проблема виникає, якщо я повертаю REG_EXPAND_SZїї до неї, вона виправляється.
Стів Віньйо

@Steve - Солодке! Я навіть щось про це дізнався :)
Ніксфо

1
Але мені цікаво Чому він створює ці редовища з неправильним типом значення в реєстрі? Я не пам’ятаю, як у мене була ця проблема раніше, я використовую 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: ** Файли програм (x86) ** \ dev \ 3rd \ ant ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.