中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [转贴]eventtriggers与eventcreate详解
作者:
标题: [转贴]eventtriggers与eventcreate详解 上一主题 | 下一主题
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『楼 主』:  [转贴]eventtriggers与eventcreate详解

来源:http://bbs.verybat.org
作者:伤脑筋[v.b.t]  转载请声明。

前言废话^_^  
    最近咱们非常批处理论坛(bbs.verybat.org)刚换域名和空间,许多老VB们还不知道新域名,人气不如以前了!为了加强人气,我看还得从多发原创东东做起,希望各位喜欢VB的朋友们多多发表一些原创作品!我先带头!


    说完废话说正题,这几天看到论坛里有些讨论eventtriggers与eventcreate这两个操控系统事件的帖子,自己到百度搜索了,相关介绍不是很详细,主要是用法没说清楚。于是便有了写这两命令详细用法的帖子!   

    eventtriggers与eventcreate两命令的系统帮助这里我不列出来,需要的朋友自己看系统帮助,本 文以实际例子来说明他们的用法!

    eventtriggers与eventcreate是2K以上的系统才有的命令,其中eventtriggers命令在XP和2003系统里又有略微的不同,这里先不讲,我先写个例子如下

BAT或者手工输入任意选择执行!


Eventtriggers /create /tr "bbs.verybat.org" /l * /eid 1 /tk "cmd /k"
rem  监视任意类型事件ID为1的任意事件消息,如果有这个ID为1的消息则执行cmd /k命令。
eventcreate /t error /id 1 /l application /so "bbs.verybat.org"  /d "非常批处理欢迎各位!"
rem 在事件查看器里创建一个类型为”应用程序“,ID为1,来源为bbs.verybat.org的错误消息.

    执行完以上几条命令后如果你的系统为2003系统那么在你输入完你当前登陆账号的密码后,就会打开一个新的CMD窗口了。如果你的是XP系统,任何窗口也不会打开,但是请你手动打开你的进程查看器,你会发现进程里多了一个运行用户为"SYSTEM"进程名为CMD.EXE进程,没错这就是我们的监视命令打开的。这就是Eventtriggers命令在XP与2003系统的不同之处:XP以SYSTEM权限执行任务命令,2003则以当前用户权限执行任务命令。   

     通过上面的例子我们已经知道 eventtriggers与eventcreate基本的使用方法以及eventtriggers命令在2K系统里的区别!现在我们再来理清一些概念的问题!

     为什么在执行例1后系统会打开一个新的CMD呢?我们先把eventtriggers是起什么作用的命令来说一下!eventtriggers命令是一个新建事件触发器的命令,也就是当它监视的某个条件成立时,就自动执行某个命令!比如监视到QQ.EXE启动时,就执行一个相应的命令。说到这里大家觉得这个命令居然可以监视系统,太牛了。。。!不幸的是,此命令监视条件不是万能的,它的监视条件只能是事件查看器(eventvwr.msc)里的某几个条件!那就是几种事件日志,有效类型包括:Application、System、Security、DNS server、Log 和 Directory 日志。可以使用通配符 (*)。 事件类型,有效值包括:ERROR、INFORMATION、WARNING、SUCCESSAUDIT 和 FAILUREAUDIT。事件的ID号。事件的来源。大家如果不懂打开系统的事件查看器工具(eventvwr.msc)一看便明白了!
     eventtriggers是干嘛的大家了解了,那eventcreate呢?例1中为什么要用此命令?eventcreate命令是一个可以让我们手工在系统查看器里创建自定义日志的工具(eventtriggers是监视事件的)。例1中之所以使用此命令是因为我们使用的eventtriggers命令是监视事件查看器里任意类型事件产生事件ID为1的事件时打开一个CMD(可以用net helpmsg 1来看具体事件ID号的意思),但是系统什么时候会在事件查看器例写一个事件ID号为1的日志呢?我不知道。。。。所以我就手工创建一个事件ID为1的假日志了!这样就满足了eventtriggers监视条件(出现一个ID号为1的事件日志),所以他就执行满足条件时的命令,打开一个CMD窗体。

    eventtriggers与eventcreate是什么因该理解的差不多了!下面我们继续距离来实际操控他们!

