中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 能不能让系统只允许指定进程运行!!
作者:
标题: 能不能让系统只允许指定进程运行!! 上一主题 | 下一主题
wmysbbs
初级用户




积分 172
发帖 52
注册 2005-3-29
状态 离线
『楼 主』:  能不能让系统只允许指定进程运行!!

有些类似以下这个批处理,可自定义添加可运行的进程,查到多余进程立即结束!



echo off
color 1f  
title 进程分析程序
set space=                       
echo.
echo 程序分析如下:
echo =========================================================================
echo.
echo 进程名称              进程说明
echo.

::以下定义程序说明,自己可以补充。
set System=『系统进程』
set smss.exe=『系统进程』调用对话管理子系统和负责操作你系统的对话
set csrss.exe=『系统进程』管理Windows图形相关任务
set winlogon.exe=『系统进程』
set services.exe=『系统进程』管理启动和停止服务
set lsass.exe=『系统进程』用于本地安全和登陆策略
set svchost.exe=『系统进程』用来运行动态链接库dll文件
set CCenter.exe=·瑞星信息中心
set RavMonD.exe=·瑞星监控程序
set rfwsrv.exe=·瑞星个人防火墙相关程序
set spoolsv.exe=『系统进程』打印服务
set RavStub.exe=·瑞星杀毒软件相关程序
set wdfmgr.exe=·MP10播放器的相关程序
set explorer.exe=·负责显示系统桌面的图标,任务栏等
set RfwMain.exe=·瑞星防火墙主程序
set RavTask.exe=·瑞星定时杀毒程序
set RavMon.exe=·瑞星监控程序
set SOUNDMAN.EXE=·Realtek声卡相关程序
set realsched.exe=·RealPlayer自动升级程序
set ctfmon.exe=·提供语音识别、手写识别等
set conime.exe=·输入法编辑器相关程序
set QQ.exe=·腾讯QQ

::主程序
setlocal enabledelayedexpansion
for /f "tokens=1" %%i in ('tasklist /NH') do (
   set str=%%i %space%
   set str=!str:~0,20!
   if defined %%i (echo !str! !%%i!) else echo !str! ‖→未定义程序)
echo =========================================================================
echo 分析完毕...

pause>nul

[ Last edited by namejm on 2007-2-11 at 01:58 AM ]

2007-2-11 08:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

else taskkill /F /IM %%i  /T?

2007-2-11 08:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wmysbbs
初级用户




积分 172
发帖 52
注册 2005-3-29
状态 离线
『第 3 楼』:  

谢谢楼上的回答!
我刚学不久!!
这些命令运用的不是很熟练!!
能告诉这句是什么意思吗?
知道原因很重要,不想总抄别人的东西!

2007-2-11 08:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

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*"

2007-2-11 09:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjanwxf
初级用户





积分 22
发帖 11
注册 2007-2-12
状态 离线
『第 5 楼』:  

正需要,收藏学习

2007-2-13 05:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 6 楼』:  

@echo off
color 1f  
title 进程分析程序
set space=                       
echo.
echo 程序分析如下:
echo =========================================================================
echo.
echo 进程名称              进程说明
echo.

::以下定义程序说明,自己可以补充。
set System=『系统进程』
set smss.exe=『系统进程』调用对话管理子系统和负责操作你系统的对话
set csrss.exe=『系统进程』管理Windows图形相关任务
set winlogon.exe=『系统进程』
set services.exe=『系统进程』管理启动和停止服务
set lsass.exe=『系统进程』用于本地安全和登陆策略
set svchost.exe=『系统进程』用来运行动态链接库dll文件
set CCenter.exe=·瑞星信息中心
set RavMonD.exe=·瑞星监控程序
set rfwsrv.exe=·瑞星个人防火墙相关程序
set spoolsv.exe=『系统进程』打印服务
set RavStub.exe=·瑞星杀毒软件相关程序
set wdfmgr.exe=·MP10播放器的相关程序
set explorer.exe=·负责显示系统桌面的图标,任务栏等
set RfwMain.exe=·瑞星防火墙主程序
set RavTask.exe=·瑞星定时杀毒程序
set RavMon.exe=·瑞星监控程序
set SOUNDMAN.EXE=·Realtek声卡相关程序
set realsched.exe=·RealPlayer自动升级程序
set ctfmon.exe=·提供语音识别、手写识别等
set conime.exe=·输入法编辑器相关程序
set QQ.exe=·腾讯QQ

::主程序
setlocal enabledelayedexpansion




:close
set d=0
set a=0
>tlist.txt echo\
cls&title "进程关闭"
mode con: cols=110 lines=47
for /f "tokens=1" %%i in ('tasklist') do (
set /a d+=1
if !d! gtr 2 (
set /a a+=1
echo !a!. %%i>>tlist.txt
   set str=%%i %space%
   set str=!a!.!str:~0,20!
   if defined %%i (echo !str! !%%i!) else (echo !str! ‖→还未定义程序) ))
echo ======================================================================================
echo.
set /p kill=输入你要 Kill 的序号:(按t返回主菜单.按q退出):
if %kill% equ t goto start
if %kill% equ q goto :eof
for /f "tokens=1,2 skip=%kill% delims= " %%j in ('type tlist.txt') do (
taskkill /im %%k /f
pause>nul
goto close)



江湖远
碧空长
路茫茫

    一个人漫无目的的奔跑,风,刺骨的冷....
2007-2-13 05:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

直接加 taskkill /F /IM %%i  /T
if defined %%i (echo !str! !%%i!) else echo !str! 未定义程序 && taskkill /F /IM %%i  /T

2007-2-13 06:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 8 楼』:  

还不如直接用reg 来禁止

2007-2-13 06:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: