使用 Powershell 从日志文本中提取用户名

药膏

我试图从事件查看器日志中提取所有登录尝试失败的用户名,然后只列出用户名。然而,每个条目的数据都是文本,所以我很难只提取名称(在这种情况下为 Intruder123)。这将是存储在一个数组中的几百个帐户名。

$String = Get-WinEvent @{LogName='Security';ProviderName='Microsoft-Windows-Security-Auditing';ID=4625 }  -ComputerName SECRETSERVER |
    Select-Object -ExpandProperty Message

$string -match "Account Name:       (?<content>.*)"
$matches['content']

数据如下所示(多次):

Account For Which Logon Failed:
    Security ID:        S-1-0-0
    Account Name:       Intruder123
    Account Domain:     SECRET.LOCAL
跟随

我认为您可以收集更多信息,例如登录失败的时间以及在哪台计算机上。为此,创建一个结果对象数组。
此外,尝试解析 Message 属性可能很麻烦,我认为从事件中以 XML 形式获取信息要好得多:

$filter = @{LogName='Security';ProviderName='Microsoft-Windows-Security-Auditing';ID=4625 }
$result = Get-WinEvent -FilterHashtable $filter -ComputerName SECRETSERVER | ForEach-Object {
    # convert the event to XML and grab the Event node
    $eventXml = ([xml]$_.ToXml()).Event
    $userName = ($eventXml.EventData.Data | Where-Object { $_.Name -eq 'TargetUserName' }).'#text'
    $computer = ($eventXml.EventData.Data | Where-Object { $_.Name -eq 'WorkstationName' }).'#text'
    # output the properties you need
    [PSCustomObject]@{
        Time     = [DateTime]$eventXml.System.TimeCreated.SystemTime
        UserName = $userName
        Computer = $computer
    }
}

# output on screen
$result

# output to CSV file
$result | Export-Csv -Path 'X:\FailedLogons.csv' -NoTypeInformation

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用PowerShell从文本文件中提取用户名和电子邮件

string 和 powershell 从数组中提取用户名

Powershell Get-ChildItem 从配置文件文件夹中提取用户名

从给定的组列表中提取用户,并使用 powershell 将数据提取到文本中的每个新组名

使用windbg从内存转储中提取用户名

使用正则表达式从 url 中提取用户名

使用正则表达式从 Twitter 数据中提取用户名

使用Java从日志文件读取用户名

使用正则表达式和 sql 从 url 中提取用户名和密码

如何使用powershell将vpn日志用户名导出到csv?

从日志中提取用户名和组名

使用 powershell 从大文件中提取文本

从文本文件中提取用户名

使用Powershell在网页中填充用户名/密码

从txt文件中提取名字和姓氏,并使用它从AD中获取用户名并将其导入到csv中

Powershell 在 gpedit 脚本中获取用户名

使用用户名更新母版页标签,而无需从会话中提取

使用Powershell从字符串中提取文本

使用Powershell从纯文本文件中提取表

如何在PowerShell控制台中使用用户名和密码使用wget

使用Golang获取用户名和域名

无法从表单获取用户名(使用“ post”)

使用 customUserNamePasswordValidatorType 时获取用户名

如何使用 Javascript 获取用户名

使用Youtube Data API 3.0获取用户名

使用 Firebase 按属性获取用户名

Linux脚本从文本文件中提取用户名

Powershell-使用Microsoft帐户查找用户名和密码

使用 PnP PowerShell 连接(无需用户名和密码)