打印

[求助] 用批处理关闭除关键进程外的所有进程的方法

用批处理关闭除关键进程外的所有进程的方法

想用一条命令关闭除csrss.exe、explorer.exe、lsass.exe、smss.exe、services.exe、svchost.exe、winlogon.exe、system、System Idle Process的所有进程,但我自己搞了很多次都不成功。最好是用一条长命令实现,批处理也可以。请高手帮帮忙!多谢了!

TOP

哦,这个不好说。因为现在的好多杀毒软件已经把钩子做的很长了,要想结束他们的进程恐怕。不过等高手出现。

TOP

引用:
原帖由 zuozhiyu 于 2007-9-3 17:34 发表
3 x& r% w1 j- o: q& z想用一条命令关闭除csrss.exe、explorer.exe、lsass.exe、smss.exe、services.exe、svchost.exe、winlogon.exe、system、System Idle Process的所有进程,但我自己搞了很多次都不成功。最好是用一条长命令实现, ...
复制内容到剪贴板
代码:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process " )
For Each objProcess In colProcess
Select Case objProcess.caption
Case "csrss.exe"
Case "explorer.exe"
Case "lsass.exe"
Case "smss.exe"
Case "services.exe"
Case "svchost.exe"
Case "winlogon.exe"
Case "system System Idle Process"
Case Else
objProcess.Terminate()
End Select
Next


TOP

楼上的 批处理 , 会将 整个画面全部关闭的啊

TOP

什么叫全部关闭?首先,这个不是批处理。其次,只有关闭explorer.exe进程才会把"画面全部关闭",我这里又没有把这个进程关闭掉。- S- k! ~/ `: z+ h1 q
, B/ n7 r9 a- |0 v/ l3 H
应该这样:copy到一个记事本里,然后存成.vbs的文件,双击.

TOP

我试了一下上面的脚本,果然实现了我要的效果。谢谢上面的朋友了。我以前学过点批处理方面的知识,但我用批处理却写不出来,是不是VBS脚本比批处理的功能更强大呢?哪位高手能写一个这样的批处理出来吗?

TOP

do all in cmd shell

下面是Process.ini,里面存放不需要结束的进程名,不区分大小写,可自行配置:
, _; C. V$ Q W2 X+ b5 \) u
引用:

4 x. |/ `1 ^8 ^5 ~5 q- W2 c. jcsrss.exe
3 d2 ]5 Z7 g3 ?0 K* G& vexplorer.exe
; {9 k6 M' t& V$ ^: |3 qlsass.exe9 H7 p) i6 B1 U% q0 l
smss.exe
6 Z& X& z6 t+ n" d6 n% B4 c3 |services.exe
5 S. } q/ E( k Fsvchost.exe
4 I$ o1 |2 c% L2 swinlogon.exe
* K3 Y9 t- U l& ^System1 {0 e- Z6 a2 M/ g/ H& Z0 z
System Idle Process

- d7 X" a, S( {& `) V9 A/ `, z
6 ^9 a1 ^: I* I- t5 }$ |7 a) T9 ?: ?运行下面的批处理即可:
' ~4 l6 n/ W( {; U6 g3 x( \% G9 U
复制内容到剪贴板
代码:
@echo off&Setlocal EnableDelayedExpansion
rem Code by lxmxn # bbs.cn-dos.net

for /f "tokens=1 delims=," %%a in ('tasklist /nh /FO CSV') do (
for /f "delims=" %%b in (Process.ini) do (
set /a flag+=1
if /i not %%a=="%%b" set /a num+=1
)
if !flag! equ !num! taskkill /f /im %%a
set /a flag=num=0
)
echo the end...
本帖最近评分记录
  • tiencosun 菊花元 +2 很不错 2007-10-16 09:39

TOP

尽管我对于lxmxn的代码并不是完全明白,但是这种思路是非常值得提倡的。

TOP