Почему PATH среды Powershell отличается от PATH системной среды?

У меня такая странная ситуация:

Переменная PATH моего пользователя и системы отличается от переменной PATH в powershell.

Когда я делаю:

PS C:\$env:path
C:\Windows\System32\WindowsPowerShell\v1.0\;c:\oldpath

Однако это не правильно, похоже, что оно застряло в какой-то старой переменной PATH моей системы, поэтому ни одно из использованных мной обновлений не изменило эту переменную (я перезагружаюсь после каждого изменения в тесте).

Почему это происходит? Должен ли я установить переменную PATH только для powershell?

1 ответ

Решение

Изменение может быть "отложено", поэтому попробуйте одно или несколько из следующих решений:

  • Выйдите и снова включите;
  • Диспетчер задач> Перезагрузите "Проводник Windows" (explorer.exe)
  • Перезапустите приложение запуска (launchy, SlickRun и т. Д.)
  • перезагружать

Объяснение:
Powershell унаследует среду процесса, который его запустил (зависит от того, как вы его запустите). Обычно это интерактивная оболочка (explorer.exe). Когда вы изменяете среду из свойств компьютера, вы изменяете среду explorer.exe, поэтому, если вы запускаете powershell из explorer.exe (например, из меню "Пуск"), вы должны увидеть новую среду.

Однако, если вы запускаете его из чего-то другого (например, оболочки cmd.exe, которую вы уже открыли), вы этого не сделаете, поскольку этот процесс был запущен в старой среде.

Другими словами: будьте осторожны, как вы запускаете вещи.

В моем случае я установил приложение, которое неправильно добавило себя в PATH, создав профиль PowerShell, который переопределит $env:PATH и удалял существующую конфигурацию каждый раз, когда я запускал powershell.

Проверьте, есть ли у вас профиль на USER\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 и если он делает что-нибудь подозрительное, например настройку $env:PATH.

Другие вопросы по тегам