Total Pageviews

Monday, 3 August 2015

windows下,用命令行杀进程

用视窗系统自带的工具就能杀大部分进程:
c:\>ntsd -c q -p PID
只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要他。ntsd从 2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以能用来在命令行下终止进程。使用ntsd自动就 获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c 参数从命令行传递就行了。NtsdNtsd 按照惯例也向软件研发人员提供。只有系统研发人员使用此命令。有关周详信息,请参阅 NTSD 中所附的帮助文件。用法:开个cmd.exe窗口,输入:
ntsd -c q -p PID
把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。

xp下更有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法非常简单:tskill 程式名!!

例如:
taskkill /f /t /im 123.exe  =  taskkill /f /t /im PID
ntsd -c q -pn 123.exe  =  ntsd -c q -pn PID
ntsd -c q -p 123.exe  =  ntsd -c q -p PID