процесс запуска powershell не знает об изменениях переменных среды (PATH) - PullRequest
2 голосов
/ 22 января 2020

Я использую powershell для установки ряда системных переменных среды, включая путь. Затем я запускаю задачу с помощью Start-Process. К сожалению, новый процесс имеет те же переменные среды, что и те, в которых был запущен powershell. Воспроизвести проблему

1) Измените ваш путь. Я удаляю %JAVA_HOME%/bin, открываю командное окно и вижу, что команда java не работает.

2) Запустите Powershell ISE

3) Добавьте %JAVA_HOME%/bin в систему ДОРОЖКА. Откройте новое командное окно и убедитесь, что команда java работает.

4) В ранее открытом окне Powershell введите команду start cmd, чтобы PowerShell открыла командное окно cmd.exe ("Команда" Незамедлительный"). В новом командном окне убедитесь, что java не работает.

Я ожидаю, что вновь запущенный процесс будет иметь свою собственную бесплатную копию переменных среды.

Можете ли вы сказать мне, как получить PowerShell для запуска нового задания и чтобы эта задача знала текущую среду?

Я пробовал

start cmd

Start-Process -FilePath "cmd"

Start-Process -FilePath "cmd" -UseNewEnvironment

& cmd

Спасибо!

1 Ответ

2 голосов
/ 22 января 2020

Следующая команда запустит процесс, который отделен от вызывающей среды, и вам будет доступна новая переменная.

Invoke-CimMethod -ClassName Win32_Process -Name Create -Arguments @{CommandLine = "cmd.exe"}

...