我需要一种免费的方法来监控 Windows 事件日志,并且当记录特定事件时,我需要启动 VBS 脚本。有没有可以做到这一点的工具?
答案1
如果你的服务器上安装了 PowerShell 2.0,你可以使用它来自己动手。看看获取事件日志和发送邮件消息cmdlet。复习一下PowerShell 如何处理逻辑循环趁你还在做这件事的时候。
从那里,您可以轻松地使用 cscript.exe 调用您想要的任何脚本
如果你不想制作自己的日志解析脚本(这并不难,保证!)那么请查看事件报告器这是一个付费工具。
答案2
这可能有点超出你的预期,但 SCOM 可以做这种事 http://www.microsoft.com/systemcenter/en/us/operations-manager.aspx
它能够执行 VB 脚本和 Powershell,但使用 Powershell 时必须使用创作控制台,因为标准 SCOM 控制台不支持 Powershell。 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14989
SCOM 是一个非常好的系统,我们在工作中使用它,因此我们将它用于这种类型的事情,但正如所说的那样,它可能超出了你想要的范围。
答案3
如果您已经会使用 vbscript,则可以扩展现有脚本并直接通过 WMI 监视事件日志。以下是我使用的:
Set objWMIService = GetObject("winmgmts:" & _
{impersonationLevel=impersonate,(Security)}!\\.\")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("Select * from __instancecreationevent where TargetInstance isa 'Win32_NTLogEvent'")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
strTimeWritten = objLatestEvent.TargetInstance.TimeWritten
strSource = objLatestEvent.TargetInstance.SourceName
strType = objLatestEvent.TargetInstance.Type
' etc
loop
希望这可以帮助。