Windows CMD命令之tasklist及taskkill

Tasklist介绍

Tasklist"是 winxp/win2003/vista/win7/win8下的命令,用来显示运行在本地或远程计算机上的所有进程,带有多个执行参数。

使用格式

tasklist [/s <Computer> [/u [<Domain>]<UserName> [/p <Password>]]] [{/m <Module> | /svc | /v}] [/fo {table | list | csv}] [/nh] [/fi <Filter> [/fi <Filter> [ ... ]]]

参数含义

/S <computer> 指定连接到的计算机或IP地址,默认本机。

/u [<Domain>]<UserName> 指定使用哪个用户执行这个命令。

/P [password] 为指定的用户指定密码。

/M [module] 列出调用指定的DLL模块的所有进程。如果没有指定模块名,显示每个进程加载的所有模块。

/SVC 显示每个进程中的服务信息,当/fo参数设置为table时有效。

/V 显示详细信息。

/FI filter 显示一系列符合筛选器指定的进程。

/FO format 指定输出格式,有效值:TABLE、LIST、CSV。

/NH 指定输出中不显示栏目标题。只对TABLE和CSV格式有效。

filter可使用的参数和操作符

过滤器名称
可用操作符
可用值

STATUS
eq, ne
RUNNING | NOT RESPONDING | UNKNOWN

IMAGENAME
eq, ne
映像名称

PID
eq, ne, gt, lt, ge, le
PID值

SESSION
eq, ne, gt, lt, ge, le
会话数量

SESSIONNAME
eq, ne
会话名称

CPUTIME
eq, ne, gt, lt, ge, le
CPU的使用时间,格式为HH:MM:SS

MEMUSAGE
eq, ne, gt, lt, ge, le
kb为单位的内存使用量

USERNAME
eq, ne
合法用户名

SERVICES
eq, ne
服务名称

WINDOWTITLE
eq, ne
窗口标题

MODULES
eq, ne
DLL名称

应用实例

查看本机进程

在“命令提示符”中输入Tasklist命令即可显示本机的所有进程(图1)。本机的显示结果由5部分组成:图像名(进程名)、PID、会话名、会话#和内存使用。

C:UsersAdministrator>tasklist

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0      9,516 K
smss.exe                       420 Services                   0        836 K
csrss.exe                      632 Services                   0      4,632 K
wininit.exe                    752 Services                   0      4,388 K
csrss.exe                      772 Console                    1     92,908 K
services.exe                   816 Services                   0      8,856 K
lsass.exe                      836 Services                   0     11,160 K
lsm.exe                        844 Services                   0      3,748 K
svchost.exe                    948 Services                   0      8,496 K

查看远程系统的进程

命令提示符下输入“Tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引号)即可查看到IP地址为218.22.123.26的远程系统的进程。其中/s参数后的“218.22.123.26”指要查看的远程系统的IP地址,/u后的“jtdd”指Tasklist命令使用的用户账号,它必须是远程系统上的一个合法账号,/p后的“12345678”指jtdd账号的密码。

注意:使用Tasklist命令查看远程系统的进程时,需要远程机器的RPC服务的支持,否则,该命令不能正常使用。

查看系统进程提供的服务

Tasklist命令不但可以查看系统进程,而且还可以查看每个进程提供的服务。如查看本机进程SVCHOST.EXE提供的服务,在命令提示符下输入“Tasklist /svc”命令即可(图3)。你会惊奇地发现,有4个SVCHOST.EXE进程,而总共有二十几项服务使用这个进程。

C:UsersAdministrator>tasklist /svc

映像名称                       PID 服务
========================= ======== ============================================
System Idle Process              0 暂缺
System                           4 暂缺
smss.exe                       420 暂缺
csrss.exe                      632 暂缺
wininit.exe                    752 暂缺
csrss.exe                      772 暂缺
services.exe                   816 暂缺
lsass.exe                      836 KeyIso, ProtectedStorage, SamSs, VaultSvc
lsm.exe                        844 暂缺
svchost.exe                    948 DcomLaunch, PlugPlay, Power
ibmpmsvc.exe                  1020 IBMPMSVC
nvvsvc.exe                     432 nvsvc
svchost.exe                    472 RpcEptMapper, RpcSs

对于远程系统来说,查看系统服务也很简单,使用“Tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址为218.22.123.26的远程系统进程所提供的服务。

查看调用DLL模块文件的进程列表

要查看本地系统中哪些进程调用了shell32.dll模块文件,只需在命令提示符下输入“Tasklist /m shell32.dll”即可显示这些进程的列表。

使用筛选器查找指定的进程

在命令提示符下输入“TASKLIST /FI "USERNAME ne NT AUTHORITYSYSTEM" /FI "STATUS eq running”,就可以列出系统中正在运行的非SYSTEM状态的所有进程。其中“/FI”为筛选器参数,“ne”和“eq”为关系运算符“不相等”和“相等”。

综合应用之结束进程

Taskkill

谈到“Tasklist”命令,我们就不得不提到它的孪生兄弟“Taskill”命令,顾名思义,它是用来关掉进程的。

要关掉本机的notepad.exe进程,有两种方法:

1、先使用Tasklist查找它的PID,假设系统显示本机notepad.exe(notepad.exe是个病毒性程序,很难删除,一般在C:/windows/system32下)进程的PID值为1132,然后运行“Taskkill /pid 1132”命令即可。其中“/pid”参数后面是要终止进程的PID值。

2、直接运行“taskkill /IM notepad.exe”命令,其中“/IM”参数后面为进程的图像名。

NTSD

系统debug级的ntsd,很多进程Tasklist是杀不了的,但是用ntsd就可以,基本上除了WINDOWS系统自己的管理进程,ntsd都可以杀掉,不过有些rootkit级别的超级木马就无能为力了,不过幸好这类木马还是很少的。

1、利用进程的PID结束进程

命令格式:ntsd -c q -p pid

命令范例: ntsd -c q -p 1332 (结束explorer.exe进程)

2、利用进程名结束进程

命令格式:ntsd -c q -pn ***.exe (***.exe 为进程名,exe不能省)

来源:百度百科

原文地址:https://www.cnblogs.com/rusking/p/4980165.html