AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 783708
Accepted
smwk
smwk
Asked: 2016-06-14 10:52:58 +0800 CST2016-06-14 10:52:58 +0800 CST 2016-06-14 10:52:58 +0800 CST

Converter arquivos evtx salvos em texto

  • 772

Estou procurando exportar uma grande quantidade de arquivos de log de segurança salvos (.evtx) para texto ou formato CSV. Eu encontrei o wevtutil, mas isso só parece ser capaz de converter .evt para .evtx ao lidar com arquivos de log salvos:

wevtutil epl c:\logs\seclog.evtx c:\logs\seclog.txt /lf:true

O arquivo é criado como seclog.txt, mas está no formato .evtx.

É possível converter em texto ou existe outra maneira de converter os arquivos em texto com a mesma rapidez? Eu tentei com o Powershell, mas demora muito.

Edit: Eu olhei para o Log Parser e parece rápido também, mas não exporta o campo de descrição corretamente:

The description for Event ID xxx in Source "Microsoft-Windows-xxxx" cannot be found. The local computer may not have the...
windows-event-log windows-server-2008-r2 wevtutil
  • 4 4 respostas
  • 13990 Views

4 respostas

  • Voted
  1. Best Answer
    smwk
    2016-06-15T08:44:21+08:002016-06-15T08:44:21+08:00

    No final, usei o Log Parser para converter em CSV e, em seguida, [System.IO.File]::ReadLines($filename) para pesquisar no texto. Um arquivo .evtx de 800 MB pode ser convertido em cerca de 2 minutos e 30 segundos e, em seguida, a leitura do arquivo leva cerca de 2 minutos. Possivelmente, poderia ser mais rápido exportar para XML ou para um banco de dados, mas será suficiente para mim com a quantidade de tempo que gastei.

    $logparser = "c:\program files (x86)\Log Parser 2.2\logparser.exe"
    $query = "SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx"
    
    & $logparser -i:evt -o:csv $query
    
    • 2
  2. Andrey Sapegin
    2016-07-08T00:38:16+08:002016-07-08T00:38:16+08:00

    Pelo que me lembro, o LogParser não foi capaz de extrair todas as informações do evento (quero dizer System e EventData que você pode ver na visualização xml para cada evento no EventViewer). Portanto, fui com powershell. Meu script funciona bem, mas é muito lento: leva cerca de 80 segundos para converter um arquivo .evtx de 10 Mb...

    $a = Get-Item *.evtx
    $output_file = [System.IO.StreamWriter] $("all.csv")
    foreach($file in $a){
        $events = get-winevent -path $file.FullName
    
        foreach ($Event in $events) { 
            $xml = [xml]($Event.ToXml())
    
            foreach ($s in $xml.Event.System.ChildNodes) {
                $output_file.Write($s.Name + ":" + $s.InnerText + ",")
            }
            foreach ($d in $xml.Event.EventData.Data) {
                $text = $d.InnerText
                $text = if ($text) { $text.replace("`n","") } else { $text }
                $output_file.Write($d.Name + ":" + $text + ",")
            }
            $output_file.WriteLine()
        }
    }
    
    $output_file.Flush()
    $output_file.Close()
    
    • 0
  3. Dan H.
    2021-10-20T19:51:27+08:002021-10-20T19:51:27+08:00

    Eu precisava converter em massa um monte de arquivos .evtx para .txt - acabei fazendo com que o Log Parser convertesse para .csv (que posso então renomear .txt), mas a maneira mais fácil (e usa apenas ferramentas nativas do Windows) foi para usar wevtutil.

    wevtutil /qe File.evtx /lf: true abrirá e exibirá o arquivo .evtx em um cmd. Tudo o que você precisa fazer é gerar essa saída como um arquivo .txt!

    wevtutil /qe File.evtx /lf: true > File.txt

    Eu fiz um script em lote que verificará recursivamente uma pasta para todos os seus arquivos de eventos bem datados e converterá cada arquivo .evtx em um .txt dentro dessa pasta:

    set spath=\\SERVER\Share\Audits
    set eventLogDir="dir /B /s %spath% | findstr  \.evtx$"
    FOR /F %%d in ('%eventLogDir%') do wevtutil qe %%d /lf:true > %%d.txt
    

    Editar - percebi que a saída da consulta wevtutilnão é muito agradável de ler. Usando o Log Parser com meu script, consegui obter uma saída melhor e salvar ainda com .txt

    set spath=\\SERVER\Share\Audits
    set eventLogDir="dir /B /s %spath% | findstr  \.evtx$"
    FOR /F %%d in ('%eventLogDir%') do "C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "Select * into %%d.txt from %%d" -i:evt -o:csv
    
    • 0
  4. Jason
    2021-11-09T07:45:04+08:002021-11-09T07:45:04+08:00

    Se você está procurando uma maneira de apontar e clicar para converter arquivos EVTX, experimente o Gigasheet. É um aplicativo baseado na web que analisa EVTX e você pode exportar dados no formato CSV. Você pode fazer upload de até 99 arquivos simultaneamente e é gratuito fazer upload de arquivos de até 10 GB.

    Detalhes completos aqui: https://www.gigasheet.co/post/online-evtx-parser-and-viewer

    Nossa análise no Gigasheet é baseada no analisador Rust EVTX de @omerbenamram. Olhando para os benchmarks no Github, parece que o desempenho deve ser ótimo para a maioria dos aplicativos: https://github.com/omerbenamram/evtx

    Divulgação completa: sou co-fundador da Gigasheet.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve