▶️ Как быстро посмотреть, записывается ли в журнал событий результат некоего действия
Иногда нужно оттолкнуться от события в журнале, но неизвестно, создается ли оно в результате действия. Например, регистрируются ли события при переходе системы в режим экономии заряда?
Да, в четыре журнала Windows (Приложения, Система, Установка, Безопасность) можно и вручную быстро потыкать. Но есть еще десятки журналов приложений и служб...
👉 Конечно, решает #PowerShell, и в данном случае удобно задействовать хэш-таблицу.
Get-WinEvent -ErrorAction 0 -FilterHashTable @{
LogName='*'
StartTime=(Get-Date).AddMinutes(-2)
}
🔸 -FilterHashTable создает хэш-таблицу, а главное - фильтрует содержимое журнала. Василий Гусев напоминает, что фильтр намного быстрее, чем Get-WinEvent | Where-Object ...
🔸 LogName='*' ищет во всех журналах, но можно смотреть в конкретных, перечисляя их через запятую:
LogName='Application','Microsoft-Windows-Diagnostics-Performance/Operational'
🔸 StartTime=(Get-Date).AddMinutes(-2) отбирает события, созданные в течение последних двух минут. И да, иногда надо немного подождать, чтобы событие зарегистрировалось.
ℹ️ С хэш-таблицей очень просто делать выборку по ID и уровню события, его поставщику, ключевым словам и т.д. Примеры в документации, хотя по факту это пост из блога Scripting Guys.
Кстати, с поставщиком легко наступить на грабли, потому что в общих сведениях о событии имя источника часто не соответствует провайдеру. Опирайтесь на XML✌️