Выбор определенных строк / данных из сообщения Get-Winevent в powershell
Я пытаюсь извлечь конкретную строку из вывода сообщения командлета get-winevent и не смог найти способ сделать это (возможно, я искал неправильно, но все еще изучаю более сложные методы сценариев). Что я бегу это:
Get-WinEvent -ComputerName $DC -FilterHashtable @{Logname='Security';Keywords='9007199254740992';Data=$userid} -MaxEvents 1 | Select Message | Format-List
Который вернется с сообщением, похожим на это (Изменил некоторую информацию на общую информацию):
Message : The computer attempted to validate the credentials for an account.
Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Logon Account: jdoe
Source Workstation: Generic-Computername
Error Code: 0x0
Я пытаюсь найти простой способ найти компьютер, на котором кто-то последний раз входил, для более быстрого устранения неполадок, но я не могу отфильтровать только строку "Исходная рабочая станция", у меня может просто не быть правильного синтаксиса для хорошего поиска, чтобы найти нужные мне результаты. ищу, но я искал около недели и не нашел ничего похожего на то, что я ищу, любая помощь будет отличной!
1 ответ
Я не уверен, какую информацию вы хотите получить, но я уверен, что есть лучший способ, чем использовать Get-WinEvent для получения этой информации. Однако, если вы просто хотите получить значение Source Workstation
Вы можете сделать это с помощью регулярного выражения:
$event = Get-WinEvent `
-ComputerName $DC `
-FilterHashtable @{Logname='Security';Keywords='9007199254740992';Data=$userid} `
-MaxEvents 1 `
| Select -expand Message
[regex]::Match($event, 'Source Workstation:\s*(.*)\s*').Groups[1].Value