Как получить информацию о командной строке для процесса в PowerShell или С# - программирование

Как получить информацию о командной строке для процесса в PowerShell или С#

например: если я запустил notepad.exe c:\autoexec.bat,

Как я могу получить c:\autoexec.bat в Get-Process notepad в PowerShell?

Или как я могу получить c:\autoexec.bat в Process.GetProcessesByName("notepad"); в С#?

4b9b3361

Ответ 1

В PowerShell вы можете получить командную строку процесса через WMI:

$process = "notepad.exe"
Get-WmiObject Win32_Process -Filter "name = '$process'" | Select-Object CommandLine

Обратите внимание, что для доступа к этой информации о процессах, запущенных в контексте другого пользователя, вам необходимы права администратора. Как обычный пользователь, он доступен только для процессов, запущенных в вашем собственном контексте.

Ответ 2

Этот ответ превосходный, однако для будущей защиты и для будущего вам одолжения. Если вы не используете довольно старую powershell (в этом случае я рекомендую обновление!) Get-WMIObject был заменен Get-CimInstance Привет, сценарий Guy reference

Попробуйте это

$process = "notepad.exe"
Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine