在Unix上是否有一个等效于'ps'的命令可以列出Windows机器上的所有进程?

评论

Windows中从命令行启动和停止此过程可能很有用。

#1 楼

使用cmd.exe:


tasklist


如果使用Powershell:


get-process


通过WMI:


wmic进程


(也可以使用/node:ComputerOrIP查询远程计算机,还有很多其他方式可以自定义此命令:link)

评论


您可能希望将其通过管道传输到剪贴板,然后粘贴到记事本中:c:\> tasklist |夹

–基思
11年8月25日在21:04

具体来说,您可以尝试> tasklist / FI“ SERVICES eq wampapache”

–RiggsFolly
13年5月1日,0:25

如果我使用任务列表列出任务,那么如何从命令提示符处结束任务?

–凯尔·德莱尼(Kyle Delaney)
17年3月17日在21:59

如果使用Powershell,将其通过管道传输到Out-Gridview确实很方便,如下所示:“ Get-Process | Out-GridView”

–Charles Burge
18年6月1日在6:44

或者直接将其通过管道传输到文本文件中:C:> tasklist> C:\ myProcesses.txt

–P.Brian.Mackey
18/12/26在13:37

#2 楼

有一个名为Windows Management Instrumentation命令行工具(wmic.exe)的工具。

您可以调用wmic process list来查看所有进程。

评论


我找到了这个线程,同时尝试解决相同的问题,并想指出wmic对我来说效果很好。使用wmic,您可以使用/ format:csv或/ format:rawout选择最合适的输出进行解析。当心:wmic无法正确实现csv格式(即使字段包含嵌入式引号或逗号也不会引用字段),因此我被迫使用xml。

– JimN
2011年7月28日在2:05

@JimN-/ format:rawxml而不是/ format:rawout

–乔
2014年1月24日15:32

您可以使用wmic过滤任何进程吗?

– Kiquenet
2015年9月3日,下午5:40

如果您需要找到启动该过程的命令行,这就是答案

– Shane Gannon
16年2月15日在16:30

要减少要打印的列数:wmic进程获取ProcessId,Description,ParentProcessId,ReadOperationCount,WriteOperationCount,并按照@ShaneGannon的建议,您可以查询ParentProcessId来查找子进程,例如:justpaste.it/6kjou

– CPHPython
6月3日17:03

#3 楼

我想提一下WMIC(PAM的入门)可以做的更多。看看我的WMIC摘录页面,这是一个备忘单,在这里显示了使用WMIC的许多常用方法(显示了示例输出)

评论


一个简化的示例(较少的列):wmic进程获取ProcessId,Description,ParentProcessId,ReadOperationCount,WriteOperationCount

– CPHPython
6月3日15:58

关于WMIC和WMIC + PS的页面非常有用。

– sancho.s ReinstateMonicaCellio
7月11日12:14

#4 楼


任务列表
WMIC /OUTPUT:C:\ProcessList.txt过程获取标题,命令行,Processid



 WMIC /OUTPUT:C:\ProcessList.txt path win32_process get Caption,Processid,Commandline


#5 楼

我在Windows 7上尝试过。命令是:TASKLIST /FI "IMAGENAME eq application_name"

例如:c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"

要显示所有带有端口详细信息的进程:

c:\> TASKLIST


也可以使用c:\> pskill or tskill processname杀死该进程,例如

评论


任务列表/ FI“ IMAGENAME eq explorer.exe”返回整行作为输出。反正有没有只获得PID本身?

–起搏器
2015年5月5日,0:03

对于更令人难忘的命令,taskkill是tskill的同义词

–蘑菇人
17年5月5日在1:24

在8.1上,没有tskill唯一的taskkill,而SysInternals提供了pskill,而Windows没有提供。 (@KiritoBepsibane)

–dave_thompson_085
18年6月1日在6:59

#6 楼

来自sysinternals的tasklist或pslist。另外,PowerShell中的get-process也很棒。

#7 楼

如果使用Powershell,则具有“ ps”命令(别名为Get-Process)。

评论


默认情况下,此别名是一长串方便别名的一部分,这使习惯Unix命令的人们的工作变得更加轻松。可以通过Get-Alias> ps_alias.txt获取此类列表(放入文件以供以后参考)。

– sancho.s ReinstateMonicaCellio
7月11日12:08

#8 楼

要杀死进程,请使用:

TASKKILL /F /IM processname.exe


例如:

TASKKILL /F /IM firefox.exe


评论


这不是一个好答案。问题是如何列出进程,而不是如何终止进程。

–里基·吉布森(Rikki Gibson)
19-09-30在21:47

#9 楼

如果您运行Windows XP,请尝试使用“任务列表”命令。我在Vista中试用了它,似乎也可以使用。

#10 楼

使用此命令查看Windows机器中的所有进程

任务列表/ svc

评论


您可以使用带有管道的任务列表或其他方式过滤任何进程吗?

– Kiquenet
2015年9月3日,下午5:41

@Kiquenet是的,您可以:tasklist | findstr“ firefox.exe”。如果返回的错误级别为1,则在进程列表中找到该进程。

–安德烈亚斯(Andreas)
16 Mar 18 '16 at 6:48

@mrt:findstr不需要在引号周围加上引号,除非它包含空格或特殊字符(如&,尽管find会包含引号),并且两者都返回1表示未找到(0表示找到)。

–dave_thompson_085
18年6月1日在6:54

