[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理怎样分析系统日志?

本帖最后由 咒夜坠 于 2012-6-11 15:35 编辑

最近一个2003的系统里面老是报错
我想写一个批处理随时监视出现指定的报错就执行某一段批处理
但是我看了看没看明白日志分析应该怎么弄
怎么把日志文件读取出来都可以
读取出来为文本格式
想怎么提取就怎么提取嘿嘿


类型(系统)级别(错误)?事件ID是所有错误都列出来并且有描述
以文本形式导出

错误事件是什么类型(系统、应用程序、安全、…)?什么级别(信息、警告、错误、…)?事件ID是多少?
开始→运行:eventvwr.msc 查看日志

TOP

本帖最后由 咒夜坠 于 2012-6-11 16:20 编辑
错误事件是什么类型(系统、应用程序、安全、…)?什么级别(信息、警告、错误、…)?事件ID是多少?
开 ...
powerbat 发表于 2012-6-6 15:45



    可以按照类型为:系统     级别为:错误  ID为:1111(ID全部导出也可以)

TOP

vbs监视出现指定的报错就执行某一段批处理
  1. strComputer = "."
  2. Set ws = CreateObject("WScript.Shell")
  3. set wmi = GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
  4. set Sink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")
  5. wmi.ExecNotificationQueryAsync Sink, _
  6.     "SELECT * FROM __InstanceCreationEvent WITHIN 1 where " _
  7.     & "TargetInstance ISA 'Win32_NTLogEvent' and " _
  8.     & "TargetInstance.Logfile = 'System' and " _
  9.     & "TargetInstance.EventType = '1' "
  10. do : WScript.Sleep 1000 : loop
  11. sub Sink_OnObjectReady(objWbemObject, objAsyncContext)
  12.     s = objWbemObject.TargetInstance.GetObjectText_()
  13.     'WScript.Echo s
  14.     ws.Environment("process")("tab") = vbTab
  15.     ws.Environment("process")("_log") = s
  16.     ws.Run "a.bat" 'a.bat中可以访问 _log 环境变量
  17. end sub
复制代码

TOP

要显示变量 _log 的值,因其含有回车符,故不可用echo %_log%,需用 set _log 或 echo !_log!。

TOP

本帖最后由 咒夜坠 于 2012-6-14 10:04 编辑
vbs监视出现指定的报错就执行某一段批处理
powerbat 发表于 2012-6-11 16:47
  1. strComputer = "."
  2. Set ws = CreateObject("WScript.Shell")
  3. set wmi = GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
  4. set Sink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")
  5. wmi.ExecNotificationQueryAsync Sink, _
  6.     "SELECT * FROM __InstanceCreationEvent WITHIN 1 where " _
  7.     & "TargetInstance ISA 'Win32_NTLogEvent' and " _
  8.     & "TargetInstance.Logfile = 'System' and " _
  9.     & "TargetInstance.EventType = '1' "
  10. do : WScript.Sleep 1000 : loop
  11. sub Sink_OnObjectReady(objWbemObject, objAsyncContext)
  12.     s = objWbemObject.TargetInstance.GetObjectText_()
  13.     'WScript.Echo s
  14.     ws.Environment("process")("tab") = vbTab
  15.     ws.Environment("process")("_log") = s
  16.     ws.Run "a.bat" 'a.bat中可以访问 _log 环境变量
  17. end sub
复制代码
[img]
[/img]



    不懂你这个脚本应该怎么使用。

TOP

我也不懂操作系统是怎么实现的。
我只知道运行这个脚本后,如果系统日志中产生了类型为系统、级别为错误的事件,该脚本就会自动运行一个批处理a.bat。
这不正符合你的愿望吗:“我想写一个批处理随时监视出现指定的报错就执行某一段批处理”?

另外,貌似你回帖很费劲?要回复几楼直接点对应楼层左下角的“回复”就行了,如果想引用该楼的内容则点“引用”。

TOP

回复 7# powerbat


    对于脚本我有点无能为力,有木有批处理写出来呢,

TOP

回复 8# 咒夜坠


   话说我不是写过么....我记得都说过好几次了.
至少我是导出txt才处理的..

TOP

返回列表