13

В диспетчере задач Windows есть столбец с именем Командная строка, в котором показана команда, запустившая данную задачу, со всеми параметрами и параметрами, например:

test.exe -V -A 127.0.0.1 -P 6062

Теперь я должен определить определенную задачу, которая прослушивает определенный порт и / или была вызвана с определенной комбинацией переключателей. Моя цель - закрыть выбранную задачу, но не другие, поэтому, если запущено несколько задач test.exe , я не могу просто закрыть все задачи, возвращаемые:

tasklist /fo csv /nh /fi "imagename eq test.exe"

К сожалению, похоже, что ни список tasklist ни pslist (здесь) не могут вернуть поле командной строки . Как я могу преодолеть эту проблему?

1 ответ1

27

Как насчет этого:

wmic process where caption="test.exe" get commandline

И если вы сделаете это, вы также получите ProcessId для уничтожения:

wmic process where caption="test.exe" get commandline,processid

wmic также имеет переключатель для вывода в CSV. Так:

wmic /output:c:\temp\proc.csv process where caption="test.exe" get commandline,processid /format:csv

Примечание. Если вы получили сообщение об ошибке с последним (Invalid XSL format (or) file name), вам необходимо скопировать csv.xml из %WINDIR%\System32\wbem\en-US в %WINDIR%\System32\wbem . Вы можете прочитать об этой ошибке здесь .


Вы также можете использовать PowerShell:

Get-WmiObject win32_process -Filter "name like '%test.exe'"|select CreationDate,ProcessId,CommandLine|ft -AutoSize`

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .