@Enlighted_one

Чем осуществить парсинг текста в powershell?

Хотел написать короткий скрипт по подсчёту времени проведённому пользователем за компьютером.

$ti = Get-Date -Format "dd mm yyyy"
Get-Eventlog -logname Security -After $ti -InstanceId 4624 | Format-List


Получаю список всех логинов, однако не в строчном а в текстовом формате.
Теперь мне нужно найти логин и время в этом тексте.
Каким образом можно отпарсить текст целиком? Или только построчно?
В какую сторону копать?

И дополнительный вопрос, почему powershell так не понимает и обязательно надо вводить промежуточную переменную:
Get-Eventlog -logname Security -After Get-Date -Format "dd mm yyyy" -InstanceId 4624 | Format-List
  • Вопрос задан
  • 682 просмотра
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
пока отвечу а второй вопрос
Get-Eventlog -logname Security -After Get-Date -Format "dd mm yyyy" -InstanceId 4624 | Format-List

Парсер вас просто не понимает. Возьмите в скобки.

Get-Eventlog -logname Security -After (Get-Date -Format "dd mm yyyy" ) -InstanceId 4624 | Format-List

И формат лишний-там тип datetime, а не строка
Get-Eventlog -logname Security -After (Get-Date).Date -InstanceId 4624 | Format-List


Если вы хотите дальше как-то выбирать или сортировать - уберите format-list. Это уже вывод на консоль, с которым дальше делать что-то сложно

Теперь первый вопрос.

Имя логина содержится в ReplacementStrings[5]
Поиск и фильтрация осуществляется примерно так

Get-Eventlog -logname Security -After (Get-Date).Date -InstanceId 4624 | Where-Object { $_.ReplacementStrings[5] -match 'pupkin' -and $_.TimeGenerated -lt '2022-05-05 11:00'}


можно группировать по логину
Get-Eventlog -logname Security -After (Get-Date).Date -InstanceId 4624 | Group-Object { $_.ReplacementStrings[5] }


Пример выборки полей
Get-Eventlog -logname Security -After (Get-Date).Date -InstanceId 4624 | Select-Object @{n='Username'; e={$_.ReplacementStrings[5]}}, TimeGenerated
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы