问题:“怎么样才能结束一个任务管理器结束不掉的进程?”,今天就大家目前使用的比较多的操作系统Win2K/WinXP(win2003类似),说说这个问题。
现在介绍一个命令,ntsd.exe
这个命令Win2k以上操作系统自带的一个调试程序,它除了System(纯内核态)、SMSS.EXE(纯内核态)和CSRSS.EXE(Win32子系统,ntsd自己)不能杀,其它的进程均可以搞定,自我感觉就是……绝世猛男。在命令行窗口(CMD模式)中使用ntsd /?可以轻易的获得这个命令的使用帮助。
ntsd -c q -pn process_name.exe 或者 ntsd -c q -p PID
其中 -c是表示执行debug命令,q表示执行结束后退出(quit), -pn 表示后面紧跟着是你要结束的进程名称(process_name.exe 比如:QQ.exe taskmgr.exe 等等,值得注意的是后缀名.exe是不可省略的,否则系统会告诉你“不支持此接口”), -p 表示后面紧跟着是你要结束的进程对应的PID(PID是进程标识符的意思了,一般用数字表示)
例子:我要结束瑞星的那个CCenter.exe进程,怎么办呢?
ntsd -c q pn ccenter.exe 或者 ntsd -c q -p 772
(注:ccenter.exe目前在我的系统中对应的PID是 772)
如果你不知道怎么查,进程对应的PID,打开任务管理器,切换到“进程”选项卡,找到 “查看”-》“选择列”,选中PID吧。如果你的任务管理器菜单栏失踪了,双击没有了菜单栏的任务管理器的最外边框。
另外:如果你用的是WinXP操作系统,还告诉你两个有用的命令tasklist和taskkill,这两个命令不仅能查看和kill本地进程,而且能查看和kill远程主机的进程喔,呵呵,当然你要知道那台机器的administrators组的一个用户名和密码先。。。
同样的tasklist 和 taskkill 也可以通过 加参数 /? 来查看帮助
=================我是分割线=======================
C:Documents and SettingsAdministrator「开始」菜单>cd
C:>tasklist /?
TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
描述:
这个命令行工具显示应用程序和本地
或远程系统上运行的相关任务/进程的
列表。
参数列表:
/S system 指定连接到的远程系统。
/U [domain]user 指定应该在哪个用户上下文
执行这个命令。
/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。
/M [module] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。
/SVC 显示每个进程中的服务。
/V 指定要显示详述
信息。
/FI filter 显示一系列符合筛选器指定的标准
的任务。
/FO format 指定输出格式。
有效值: “TABLE”、”LIST”、”CSV”。
/NH 指定栏标头不应该在
输出中显示。
只对 “TABLE” 和 “CSV” 格式有效。
/? 显示帮助/用法。
筛选器:
筛选器名 有效操作符 有效值
———– ————— ————–
STATUS eq, ne 正在运行 | 没有响应
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。
hh – 时,
mm – 分,ss – 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)
USERNAME eq, ne 用户名,格式为 [domain]user
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名
例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domainusername /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI “USERNAME ne NT AUTHORITYSYSTEM” /FI “STATUS eq running”
===============================分割线回来了====================================
C:>taskkill /?
TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
描述:
这个命令行工具可用来结束至少一个进程。
可以根据进程 id 或图像名来结束进程。
参数列表:
/S system 指定要连接到的远程系统。
/U [domain]user 指定应该在哪个用户上下文
执行这个命令。
/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。
/F 指定要强行终止
进程。
/FI filter 指定筛选进或筛选出查询的
的任务。
/PID process id 指定要终止的进程的
PID。
/IM image name 指定要终止的进程的
图像名。通配符 ‘*’
可用来指定所有图像名。
/T Tree kill: 终止指定的进程
和任何由此启动的子进程。
/? 显示帮助/用法。
筛选器:
筛选器名 有效运算符 有效值
———– ————— ————–
STATUS eq, ne 运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh – 时,
mm – 钟,ss – 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
USERNAME eq, ne 用户名,格式为
[domain]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
注意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 ‘*’。
注意: 远程进程总是要强行终止,
不管是否指定了 /F 选项。
例如:
TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI “PID ge 1000” /FI “WINDOWTITLE ne untitle*”
TASKKILL /F /FI “USERNAME eq NT AUTHORITYSYSTEM” /IM notepad.exe
TASKKILL /S system /U domainusername /FI “USERNAME ne NT*” /IM *
TASKKILL /S system /U username /P password /FI “IMAGENAME eq note*”
C:>
============================分割线飘过========================================
呵呵,很简单吧,哈,我最常用的是没有参数和 /s /u /p /pid /svc
比如:tasklist
tasklist /s 127.0.0.1 /u administrator /p 123
tasklist /svc
taskkill /s 120.0.0.1 /u administrator /p 123 /pid 774
至于网上很多查杀进程的东东(kill, tlist,pulist …..),毕竟是第三方的东西,装得越多越麻烦。尽量发掘系统自己的资源吧。
刚才在使用tasklist显示别人的进程时正常,可是显示自己的却出现“RPC服务器不可用!”的错误,由于RPC有用到DCOM技术,所以DCOM Server Process Launcher服务必须启动。