Просмотр переменных среды процесса в Windows
Есть ли способ просмотреть переменные среды конкретного процесса. Я знаю, что могу видеть их с помощью Process Explorer. Тем не менее, мне нужно использовать их в пакетном или PowerShell сценарий. Есть команда, которая делает это. Могу ли я использовать файл procxp.exe из Проводника процессов, чтобы получить эту информацию для использования в следующем сценарии?
2 ответа
Для Windows это грязно, но несложно с использованием Python.psutil.Process.environ()
библиотечная функция .
В одном терминале
$ $ENV:test = 'abc'
$ $PID
108444
В другой:
$ python -c 'import psutil; print(psutil.Process(pid=108444).environ()["TEST"])'
abc
(Обратите внимание, что имена переменных в Windows пишутся с заглавной буквы.)
Я тестировал это в macOS и Linux (RHEL8), и это не работает. Этотpsutil
функциональность работает в режиме реального времени в Windows, но не гарантируется для всех ОС. В документации сказано следующее:
Примечание. Это может не отражать изменения, внесенные после запуска процесса.
Попробуйте следующее в powershell:
(Get-Process {Process image name here}).StartInfo.EnvironmentVariables
ИЛИ ЖЕ
(Get-Process -id {PID here}).StartInfo.EnvironmentVariables