首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vbscript解析安全事件日志

用vbscript解析安全事件日志
EN

Stack Overflow用户
提问于 2015-05-17 19:36:45
回答 1查看 1.4K关注 0票数 0

我在您的站点VBscript to get the properties of event from event ID上找到了这段代码,并将其修改为解析安全事件日志消息的不同部分,但是我没有得到任何结果。

代码语言:javascript
复制
    Set wmi = GetObject("winmgmts://./root/cimv2")

Set re = New RegExp
re.Pattern = "New Logon:\s+" & _
             "Security ID:\s*(.*?)\s+" & _
             "Account Name:\s*(.*?)\s+" & _
         "Account Domain:\s*(.*?)\s+" & _
         "Logon ID:\s*(.*?)\s+" & _
             "Logon GUID:\s*(\d+)"

qry = "SELECT * FROM Win32_NTLogEvent WHERE EventCode=4624"
For Each evt In wmi.ExecQuery(qry)
For Each m In re.Execute(evt.Message)
    Security_ID = m.SubMatches(0)
    Account_Name  = m.SubMatches(1)
    Account_Domain  = m.SubMatches(2)
    Logon_ID  = m.SubMatches(3)
    Logon_GUID = m.SubMatches(4)
WScript.Echo "Yes"
Next
WScript.Echo "New Logon" & Account_Name & " " & Account_Domain & " " & Logon_ID
WScript.Echo " "
Next

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2015-05-18 09:24:06

重要信息:

  • 重新构造的Pattern属性(登录GUID);

化妆品

  • option explicitON ERROR GOTO 0作为一般原则;
  • where子句在wmi查询中的扩展仅仅是为了合理限制输出范围;
  • 用于调试的更广泛的echo
  • mm而不是m变量:我讨厌一个字母的名字.

剧本:

代码语言:javascript
复制
option explicit
ON ERROR GOTO 0

Dim re, qry, evt, mm, wmi

Set re = New RegExp
re.Pattern = "New Logon:\s+" _
             & "Security ID:\s*(.*?)\s+" _
             & "Account Name:\s*(.*?)\s+" _
             & "Account Domain:\s*(.*?)\s+" _
             & "Logon ID:\s*(.*?)\s+" _
             & "Logon GUID:\s*({.*?})"
'  re.IgnoreCase = True         ' Set case insensitivity.
'  re.Global     = True         ' Set global applicability.

qry = "SELECT * FROM Win32_NTLogEvent WHERE logfile='security'" _
  & " and EventCode=4624 " _
  & " and (RecordNumber = 36413 or RecordNumber = 44911)"

Dim Security_ID, Account_Name, Account_Domain, Logon_ID, Logon_GUID

Set wmi = GetObject("winmgmts://./root/cimv2")

For Each evt In wmi.ExecQuery(qry)
  For Each mm In re.Execute(evt.Message)
      Security_ID   = mm.SubMatches(0)
      Account_Name  = mm.SubMatches(1)
      Account_Domain= mm.SubMatches(2)
      Logon_ID      = mm.SubMatches(3)
      Logon_GUID    = mm.SubMatches(4)
    WScript.Echo "Yes        " & evt.TimeGenerated
  Next
WScript.Echo "New Logon  " & Account_Name & "," & Account_Domain & "," & Logon_ID
WScript.Echo "Logon_GUID " & Logon_GUID
Next

Output (管理员命令提示控制台):

代码语言:javascript
复制
==>cscript.exe D:\VB_scripts\SO\30291316.vbs
Yes        20150517203428.318232-000
New Logon  ANONYMOUS LOGON,NT AUTHORITY,0x3C70F59
Logon_GUID {00000000-0000-0000-0000-000000000000}
Yes        20150518073715.217688-000
New Logon  SYSTEM,NT AUTHORITY,0x3E7
Logon_GUID {00000000-0000-0000-0000-000000000000}

==>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30291316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档