我想使用 logparser 对所有 Windows 登录进行协议处理。对于应用程序或系统,一切都运行正常,但对于安全,则不行。
脚本如下:
"C:\Program Files (x86)\Log Parser 2.2"\logparser.exe -i:EVT -o:TPL -tpl:"C:\scripts\CheckServices\Logparser.tpl" "SELECT TimeGenerated,EventID,EventType,EventTypeName,EventCategory,EventCategoryName,SourceName,Strings,ComputerName,SID,Message FROM \\127.0.0.1\Security WHERE TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(TO_LOCALTIME(SYSTEM_TIMESTAMP())),1200)) AND EventType IN (1;2) ORDER BY TimeGenerated DESC" -q:ON -stats:OFF >> c:\temp\failed.html
(我们特意将时间范围设为 1200,因为我们在此周期内运行脚本)
我想要获取两个文件:
- failed.html 包含所有失败的登录信息
- all.html 包含所有登录信息
我怎样才能实现这个目标?
答案1
您确定要按 EventType 而不是 EventID 进行过滤吗?
EventType 1=Error,2=Warning,这些都存在于其他日志中,但不存在于安全日志中。
安全日志只包含以下类型:8=Successs,16=Failure。
https://msdn.microsoft.com/en-us/library/ms813548.aspx
答案2
如果没有错误消息或问题描述,很难准确说明它为什么不起作用。Clayton 可能是正确的答案,但您还需要确保启动脚本/任务/等的环境具有足够的权限来访问安全日志,因为它需要更高级别的权限。
最后,除非您是脚本的忠实粉丝,否则我还建议您研究一下事件日志产品,它应该能够实时执行相同的操作。例如,活动哨兵灯(完全免费,无需注册)可以实时将事件写入文本文件。