Обложка канала

Windows 11, 10, etc - Вадим Стеркин

10333 @sterkin_ru

Авторский канал. Windows 11, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов

Windows 11, 10, etc - Вадим Стеркин

4 года назад
Открыть в
▶️ Как быстро посмотреть, записывается ли в журнал событий результат некоего действия (SE01E02) Читатель Toshan внезапно доставил, что в #Windows10 не работает показанный недавно прием опроса всех журналов событий с помощью хэш-таблицы. С перечислением отдельных журналов все в порядке, но ничего не находит запрос: Get-Winevent -LogName '*' То есть проблема не в хэш-таблице. И это несмотря на заявленную для этого параметра поддержку подстановочных символов 🤦‍♂️ Я-то тестировал в #Windows11, и мне в голову не могло прийти, что в предыдущей ОС это не работало. Заодно в справке обнаружилось примечание, что опрос Get-WinEvent ограничен 256 журналами из-за особенностей WinAPI. Там же предлагается и обходной путь: Get-WinEvent -ListLog * | ForEach-Object {Get-WinEvent -LogName $_.Logname} Однако параметр -LogName взаимоисключающий с хэш-таблицей. Поэтому так: Get-WinEvent -ListLog * -ea 0 | ForEach-Object { Get-WinEvent -ea 0 -FilterHashTable @{ LogName=$($_.LogName) StartTime=(Get-Date).AddMinutes(-2) } } Еще можно привлечь -FilterXPath с его вырвиглазным синтаксисом 🙄 Та же задача поиска событий за последние две минуты во всех журналах решается так: $XPath = '*[System[TimeCreated[timediff(@SystemTime) <= 120000]]]' Get-WinEvent -ListLog * | ForEach-Object { Get-WinEvent -ErrorAction 0 -LogName $_.Logname -FilterXPath $XPath } Время здесь в миллисекундах. Но можно указывать и абсолютные значения. Выборка событий между двумя отсечками времени выглядит как-то так: $XPath = '*[System[TimeCreated[@SystemTime >="2022-10-03T13:30:00.000Z" and @SystemTime <= "2022-10-03T13:45:59.999Z"]]]' Пожалуй, я остановлюсь на этом. А то веселый поначалу сериал начал стремительно скатываться в хоррор 😱
Windows 11, 10, etc - Вадим Стеркин

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

Telegram