如何获取使用任务列表调用任务的命令?

Ist*_*har 23 windows task-manager batch command-line

Windows 任务管理器有一列标记为命令行,显示启动给定任务的命令,以及所有开关和参数,例如:

test.exe -V -A 127.0.0.1 -P 6062
Run Code Online (Sandbox Code Playgroud)

现在我必须确定正在侦听某个端口和/或使用某个交换机组合调用的某个任务。我的目标是关闭选定的任务,而不是其他任务,所以如果有多个test.exe任务正在运行,我不能简单地关闭所有返回的任务:

tasklist /fo csv /nh /fi "imagename eq test.exe"
Run Code Online (Sandbox Code Playgroud)

不幸的是,好像没有tasklist,也没有pslist在这里)能够返回的命令行领域。我怎样才能克服这个问题?

Rik*_*Rik 42

这个怎么样:

wmic process where caption="test.exe" get commandline
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你也会得到 ProcessId 杀死:

wmic process where caption="test.exe" get commandline,processid
Run Code Online (Sandbox Code Playgroud)

wmic也有一个输出到 csv 的开关。所以:

wmic /output:c:\temp\proc.csv process where caption="test.exe" get commandline,processid /format:csv
Run Code Online (Sandbox Code Playgroud)

注意:如果你得到一个错误,而且最后一个(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`
Run Code Online (Sandbox Code Playgroud)