Eventtriggers /create /tr "bbs.verybat.org" /l APPLICATION /so "bbs.verybat.org" /tk "cmd /k"   
rem 创建一个任务名为"bbs.verybat.org" 的监视事件在事件查看器里的“应用程序”日志,当其出现ID 号为2的日志时执行CMD /K命令!

eventcreate /t error /id 2 /l application /so "bbs.verybat.org"  /d "非常批处理欢迎各位!"
rem 在事件查看器里的“应用程序”日志里创建一个ID为2的错误类型日志,日志的来源为"bbs.verybat.org" ,日志的描述为"非常批处理欢迎各位!"
rem 因为Eventtriggers 监视的条件为“应用程序”日志里来源为"bbs.verybat.org" 的日志,我们只是做试验所以用 eventcreate 手工创建促发条件。



Eventtriggers /create /tr "bbs.verybat.org" /l APPLICATION /t  ERROR  /tk "cmd /k"
rem 创建一个任务名为"bbs.verybat.org" 的监视事件在事件查看器里的“应用程序”日志,当其事件类型为错误类型时执行CMD /K命令!
eventcreate /t error /id 3 /l application /so "bbs.verybat.org"  /d "非常批处理欢迎各位!"
rem 在事件查看器里的“应用程序”日志里创建一个ID为3的错误类型日志,日志的来源为"bbs.verybat.org" ,日志的描述为"非常批处理欢迎各位!"
rem 因为Eventtriggers 监视的条件为“应用程序”日志里的任意错误日志,我们只是做试验所以用 eventcreate 手工创建促发条件。

上面3个例子基本上把Eventtriggers 与eventcreate的常用用法说了一通了。

注意
Eventtriggers 的任务名必须唯一,所以如果创建监视任务出现任务名重名改一下/TR参数就可以了
Eventtriggers 查看当前任务用Eventtriggers  /query ,删除任务Eventtriggers /delete /tid ID号 *号删除全部任务
Eventtriggers 重启后任务会消失

技巧
Eventtriggers 命令由于在XP默认以SYSTEM权限执行触发条件后的命令,所以可以用它来干掉TASKMGR.EXE无法搞定的进程。包括LSASS.EXE和ntsd.exe -c -p 一个样!


Eventtriggers /create /tr "bbs.verybat.org" /l APPLICATION /t  ERROR  /tk "taskkill -f -im lsass.exe"
eventcreate /t error /id 3 /l application /so "bbs.verybat.org"  /d "非常批处理欢迎各位!"

eventcreate可以用来强行塞满日志文件,导致系统无法正确记录事件.

eventcreate /t error /id 1 /l application /so "bbs.verybat.org"  /d "非常批处理欢迎各位!"
%0

好了本文基本上完了,如果错误请PM告诉我,转载请著名bbs.verybat.org BY 伤脑筋!

   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-8 17:44





有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-8 15:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

看了之后感觉以后会大有用处,所以就转了




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-8 15:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 3 楼』:  

大概看了一下,是说用eventcreate创建一个系统日志,Eventtriggers根据满足条件的系统日志运行指定的命令是吧?

楼主是不是想做延时触发运行命令?BAT开机运行后exit,创建一个监控条件,当系统产生什么错误的时候,就执行相应的命令。

我现在能想到的应用,就比如说可恶的SERV-U经常崩溃,崩溃后会产生一条系统日志,Eventtriggers就根据这条新日志而重新启动SERV-U服务。其他的不知道有什么妙用?

2008-12-8 16:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

我也没用过,但是我能感觉会很有用。这是我转的帖子,不是我原创的




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-8 17:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: