Wevtutil equivalente para o script powershell para obter logs de eventos

1

Eu fiz um script powershell, que é como abaixo, mas desde que eu não será capaz de salvá-lo no formato .evtx. Eu quero o equivalente wevtutil (usando wevtutil epl) para o mesmo.Por favor, ajude!

$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}

Apenas para dizer o que o script está fazendo. Está recebendo o timestammp para o último erro de aplicativo 1000 ocorrido, adicionando e subtraindo duas horas para esse registro de data e hora e, em seguida, consultando a segurança do sistema de aplicativos e a configuração entre esses horários.

Eu preciso de algo assim

wevtutil epl Application where time >= $Start_Time and time <= $End_Time

Por favor ajude.

    
por Akshay 11.01.2016 / 07:26

1 resposta

0

Você pode usar o XPath para fazer consultas de eventos específicas, com muitas ferramentas de eventos (Event MMC, Powershell e Wevtutil). Estou confortável com estruturas XML em outros casos, pacotes de gerenciamento SCOM, HTML, etc, mas acho XPath um pouco mais difícil de obter apenas para a direita. Alguns pontos a serem lembrados são:

  1. Você precisa fazer a consulta com o horário Universal porque é assim que o subsistema de eventos registra o tempo. O tempo também precisa ser formatado como classificável como ISO 8601 como 2016-01-10T18: 47: 34 .
  2. Você precisa cercar o tempo entre aspas simples para a consulta e também escapar dessas aspas para powershell, porque o powershell trata as coisas dentro de aspas simples não escapadas como literais, o que significa que variáveis dentro de aspas simples não são expandidas a menos que sejam escapadas. / li>
  3. Outras vezes que usei XPath, é necessário maior / menor que como & gt; / & lt; mas aqui isso não funcionaria. Apenas o real > < símbolos trabalhados.
  4. O início da consulta Xpath contém "Sistema", isso NÃO se refere ao tipo de log de eventos, refere-se à ramificação Sistema do XML de evento (captura de tela abaixo para um evento do log do Aplicativo)

Amostra

$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
}

    
por 11.01.2016 / 17:52