none
Enviar dados de determinados Eventos (Event Viewer) RRS feed

  • Pergunta

  • Bom Dia.

    Estou precisando de mais uma ajuda sua ou de mais alguém aqui do TechNet.

    Quando o serviço para é gerado um evento no EventViewer ("Warning" e "Error").

    É possível enviar os dados destes evento, também?

    "Error" = "ConxRep(V.01.02.00 )" ou "Conex(V.20.02.00 )"

    "Warning" = "ServConexRep(V.01.00.00)" ou "ServConex(V.02.04.00)"

    Agradeço desde já.

    Observação Moderação:

    Tópico iniciado em Verificar Processo Windows e Executar Comando


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches


    • Dividir Fábio JrModerator terça-feira, 18 de setembro de 2012 16:56 Aberto em tópico já encerrado
    • Editado Fábio JrModerator terça-feira, 18 de setembro de 2012 17:00 Observação
    terça-feira, 18 de setembro de 2012 13:22

Respostas

Todas as Respostas

  • Matheus,

    Você pode configurar um evento para enviar e-mail quando um evento surgir no Event Viewer, no artigo abaixo ensina isto via Windows e por linha de comando (wevtutil, acho que é esse o caminho que vc quer) .

    Getting event log contents by email on an event log trigger

    blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger.aspx


    Fábio de Paula Junior

    quarta-feira, 19 de setembro de 2012 01:59
    Moderador
  • Fábio,

    Cheguei a utilizar o comando deste blog e consegui fazer funcionar em um Win 2008, porem como o Servidor que gera os Log's é 2003 então não estou conseguindo.

    No 2008 ele me trouxe o ultimo log de tal ID/Source, perfeito. Mas precisava disto no 2003.

    Mesmo sendo remotamente ele não aceita o comando.

    Teria algo parecido no Win 2003?

    Segue o comando que utilizei:

    wevtutil.exe qe System /q:*[System[(EventID=7036)]] /rd:true /f:text /c:3 /r:ServidorRemoto > %userprofile%\Log7036.txt

    Estarei verificando se é possível "instalar" este comando no Win2003.


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches

    quarta-feira, 19 de setembro de 2012 20:14
  • Matheus,

    Tente utilizar o PsLogList.

    Veja que as opções 

    -n Only display the number of most recent entries specified.
    -i Show only events with the specified ID or IDs (up to 10).
    -l Dump records from the specified event log file.

    PsLogList v2.71 

    technet.microsoft.com/en-us/sysinternals/bb897544.aspx


    Fábio de Paula Junior

    • Sugerido como Resposta Fábio JrModerator sexta-feira, 21 de setembro de 2012 12:38
    • Marcado como Resposta Matheus Sanches sexta-feira, 21 de setembro de 2012 13:39
    quarta-feira, 19 de setembro de 2012 23:57
    Moderador
  • Fabio,

    O PsLogList funcionou muito bem, para mim já atendeu perfeitamente.

    Segue o script que fiz.

    O script verifica o processo EXPLORER.EXE caso ele seja fechado ele verifica nos log's de Application do Event Viewer e salva em um diretório. Em seguida ele começa a enviar o e-mail, procura por todos os arquivos no diretório Log's e atacha todos em seguida ele envia o email. Após isto ele move os Log's do EventViewer para um diretório chamado "Antigos". A próxima verificação do serviço será daqui 5 min que está com o "PING 127.0.0.1 -n (Tempo em Segundos) > NUL".

    Script:

    @ECHO OFF
    
    SET DIR_BLAT="C:\Program Files\Alert-SendMail\blat307\full"
    SET PROCESSO=EXPLORER.EXE
    SET SERVIDOR=ServidorRemoto
    SET EVENTSOURCE=Nome do Evento no EventViewer
    SET EVENTSOURCE2=Segundo Evento (caso precise) no EventViewer
    SET EVENTTIPE=Application Tipo dos Eventos (System, Application, Security, outros) Obs.: Caso queira todos, é só retirar isto.
    SET LOCAL=C:\Program Files\Alert-SendMail\Log
    
    :LOOP
    
    TASKLIST -S \\%SERVIDOR% | FINDSTR/I "%PROCESSO%"
    IF %ERRORLEVEL% NEQ 0 (
    	ECHO PROCESSO NAO ENCONTRADO
    	ECHO ENVIANDO E-MAIL
    	psloglist \\%SERVIDOR% -o "%EVENTSOURCE%" -s -t , %EVENTTIPE% -m 2 > "%LOCAL%\%EVENTSOURCE% - %date:~0,2%%date:~-7,2%%date:~-4,4%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt"
    	psloglist \\%SERVIDOR% -o "%EVENTSOURCE2%" -s -t , %EVENTTIPE% -m 2 > "%LOCAL%\%EVENTSOURCE2% - %date:~0,2%%date:~-7,2%%date:~-4,4%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt"
    	%DIR_BLAT%\blat -to "Para Pessoa 1 <PrimeiraPessoa@microsoft.com>","Segunda Pessoa <SegundaPessoa@outlook.com>" -server smtp.microsoft.com -f DePessoa@microsoft.com -subject "Assunto do E-mail" -attach "%LOCAL%\*.txt" -body "Senhores,||O servico %PROCESSO% localizado no servidor %SERVIDOR% esta fora do ar.||Favor verificar.||Resource IT - Matheus Sanches"
    	move "%LOCAL%\*.TXT" "%LOCAL%\Antigos\"
    	PING 127.0.0.1 -n 300 >NUL
    
    )
    
    
    GOTO :LOOP

    Fábio, muito obrigado pela ajuda tanto neste e no outro tópico. Sua ajuda foi essencial para conseguir construir este script, lembrando que eu apenas fui juntando as informações que você me passou.


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches

    sexta-feira, 21 de setembro de 2012 13:39
  • Seu script ficou muito bom.

    Fábio de Paula Junior

    sexta-feira, 21 de setembro de 2012 13:42
    Moderador
  • Fábio,

    Obrigado pelo elogio e ajuda!

    Senhores,

    Adicionei uma coisa para ele me mostrar "SERVICO EXPLORER.EXE ONLINE" e não o resultado do tasklist.

    Outra coisa que coloquei é para o resultado do tasklist me retornar vazio. adicionando no final da linha " > NUL".

    Então o Script ficou da seguinte forma:

    @ECHO OFF
    
    SET DIR_BLAT="C:\Program Files\Alert-SendMail\blat307\full"
    SET PROCESSO=EXPLORER.EXE
    SET SERVIDOR=ServidorRemoto
    SET EVENTSOURCE=Nome do Evento no EventViewer
    SET EVENTSOURCE2=Segundo Evento (caso precise) no EventViewer
    SET EVENTTIPE=Application Tipo dos Eventos (System, Application, Security, outros) Obs.: Caso queira todos, é só retirar isto.
    SET LOCAL=C:\Program Files\Alert-SendMail\Log
    
    :LOOP
    
    TASKLIST -S \\%SERVIDOR% | FINDSTR/I "%PROCESSO%" > NUL
    IF %ERRORLEVEL% NEQ 0 (
    	ECHO PROCESSO NAO ENCONTRADO
    	ECHO ENVIANDO E-MAIL
    	psloglist \\%SERVIDOR% -o "%EVENTSOURCE%" -s -t , %EVENTTIPE% -m 2 > "%LOCAL%\%EVENTSOURCE% - %date:~0,2%%date:~-7,2%%date:~-4,4%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt"
    	psloglist \\%SERVIDOR% -o "%EVENTSOURCE2%" -s -t , %EVENTTIPE% -m 2 > "%LOCAL%\%EVENTSOURCE2% - %date:~0,2%%date:~-7,2%%date:~-4,4%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt"
    	%DIR_BLAT%\blat -to "Para Pessoa 1 <PrimeiraPessoa@microsoft.com>","Segunda Pessoa <SegundaPessoa@outlook.com>" -server smtp.microsoft.com -f DePessoa@microsoft.com -subject "Assunto do E-mail" -attach "%LOCAL%\*.txt" -body "Senhores,||O servico %PROCESSO% localizado no servidor %SERVIDOR% esta fora do ar.||Favor verificar.||Resource IT - Matheus Sanches"
    	move "%LOCAL%\*.TXT" "%LOCAL%\Antigos\"
    	PING 127.0.0.1 -n 300 >NUL
    
    )
    IF NOT  %ERRORLEVEL% NEQ 0 (
    	ECHO SERVICO %PROCESSO% ONLINE
    )
    
    GOTO :LOOP
    Abraços!

    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches


    sexta-feira, 21 de setembro de 2012 20:07