powershell从安全日志返回用户名

powershell从安全日志返回用户名,powershell,event-log,Powershell,Event Log,我有一个脚本,它从安全日志中返回用户名、日期、登录类型和消息,事件ID为4624,登录类型为2的4634 问题是它只返回用户名的一部分。例如,如果用户名为aaaa.bbbb,则仅返回aaaa。如果用户名为cccc,则返回cccc。我怎样才能得到完整的用户名 $content = $i.message| Find-Matches -Pattern “Kontoname:\s+\w+” if($content.Count -eq 2) {$account = $content[1]} else {$

我有一个脚本,它从安全日志中返回用户名、日期、登录类型和消息,事件ID为4624,登录类型为2的4634

问题是它只返回用户名的一部分。例如,如果用户名为aaaa.bbbb,则仅返回aaaa。如果用户名为cccc,则返回cccc。我怎样才能得到完整的用户名

$content = $i.message| Find-Matches -Pattern “Kontoname:\s+\w+”
if($content.Count -eq 2) {$account = $content[1]} else {$account = $content}
$account = (($account -split “:”)[1]) -replace “\s+”,”"`

我没有任何用于事件4623和4634的示例数据,但我发现结果System.Diagnostics.Eventing.Reader.EventLogRecord中的“Properties”属性或“ToXML”方法非常有用。比手动解析“消息”内容更有用

试试这个

#Get an example event to work with
    $EventExample = Get-WinEvent <#your params here#> | Select -first 1

#Using properties property
#This will list some data you can access through the properties member
#From here, just figure out which array index you need
    $EventExample.Properties 

#Using ToXML method
#This will list the same data as properties...
#With a Name (key) and a #text (value) that you can use to help identify the data
    $EventXML = [xml]$EventExample.ToXML()
    $EventXML.event.eventdata.data 
#获取要处理的示例事件
$EventExample=获取WinEvent |选择-第一个1
#使用属性属性
#这将列出一些您可以通过properties成员访问的数据
#从这里,只需找出您需要的数组索引
$EventExample.Properties
#使用ToXML方法
#这将列出与属性相同的数据。。。
#带有名称(键)和#文本(值),可用于帮助识别数据
$EventXML=[xml]$EventExample.ToXML()
$EventXML.event.eventdata.data
从Ashley McGlone处获取此事件数据


祝你好运

谢谢你的回答,但我仍然需要我所描述的