一个有用的“无敌”命令 NTSD.EXE

时间:2021-03-23 20:27:02
在使用Windows操作系统时,很多朋友经常会问我一个这样的问题:“怎么样才能结束一个任务管理器结束不掉的进程?”,今天就大家目前使用的比较多的操作系统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是什么东东?不会吧,晕了,PID是进程标识符的意思了,一般用数字表示,不懂的猛学计算机基础和操作系统基础课去吧,不多说了,呵呵)
 例子:我要结束瑞星的那个CCenter.exe进程,怎么办呢?
 ntsd -c q pn ccenter.exe 或者 ntsd -c q -p 772
 (注:ccenter.exe目前在我的系统中对应的PID是 772)
   如果你不知道怎么查,进程对应的PID,我来告诉你一个简单的方法吧,任务管理器知道怎么打开吧,Ctrl + Shift + Esc , 任务栏右键 ->任务管理器,Ctrl + Alt + Del 看到了吧(WinXP如果使用xp默认的登录方式,直接出来喔),方法多了,自己想吧
打 开任务管理器后,切换到“进程”选项卡,看到了吧,呵呵,如果PID栏没有显示进程对应的PID值,找到 “查看”-》“选择列”,选中PID吧,不是 吧,你的任务管理器连菜单栏都没有了,myGod~~~ 双击没有了菜单栏的任务管理器的最外边框吧,立刻还你一个正常的任务管理器,呵呵

另 外:如果你用的是WinXP操作系统,还告诉你两个有用的命令tasklist和taskkill,这两个命令不仅能查看和kill本地进程,而且能查看 和kill远程主机的进程喔,呵呵,当然你要知道那台机器的administrators组的一个用户名和密码先。。。 

同样的tasklist 和 taskkill 也可以通过 加参数 /? 来查看帮助

=====================================================

C:/Documents and Settings/Administrator/「开始」菜单>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 domain/username /FO CSV /NH
    TASKLIST /S system /U username /P password /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY/SYSTEM" /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 AUTHORITY/SYSTEM" /IM notepad.exe
    TASKKILL /S system /U domain/username /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技术,这两天发现我的本本在进入windows时特别慢(呵呵,我测试马儿,软件时开了很多服 务),于是早上关掉了不少服务(DCOM服务被我禁用了,呵呵),所有解决问题的办法很简单,就是把这个服务(DCOM Server Process Launcher)启动了。

你可以通过这个链接引用该篇文章:http://hawkoo.bokee.com/tb.b?diaryId=10458105