我試圖從事件查看器日志中提取所有嘗試登錄失敗的用戶名,然后只列出這些用戶名。然而,每個條目的資料都是文本,所以我很難只提取名稱(本例中為 Intruder123)。這將是一個存盤在陣列中的幾百個賬戶名稱。
$String = Get-WinEvent @{LogName='Security'/span>; ProviderName='Microsoft-Windows-Security-Auditing';ID=4625 } -計算機名稱SECRETSERVER |
Select-Object -ExpandProperty Message
$string -match "賬戶名。 (?<content>.*)"
$matches['content']
資料看起來像這樣(多次):
Account For Which Logon Failed:
安全ID: S-1-0-0
賬戶名稱: Intruder123
賬戶域名: SECRET.LOCAL
uj5u.com熱心網友回復:
我認為你可以收集一些更多的資訊,比如登錄失敗發生的時間和在哪臺電腦上。為此,創建一個物件的結果陣列。
$filter = @{LogName='Security'/span>; ProviderName='Microsoft-Windows-Security-Auditing';ID=4625 }
$result = Get-WinEvent -FilterHashtable $filter -ComputerName SECRETSERVER | ForEach-Object {
# 將事件轉換為XML并抓住事件節點。
$eventXml = ([xml]$_.ToXml()) 。
$userName = ($eventXml.EventData. 資料|Where-Object { $_.Name -eq 'TargetUserName' }).'#text'。
$computer = ($eventXml.EventData. 資料|Where-Object { $_.Name -eq 'WorkstationName' }).'#text'。
# 輸出你需要的屬性。
[PSCustomObject]@{
時間 = [DateTime]$eventXml.System.TimeCreated.SystemTime
UserName = $userName。
計算機 = $computer。
}
}
# 輸出到螢屏上
$result[/span
# 輸出到CSV檔案
$result | Export-Csv -Path 'X:FailedLogons.csv' /span> -NoTypeInformation
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309311.html
標籤:
下一篇:如何利用DefenderforEndpointRestAPI,使用PowerShell向高級狩獵查詢傳遞一個變數
