Um dos novos recursos do Server 2008 é a capacidade de anexar uma tarefa a um evento específico nos logs de eventos. Uma das ações disponíveis é enviar um email por meio de um servidor SMTP.
Isso está funcionando muito bem, no entanto, seria ideal se, no corpo da mensagem, o conteúdo do evento pudesse ser colocado. Eu tentei usar $ eventdescription e% eventdescription%, mas essas são apenas fotos no escuro. Qualquer quantidade de pesquisa no Google não produz resultados.
Alguém sabe se isso é possível?
Atualização : A sugestão de Sparks abaixo é um passo na direção certa, acredito, no entanto, esse método não parece funcionar para todos os valores. Por exemplo, eu posso extrair o RecordID, Severity e Channel como mostrado, mas não posso usar o mesmo método para recuperar o EventID ou, mais importante, a descrição.
Aqui está o XML bruto de um evento:
[Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"]
[System]
[Provider Name="DFSR" /]
[EventID Qualifiers="16384"]4412[/EventID]
[Level]4[/Level]
[Task]0[/Task]
[Keywords]0x80000000000000[/Keywords]
[TimeCreated SystemTime="2009-05-14T18:18:09.000Z" /]
[EventRecordID]45692[/EventRecordID]
[Channel]DFS Replication[/Channel]
[Computer]servername.domain.com[/Computer]
[Security /]
[/System]
[EventData]
[Data]9046C3F4-843E-4A53-B941-4B20764072E5[/Data]
[Data]D:\departments\Geomatics\Plan Quality\Data Processing\CG3533017 2009-05-13 KT FIXED[/Data]
[Data]D:\departments[/Data]
[Data]{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data]
[Data]Departments[/Data]
[Data]domain.ca\files\departments[/Data]
[Data]B8242CE2-F5EB-47DA-BA5B-1DD2F7EE3AB9[/Data]
[Data]DFAA7A54-66CB-4C31-81A0-0F861382C32C[/Data]
[Data]CG3533017 2009-05-13-{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data]
[/EventData]
[/Event]
Eu tentei usar um ValueQuery para EventData, mas ele não retorna dados.
fonte
Respostas:
Fiz isso de maneira um pouco diferente, mas essa abordagem gera emails sobre novos eventos que correspondem a um filtro personalizado, com todos os detalhes do evento incluídos no corpo do email.
1) Crie uma 'Visualização personalizada' no Visualizador de Eventos com o filtro desejado.
2) Depois de ter a visualização, você verá um link para 'Anexar tarefa a esta visualização personalizada ...'.
Eu escolhi usar o sendMail.exe a partir daqui ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) que extraí para C: \ sendmail. O motivo é que a ação 'Enviar um email' da Microsoft tem problemas com a autenticação SMTP e também aparentemente nem está presente no Server 2012.
Portanto, no meu caso, selecionei 'Iniciar um programa' enquanto anexava a tarefa à Visualização Personalizada. Mas vamos editá-lo como XML, portanto, não se preocupe em preenchê-lo através da GUI.
3) Exporte a nova tarefa para XML, nós a editaremos mais tarde.
4) Crie um arquivo 'mail-event.bat' na pasta C: \ sendmail com as três linhas a seguir:
Obviamente, substitua 'smtp_server', 'de', 'user', 'pass', 'para', 'subject' pelos valores desejados.
Isso criará um arquivo '$ (EventRecordID) .log' em C: \ sendmail com todos os detalhes desse evento, envie-o por correio e exclua-o.
Você pode testar se o arquivo em lotes funciona acessando o Event Viewer, abrindo um evento no log de Aplicativos, alternando para a guia Detalhes, selecionando 'XML View' e procurando EventRecordID. Copie esse número inteiro e execute a partir da linha de comando:
C: \ sendmail> log-event.bat 53522
Obviamente, substituindo 53522 pelo valor do nó EventRecordID. Se você receber o email, vá para o seu lugar feliz.
NOTA BEM: Você deve ter notado que a string 'Aplicativo' aparece algumas vezes na linha de comando do wevtutil.exe - é porque eu não conseguia fazê-lo funcionar apontando-a diretamente para o Modo de Exibição Personalizado. A exibição personalizada passou a ser um subconjunto de eventos que estão todos dentro do log do aplicativo. Pode ser necessário ajustar isso para que funcione no seu caso, se você estiver tentando enviar eventos do log do sistema, por exemplo.
5) Edite o XML que você exportou, faremos duas alterações:
Primeiro, adicione o seguinte nó 'ValueQueries' no XML no nó 'EventTrigger':
NOTA: No exemplo acima, recortei as informações de 'Assinatura' que foram preenchidas com base na Visualização personalizada que você criou. Não copie minha 'Assinatura' em seu XML!
Segundo, substitua o nó Actions pelo seguinte:
Agora, faça com que um novo evento apareça na sua Visualização personalizada e você receberá automaticamente a notificação por email! Woohoo!
fonte
Não tenho acesso a uma máquina Server 2008 ou Vista para tentar fazer isso sozinho e obter a variável para você, mas este artigo deve ser útil.
Se você criar uma tarefa básica e visualizar o XML da tarefa, deverá ver todos os valores disponíveis.
http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx
fonte
Usando a documentação no link fornecido pelo Sparks, adicione esta linha adicional ao XML exportado do Agendador de Tarefas para obter o texto do seu evento:
Também interessante (e espero que seja auto-explicativo):
Encontrei este Google "Event / System / EventRecordID"
Você pode fazer referência às variáveis $ (eventData) e $ (eventTimeCreated) em sua tarefa.
Parece que os valores são especificados percorrendo a hierarquia XML. Eu esperaria que você fosse capaz de especificar quase todas as partes do evento decompondo o dump XML bruto para criar uma expressão delimitada por barra.
Parece que '/ @' é uma abreviação de um caractere de espaço nesta sintaxe.
fonte
Você está atrás dos dados do evento?
Meu requisito era enviar um email sempre que um pool de aplicativos IIS fosse desligado devido a um tempo limite inativo. Eu queria que o nome do pool de aplicativos que estava sendo desligado aparecesse na mensagem de email.
Isso funcionou para mim:
<Value name = "appPoolId"> Event / EventData / Data [@ Name = 'AppPoolID'] </Value>
fonte
Eu nunca acabei fazendo isso funcionar e, para o Server 2012, essa funcionalidade de email foi removida completamente. Um beco sem saída, infelizmente.
fonte
Acho que terminei de desenvolver suas idéias
fonte