@ dave_thompson_085当然,您是对的,但我认为将字符串放在引号中是一个好习惯。这样可以避免我在需要时不小心将它们遗弃。同样,由于它可以立即清楚地表明搜索词是什么,因此使该语句更易于阅读。

–安德烈亚斯(Andreas)
18年6月3日在15:26

#11 楼

打开Windows命令提示符

C:\>tasklist                       // list all the tasks


C:\>Taskkill /IM firefox.exe /F     // Kill task by name




C:\>Taskkill /PID 26356 /F           // kill task by PId


#12 楼

我在Windows 2003 SP2上遇到以下问题:从作为Windows服务启动的进程(甚至在本地帐户下)调用时,任务列表未在stdout或stderr上返回任何输出。任务列表以(未记录的)代码128返回。

从作为正常进程(而不是作为服务)启动的同一程序调用,它确实运行。

无助于更改它。我找不到任何原因或解决方案,但使用sysinternal的“ pslist / accepteula”代替它。

taskkill的问题相同:我不得不用pskill替换它。

#13 楼

我已经完成了msproject(c源代码),可以在以下位置找到存档:
lsproc.zip项目存档

和exe文件:
lsproc.exe二进制文件

这是一个命令行工具
输出:

lsproc 
Thierry Bremard
t.bremard@gmail.com
list binary files and driver with their local path on disks
most of code retreived from msdn site
--------------------

Process ID: 0
--------------------

Process ID: 4
<unknown>  (PID: 4)
<unknown>
    PageFaultCount             : 0x00002E4B
    PeakWorkingSetSize         : 0x00419000
    WorkingSetSize (Mem usage) : 0x0003A000 (232 ko)
    QuotaPeakPagedPoolUsage    : 0x00000000
    QuotaPagedPoolUsage        : 0x00000000
    QuotaPeakNonPagedPoolUsage : 0x00000000
    QuotaNonPagedPoolUsage     : 0x00000000
    PagefileUsage              : 0x00000000
    PeakPagefileUsage          : 0x00000000
--------------------

Process ID: 764
smss.exe  (PID: 764)
\SystemRoot\System32\smss.exe
    PageFaultCount             : 0x000000D6
    PeakWorkingSetSize         : 0x00082000
    WorkingSetSize (Mem usage) : 0x0006C000 (432 ko)
    QuotaPeakPagedPoolUsage    : 0x00006C34
    QuotaPagedPoolUsage        : 0x00001854
    QuotaPeakNonPagedPoolUsage : 0x000004D8
    QuotaNonPagedPoolUsage     : 0x00000280
    PagefileUsage              : 0x0002C000
    PeakPagefileUsage          : 0x00030000
--------------------

Process ID: 816
--------------------

Process ID: 844
winlogon.exe  (PID: 844)
\??\C:\WINDOWS\system32\winlogon.exe
    PageFaultCount             : 0x0000261D
    PeakWorkingSetSize         : 0x00B58000
    WorkingSetSize (Mem usage) : 0x0029B000 (2668 ko)
    QuotaPeakPagedPoolUsage    : 0x0001B054
    QuotaPagedPoolUsage        : 0x000185A4
    QuotaPeakNonPagedPoolUsage : 0x0000C988
    QuotaNonPagedPoolUsage     : 0x0000B6A0
    PagefileUsage              : 0x005EC000
    PeakPagefileUsage          : 0x006C6000
--------------------

...
    PeakPagefileUsage          : 0x03277000
--------------------

Process ID: 2712
lsproc.exe  (PID: 2712)
C:\Documents and Settings\LoginX\Bureau\lsproc.exe
    PageFaultCount             : 0x000000EC
    PeakWorkingSetSize         : 0x000F1000
    WorkingSetSize (Mem usage) : 0x000E4000 (912 ko)
    QuotaPeakPagedPoolUsage    : 0x000032B4
    QuotaPagedPoolUsage        : 0x000032B4
    QuotaPeakNonPagedPoolUsage : 0x00000400
    QuotaNonPagedPoolUsage     : 0x00000398
    PagefileUsage              : 0x00042000
    PeakPagefileUsage          : 0x0005C000
There are 131 drivers:
--------------------
   1: ntkrnlpa.exe
\WINDOWS\system32\ntkrnlpa.exe
--------------------
   2: hal.dll
\WINDOWS\system32\hal.dll
--------------------
   3: KDCOM.DLL
\WINDOWS\system32\KDCOM.DLL
--------------------
   4: BOOTVID.dll
\WINDOWS\system32\BOOTVID.dll


...


--------------------
 129: HTTP.sys
\SystemRoot\System32\Drivers\HTTP.sys
--------------------
 130: hiber_WMILIB.SYS
\SystemRoot\System32\Drivers\hiber_WMILIB.SYS
--------------------
 131: ntdll.dll
\WINDOWS\system32\ntdll.dll



--------------


评论


找不到文件,先生

– Kiquenet
2012年2月13日在15:24

#14 楼

使用WMI和Powershell可以执行以下操作:
Get-WMIObject -Class Win32_Process

然后可以使用Select-Object过滤属性并使用Out-GridView在GUI中显示。

#15 楼

您好,如果要列出Windows计算机上正在运行的进程ID,请打开cmd屏幕,然后键入:

netstat -aon | more


使用Enter键滚动。

评论


这样只会提供正在访问网络的进程,而不是所有进程。

–dave_thompson_085
18年6月1日在6:55