web-dev-qa-db-ja.com

tasklistでタスクを呼び出したコマンドを取得するにはどうすればよいですか?

Windowsタスクマネージャには、Command Lineというラベルの付いた列があり、すべてのスイッチとパラメータを使用して、特定のタスクを開始したコマンドを示します。次に例を示します。

test.exe -V -A 127.0.0.1 -P 6062

次に、特定のポートでリッスンしているタスク、および/または特定のスイッチの組み合わせで呼び出されたタスクを特定する必要があります。私の目的は、選択したタスクを閉じることですが、他のタスクを閉じることはしないので、複数のtest.exeタスクが実行中です。次から返されるすべてのタスクを単純に閉じることはできません。

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

残念ながら、tasklistpslistここ )もコマンドラインを返すことができないようですフィールド。この問題を解決するにはどうすればよいですか?

19
István Zachar

これはどう:

_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`
_
36
Rik