Как получить информацию о командной строке для процесса в PowerShell или С#
например: если я запустил notepad.exe c:\autoexec.bat
,
Как я могу получить c:\autoexec.bat
в Get-Process notepad
в PowerShell?
Или как я могу получить c:\autoexec.bat
в Process.GetProcessesByName("notepad");
в С#?
Ответы
Ответ 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