Una de las nuevas características de Server 2008 es la capacidad de adjuntar una tarea a un evento específico en los registros de eventos. Una de las acciones disponibles es enviar un correo electrónico a través de un servidor SMTP.
Esto funciona muy bien, sin embargo, sería ideal si en el cuerpo del mensaje se pudieran ubicar los contenidos del Evento. He intentado usar $ eventdescription y% eventdescription%, pero esas son solo tomas en la oscuridad. Cualquier cantidad de google no produce resultados.
¿Alguien sabe si esto es posible?
Actualización : la sugerencia de Sparks a continuación es un paso en la dirección correcta, creo, sin embargo, ese método no parece funcionar para todos los valores. Por ejemplo, puedo extraer el RecordID, la gravedad y el canal como se muestra, pero no puedo usar el mismo método para recuperar el EventID, o lo más importante, la descripción.
Aquí está el XML sin procesar de un 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]
He intentado usar un ValueQuery para EventData, pero no devuelve datos.
fuente
Respuestas:
Lo hice un poco diferente, pero este enfoque genera correos electrónicos sobre nuevos eventos que coinciden con un filtro personalizado, con todos los detalles del evento incluidos en el cuerpo del correo electrónico.
1) Cree una 'Vista personalizada' en el Visor de eventos con el filtro deseado.
2) Una vez que tenga la vista, debería ver un enlace a 'Adjuntar tarea a esta vista personalizada ...'.
Elegí usar sendMail.exe desde aquí ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) que extraje a C: \ sendmail. La razón es que la acción 'Enviar un correo electrónico' de Microsoft tiene problemas con la autenticación SMTP y aparentemente tampoco está presente en Server 2012.
Entonces, en mi caso, seleccioné 'Iniciar un programa' mientras adjuntaba la tarea a la Vista personalizada. Pero lo vamos a editar como XML, así que no se preocupe por completarlo a través de la GUI.
3) Exporte la nueva Tarea a XML, la editaremos más tarde.
4) Cree un archivo 'mail-event.bat' en la carpeta C: \ sendmail con las siguientes 3 líneas:
Obviamente, reemplace 'smtp_server', 'from', 'user', 'pass', 'to', 'subject' con los valores deseados.
Esto creará un archivo '$ (EventRecordID) .log' en C: \ sendmail con todos los detalles de ese evento, envíelo por correo y luego bórrelo.
Puede probar si el archivo por lotes funciona yendo al Visor de eventos, abriendo un evento en su registro de Aplicaciones, cambiando a la pestaña Detalles, seleccionando 'Vista XML' y luego busque EventRecordID. Copie ese número entero y luego ejecútelo desde la línea de comando:
C: \ sendmail> log-event.bat 53522
Por supuesto, reemplazando 53522 con el valor del nodo EventRecordID. Si recibe el correo electrónico, vaya a su lugar feliz.
NOTA BIEN: es posible que haya notado que la cadena 'Aplicación' aparece un par de veces en la línea de comando para wevtutil.exe, eso es porque parece que no pude hacer que funcione apuntando directamente a la Vista personalizada, y mi La vista personalizada resultó ser un subconjunto de eventos que están todos dentro del registro de la aplicación. Es posible que tenga que ajustar eso para que funcione en su caso si intenta enviar eventos desde el registro del sistema, por ejemplo.
5) Edite el XML que exportó, vamos a hacer dos cambios:
Primero, agregue el siguiente nodo 'ValueQueries' al XML debajo del nodo 'EventTrigger':
NOTA: En lo anterior, recorté la información de 'Suscripción' que se completará en función de la Vista personalizada que creó. ¡No copie mi 'Suscripción' en su XML!
Segundo, reemplace el nodo Acciones con lo siguiente:
Ahora, haga que aparezca un nuevo evento en su Vista personalizada, ¡y debería recibir automáticamente la notificación por correo electrónico! Woohoo!
fuente
No tengo acceso a una máquina Server 2008 o Vista para probar esto yo mismo y obtener la variable para usted, pero este artículo debería ser útil.
Si crea una tarea básica y luego ve el XML de la tarea, debería ver todos los valores disponibles.
http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx
fuente
Usando la documentación en el enlace proporcionado por Sparks, agregue esta línea adicional al XML exportado desde el Programador de tareas para obtener el texto del evento:
También interesante (y espero que se explique por sí mismo):
Encontré este Google "Evento / Sistema / EventRecordID"
Luego puede hacer referencia a las variables $ (eventData) y $ (eventTimeCreated) en su tarea.
Parece que los valores se especifican al recorrer la jerarquía XML. Espero que pueda especificar la mayoría de las partes del evento descomponiendo el volcado XML sin procesar para crear una expresión delimitada por barras.
Parece que '/ @' es la abreviatura de un carácter de espacio en esta sintaxis.
fuente
¿Estás buscando los datos del evento?
Mi requisito era enviar un correo electrónico cada vez que se cerraba un grupo de aplicaciones IIS debido a un tiempo de inactividad. Quería que el nombre del grupo de aplicaciones que se estaba cerrando apareciera en el mensaje de correo electrónico.
Esto funcionó para mí:
<Value name = "appPoolId"> Event / EventData / Data [@ Name = 'AppPoolID'] </Value>
fuente
Nunca terminé haciendo que esto funcionara, y parece que para Server 2012 esta funcionalidad de correo electrónico se ha eliminado por completo. Un callejón sin salida desafortunadamente.
fuente
Supongo que terminé de desarrollar tus ideas
fuente