Назад | Перейти на главную страницу

Эквивалент Wevtutil для сценария PowerShell для получения журналов событий

Я создал сценарий PowerShell, как показано ниже, но поскольку я не смогу сохранить его в формате .evtx. Мне нужен эквивалент wevtutil (с использованием wevtutil epl) для того же самого. Пожалуйста, помогите!

$ErrorTime=Get-WinEvent -FilterHashtable @{
  Logname      = 'Application'
  ID           = 1000
  ProviderName = 'Application Error'
} -MaxEvents 1 | select Select-Object -Expand TimeCreated

$Start_Time = ($ErrorTime).addhours(-2)
$End_Time = ($ErrorTime).addhours(2)

Get-WinEvent -FilterHashtable @{
     Logname='Application','System','Security' 'Setup' 
     StartTime=$Start_Time
     EndTime =$End_Time}

Просто чтобы рассказать, что делает сценарий. Он получает метку времени для последней ошибки приложения 1000, прибавляя и вычитая два часа из этой метки времени, а затем запрашивая безопасность системы приложения и настройку между этими временами.

Мне нужно что-то вроде этого

wevtutil epl Application, где time> = $ Start_Time и time <= $ End_Time

Пожалуйста помоги.

Вы можете использовать XPath для выполнения конкретных запросов событий со многими инструментами обработки событий (Event MMC, Powershell и Wevtutil). Мне удобны структуры XML в других случаях, пакеты управления SCOM, HTML и т. Д., Но мне немного сложнее понять XPath. Следует помнить следующее:

  1. Вам нужно сделать запрос с универсальным временем, потому что именно так подсистема событий регистрирует время. Время также необходимо отформатировать как сортируемый ISO 8601, например 2016-01-10T18: 47: 34.
  2. Вам нужно заключить время в одинарные кавычки для запроса, а также избежать этих кавычек для powershell, потому что powershell обрабатывает вещи в одинарных кавычках без экранирования как литералы, что означает, что переменные в одинарных кавычках не раскрываются, если не экранированы.
  3. В других случаях я использовал XPath, требовалось больше / меньше, чем как & gt; / & lt; но здесь это не сработает. Работали только фактические символы> <.
  4. Начало запроса Xpath содержит «System», это НЕ относится к типу журнала событий, оно относится к ветви System XML события (снимок экрана ниже для события из журнала приложения)

Образец

$time1 = ((get-date).toUniversalTime()).addHours(-22)
$time2 = ((get-date).toUniversalTime()).addHours(-24)
$newest = get-date($time1) -f s
$oldest = get-date($time2) -f s
$newest
$oldest
foreach ($logName in "Application Security System Setup".split(" ")) {
    WEVTUTIL.EXE EPL $logName "C:\temp\my$logName.evtx" "/q:*[System[TimeCreated[@SystemTime<=`'$newest`' and @SystemTime>=`'$oldest`']]]" /ow:true
}