网上搜了一下Windows下命令行杀进程的方法,一般都是说:
1. ntsd -c q -p PID
2. tskill processid 或 tskill processname
因为 tskill 可以使用进程名称来杀,对于杀普通的应用非常方便。可是今天在杀一个进程时,报"End Process failed for hlrdb:Access is denied"的错误。
仔细检查了一下,发现是由于进程所有者为 system,tskill 没法杀。
改用ntsd后可以杀掉,可是每次杀PID很不方便;想编一个批处理先找PID号再自动杀,又不会shell。于是看看ntsd是否有进程名的参数。
仔细看了一下ntsd的参数,发现 -pn 参数可以直接带进程名称。这下方便了,呵呵:
ntsd -c q -pn processname
试了试,效果不错。