`
wangpengfei360
  • 浏览: 1050143 次
文章分类
社区版块
存档分类
最新评论

使用wmi脚本对系统日志进行审计

 
阅读更多

运行all.vbs,弹出窗口:

输入要进行审计的日期,点"ok",脚本会自动审计你的服务器中相关的事件日志:

all.vbs代码如下:

On Error Resume Next
'=========================================================================
' System 日志摘要
'=========================================================================
logfile="System"
'输入参数处理
str=Inputbox("开始请输入日期yyyy-mm-dd(默认为昨天):","输入参数",FormatDateTime(DateAdd("d",-1,now),2))
'输入参数规范
a=split(str,"-")
for i=lbound(a)+1 to ubound(a)
if len(a(i))=1 Then '如果月和日少于两位,前面加0
a(i)="0" & a(i)
end if
next
str=Join(a,"")
'Wscript.Echo str
strComputer = "."

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
'取主机名
computer=""
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
For Each objItem in colItems
computer=objItem.Caption
Next
'筛选系统日志
Set colItems = objWMIService.ExecQuery("Select * from Win32_NTLogEvent where Logfile='"&logfile&"'",,48)
cnt0=0
cnt1=0
For Each objItem in colItems
dt=objItem.TimeWritten '取得日志时间
t=objItem.Type'取类型
If Mid(dt,1,8)=str Then
If t="错误" Then '---错误日志计数
cnt0=cnt0+1
End If
If t="警告" Then
cnt1=cnt1+1
End if
End if
Next
Wscript.Echo "主机 "&computer&" 【"&logfile&"】日志 "&str&" 摘要:" & " 错误 "&cnt0&" , 警告 "&cnt1
'==========================================================================
' application日志摘要
'==========================================================================
logfile="Application"
'筛选系统日志
Set colItems = objWMIService.ExecQuery("Select * from Win32_NTLogEvent where Logfile='"&logfile&"'",,48)
cnt0=0
cnt1=0
For Each objItem in colItems
dt=objItem.TimeWritten '取得日志时间
t=objItem.Type'取类型
If Mid(dt,1,8)=str Then
If t="错误" Then '---错误日志计数
cnt0=cnt0+1
End If
If t="警告" Then
cnt1=cnt1+1
End if
End if
Next
Wscript.Echo "主机 "&computer&" 【"&logfile&"】日志 "&str&" 摘要:" & " 错误 "&cnt0&" , 警告 "&cnt1
'==========================================================================
' Security日志摘要
'==========================================================================
logfile="Security"
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
For Each objItem in colItems
computer=objItem.Caption
Next
'筛选系统日志
Set colItems = objWMIService.ExecQuery("Select * from Win32_NTLogEvent where Logfile='"&logfile&"'",,48)
cnt0=0'审核成功计数
cnt1=0'审核失败计数
cnt2=0'登陆成功计数
cnt3=0'登陆失败计数
cnt4=0'审核日志清除计数
cnt5=0'审核策略变更计数
cnt6=0'用户帐号变更计数
For Each objItem in colItems
dt=objItem.TimeWritten '取得日志时间
t=objItem.Type'取类型
code=objItem.EventCode'取事件id
If Mid(dt,1,8)=str Then
If t="审核成功" Then'---审核成功计数
cnt0=cnt0+1
End If
If t="审核失败" Then'---审核失败计数
cnt1=cnt1+1
End If
If code=528 Or code=540 Or code=552 then'---登陆成功计数
cnt2=cnt2+1
End If
If (code>=529 And code<=537) Or code=539 Or code=548 Or code=549 then'---登陆失败计数
cnt3=cnt3+1
End If
If code=517 then'---审核日志清除计数
cnt4=cnt4+1
End If
If code=612 then'---审核策略变更计数
cnt5=cnt5+1
End If
If code=624 Or code=627 Or code=628 Or code=630 Or code=642_
Or (code>=645 And code<=647) or code=685 then '---用户帐号变更计数
cnt6=cnt6+1
End If
End if
Next
Wscript.Echo "主机 "&computer&" 【"&logfile&"】日志 "&str&" 摘要:" & " 审核成功 "&cnt0&" , 审核失败 "_
&cnt1&" , 登陆成功 "&cnt2&" , 登陆失败 "&cnt3&" , 审核日志清除 "&cnt4&" , 审核策略变更 "&cnt5&_
" , 用户帐号变更 "&cnt6

对于有的服务器,这个过程可能会比较漫长,请千万要耐心.

分享到:
评论

相关推荐

    wmi脚本入门初学者

    WMI 脚本入门,WMI 脚本入门,WMI 脚本入门,WMI 脚本入门,对初学者帮助很大!

    wmi脚本入门

    wmi脚本入门

    Visual C++源代码 82 如何使用WMI条件查询系统服务

    Visual C++源代码 82 如何使用WMI条件查询系统服务Visual C++源代码 82 如何使用WMI条件查询系统服务Visual C++源代码 82 如何使用WMI条件查询系统服务Visual C++源代码 82 如何使用WMI条件查询系统服务Visual C++源...

    WMI 脚本编程指南

    网管人员的好帮手,可实现计算机的远程管理及控制。

    使用wmi条件查询系统服务

    使用wmi条件查询系统服务

    wmi脚本代码生成工具

    是scriptomatic的更新版本,适用于想要利用wmi进行相关系统脚本编写的爱好者

    WMI脚本编写参考手册

    WMI脚本编写参考手册,我也不多说了,反正都是英文的

    windows WMI 脚本教程

    系统的wmi教程,帮助您轻松掌握wmi脚本的编写,使烦琐的系统维护和管理变得轻松、容易。

    编写WMI脚本好帮手

    脚本编程好帮手WMIVSVBS脚本编程好帮手脚本编程好帮手脚本编程好帮手

    WMI脚本编程实现远程开启3389的新手体验

    WMI脚本编程实现远程开启3389的新手体验,活学活用,理论联系实际!

    WMI脚本入门.chm

    内容为中文的,都是微软MSDN的资料,本人只是整理成.chm格式 可自行到MSDN查看, 原链接地址为: 第一部分http://msdn.microsoft.com/zh-cn/library/ms974579.aspx 第二部分...

    怎样使用WMI查询

    WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。...WMI查询可通过WMI命令查询系统的信息,本文档演示如何使用WMI查询。

    WMI信息VB脚本生成器.exe

    本资源可以获取WMI信息,生成VB脚本,执行生成的脚本查看本机或远程计算机的信息。 WMI简述:WMI是Windows Management Instrumentation (Windows管理工具)的缩写,是内置在 Windows 2000、Windows XP 和 Windows ...

    wmi脚本入门----------------

    全面介绍wmi的脚本编程,可做为脚本编写的参考.

    Visual C++源代码 87 如何使用WMI查询处理器信息

    Visual C++源代码 87 如何使用WMI查询处理器信息Visual C++源代码 87 如何使用WMI查询处理器信息Visual C++源代码 87 如何使用WMI查询处理器信息Visual C++源代码 87 如何使用WMI查询处理器信息Visual C++源代码 87 ...

    python使用wmi模块获取windows下的系统信息 监控系统

    Python用WMI模块获取Windows系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。 本文实例讲述了python使用wmi模块获取windows下的系统信息 监控系统 ...

    Visual C++源代码 84 如何使用WMI查询声音设备信息

    Visual C++源代码 84 如何使用WMI查询声音设备信息Visual C++源代码 84 如何使用WMI查询声音设备信息Visual C++源代码 84 如何使用WMI查询声音设备信息Visual C++源代码 84 如何使用WMI查询声音设备信息Visual C++源...

    WMI查询操作系统.rar

    WMI查询操作系统.rar WMI查询操作系统.rar WMI查询操作系统.rar WMI查询操作系统.rar WMI查询操作系统.rar WMI查询操作系统.rar

    Visual C++源代码 86 如何使用WMI查询串行端口信息

    Visual C++源代码 86 如何使用WMI查询串行端口信息Visual C++源代码 86 如何使用WMI查询串行端口信息Visual C++源代码 86 如何使用WMI查询串行端口信息Visual C++源代码 86 如何使用WMI查询串行端口信息Visual C++源...

    WMI脚本入门.rar

    WMI也就是Microsoft®Windows®Management Instrumentation (WMI),是一个Microsoft 主要的针对 Windows 的管理支持技术,可以利用它编写访问系统信息的脚步或程序,它基本上能访问系统上存在的一切信息。...

Global site tag (gtag.js) - Google Analytics