2004/12/31

Windows系統提供的終止行程的工具程式ntsd, tasklist, tskill

摘錄自:http://article.pchome.net/2004/12/21/32478.htm

問:怎么才能關掉一個用任務管理器關不了的進程?我前段時間發現我的機子裡多了一個進程,只要開機就在,我用任務管理器卻怎么關也關不了

答1:殺進程很容易,隨便找個工具都行。比如IceSword。關鍵是找到這個進程的啟動模式,不然下次重啟它又出來了。順便教大家一招狠的。其實用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(進程標識符)",然後就能看見了。

答2︰xp下還有兩個好東東tasklist和tskill。tasklist能列出所有的進程,和相應的訊息。tskill能查殺進程,語法很簡單︰tskill 程式名﹗﹗

No comments: