【问题标题】:Powershell - Getting advanced eventlog informations (xml?)Powershell - 获取高级事件日志信息(xml?)
【发布时间】:2020-03-27 23:17:02
【问题描述】:

我需要从事件日志中读取特定信息。 例如 - 安全日志,ID 4648。使用简单的“Get-Eventlog”,我无法以简单的方式获取 TargetUserName 或 TargetDomainName 之类的信息 - 只能从 .message 值中获取,但从全文中读取一/两个信息要困难得多。我可以从 XML 事件日志中读取它,而不将日志导出到文件吗?

【问题讨论】:

  • 我们还没有收到您的来信.. 任何给定的答案是否解决了您的问题?如果是这样,请点击左侧的✓ 考虑accepting。这将帮助其他有类似问题的人更轻松地找到它。

标签: xml windows powershell event-log


【解决方案1】:
【解决方案2】:

使用 Get-WinEvent cmdlet,您可以获取 XML 事件数据并从那里创建输出。

下面的代码正是这样做的,并返回一个 PsCustomObjects 数组,其中包含找到的所有事件属性。

$result = Get-WinEvent -FilterHashtable @{LogName="Security";Id=4648} -MaxEvents 100 | ForEach-Object {
    # convert the event to XML and grab the Event node
    $eventXml = ([xml]$_.ToXml()).Event
    # create an ordered hashtable object to collect all data
    # add some information from the xml 'System' node first
    $evt = [ordered]@{
        EventDate = [DateTime]$eventXml.System.TimeCreated.SystemTime
        Computer  = $eventXml.System.Computer
    }
    $eventXml.EventData.ChildNodes | ForEach-Object { $evt[$_.Name] = $_.'#text' }
    # output as PsCustomObject. This ensures the $result array can be written to CSV easily
    [PsCustomObject]$evt
}

# output to screen
$result

# output to CSV file
$result | Export-Csv D:\test.csv -NoTypeInformation

【讨论】:

    【解决方案3】:

    PowerShell 有一个命令“Get-EventLog”,在此 URL 中有描述:“https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-eventlog?view=powershell-5.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多