tasklist로 작업을 호출 한 명령을 얻는 방법?


18

Windows 작업 관리자에는 명령 줄 이라고 표시된 열이 있습니다.이 열에 는 지정된 스위치와 매개 변수와 함께 주어진 작업을 시작한 명령이 표시됩니다.

test.exe -V -A 127.0.0.1 -P 6062

이제 특정 포트에서 수신 대기하거나 특정 스위치 조합으로 호출 된 특정 작업을 식별해야합니다. 내 목표는 선택한 작업을 닫는 것이지만 다른 작업은 닫지 않는 것이므로 여러 test.exe작업이 실행 중이면 반환 된 모든 작업을 간단히 닫을 수는 없습니다.

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

불행하게도이 보인다도 tasklistpslist( 여기 )를 반환 할 수있는 명령 줄 필드. 이 문제를 어떻게 극복 할 수 있습니까?


어쩌면 netstat -aon | grep \.0:6062포트 6062로 무언가를 할 수 있고 마지막 열은 프로그램의 PID 일 것입니다. 그 정도면 충분하지 않습니다. tasklist /FI "PID eq <PID>"실행 파일을 다시 제공하십시오.
Rik

@Rik 슬프게도, 포트 자체로는 올바른 작업을 식별하기에 충분하지 않기 때문에 충분하지 않으므로 명령 줄 인수도 참조해야합니다.
István Zachar

같은 포트에서 여러 프로그램이 수신하는 것을 상상할 수 없습니다 ... :) 그러나 process explorerSysinternals 에서 매개 변수를 가져올 수 있어야합니다 .이를 GUI에 표시 할 수 있습니다. 따라서 정보는 어딘가에 있어야합니다.
Rik

powershell 명령을 사용하고 있습니까? <<< Get-WmiObject win32_process-필터 " '% test.exe'와 같은 이름"| Create CreationDate, ProcessId, CommandLine | ft -AutoSize` >>> 여기를
Rik

@Rik, 포트는 물론 다르지만, 작업이 내가 죽여야 할 것인지 여부를 확인하기 위해 명령 줄 인수를 추출해야합니다.
István Zachar

답변:


35

이건 어때:

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

그리고이 작업을 수행하면 ProcessId가 종료됩니다.

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

wmiccsv로 출력하는 스위치도 있습니다. 그래서:

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`

고마워, 그게 wmic문제를 해결하고 이것으로 하루를 마무리합니다. :)
István Zachar

1
완벽-이것은 실제로 전체 명령 행을 제공합니다. 작업 관리자에는 처음 300 자 정도만 표시됩니다.
ArtOfWarfare
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.