L'une des nouvelles fonctionnalités de Server 2008 est la possibilité d'attacher une tâche à un événement spécifique dans les journaux des événements. L'une des actions disponibles consiste à envoyer un e-mail via un serveur SMTP.
Cela fonctionne très bien, mais ce serait idéal si dans le corps du message, le contenu de l'événement pouvait être placé. J'ai essayé d'utiliser $ eventdescription et% eventdescription%, mais ce ne sont que des clichés dans le noir. Toute quantité de recherche sur Google ne produit aucun résultat.
Est-ce que quelqu'un sait si c'est possible?
Mise à jour : La suggestion de Sparks ci-dessous est un pas dans la bonne direction, je crois, mais cette méthode ne semble pas fonctionner pour toutes les valeurs. Par exemple, je peux extraire le RecordID, la gravité et le canal comme indiqué, mais je ne peux pas utiliser la même méthode pour récupérer le EventID, ou surtout la description.
Voici le XML brut d'un événement:
[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]
J'ai essayé d'utiliser une ValueQuery pour EventData, mais elle ne renvoie aucune donnée.
la source
Réponses:
J'y suis allé un peu différemment, mais cette approche génère des e-mails sur les nouveaux événements qui correspondent à un filtre personnalisé, avec tous les détails de l'événement inclus dans le corps de l'e-mail.
1) Créez une «vue personnalisée» dans l'Observateur d'événements avec le filtre souhaité.
2) Une fois que vous avez la vue, vous devriez voir un lien vers 'Attacher la tâche à cette vue personnalisée ...'.
J'ai choisi d'utiliser sendMail.exe à partir d'ici ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) que j'ai extrait dans C: \ sendmail. La raison en est que l'action `` Envoyer un e-mail '' de Microsoft a des problèmes d'authentification SMTP et n'est apparemment même pas présente dans Server 2012.
Dans mon cas, j'ai donc sélectionné «Démarrer un programme» tout en attachant la tâche à la vue personnalisée. Mais nous allons le modifier en XML, alors ne vous inquiétez pas de le remplir via l'interface graphique.
3) Exportez la nouvelle tâche au format XML, nous la modifierons plus tard.
4) Créez un fichier 'mail-event.bat' sous le dossier C: \ sendmail avec les 3 lignes suivantes:
Évidemment, remplacez 'smtp_server', 'from', 'user', 'pass', 'to', 'subject' par les valeurs souhaitées.
Cela va créer un fichier '$ (EventRecordID) .log' sous C: \ sendmail avec tous les détails de cet événement, le poster, puis le supprimer.
Vous pouvez tester si le fichier de commandes fonctionne en allant dans l'Observateur d'événements, en ouvrant un événement dans votre journal d'applications, en basculant vers l'onglet Détails, en sélectionnant «Vue XML», puis en recherchant EventRecordID. Copiez cet entier, puis exécutez-le à partir de la ligne de commande:
C: \ sendmail> log-event.bat 53522
Bien sûr, en remplaçant 53522 par la valeur du nœud EventRecordID. Si vous recevez l'e-mail, rendez-vous chez vous.
REMARQUE: vous avez peut-être remarqué que la chaîne «Application» apparaît plusieurs fois dans la ligne de commande pour wevtutil.exe - c'est parce que je n'arrivais pas à le faire fonctionner en le pointant directement sur la vue personnalisée, et mon La vue personnalisée se trouvait être un sous-ensemble d'événements qui se trouvent tous dans le journal des applications. Vous devrez peut-être ajuster cela pour que cela fonctionne dans votre cas si vous essayez d'envoyer des événements à partir du journal système, par exemple.
5) Modifiez le XML que vous avez exporté, nous allons faire deux changements:
Tout d'abord, ajoutez le nœud «ValueQueries» suivant dans le XML sous le nœud «EventTrigger»:
REMARQUE: Dans ce qui précède, j'ai coupé les informations «Abonnement» qui auront été remplies en fonction de la vue personnalisée que vous avez créée. Ne copiez pas mon «abonnement» dans votre XML!
Ensuite, remplacez le nœud Actions par ce qui suit:
Maintenant, faites apparaître un nouvel événement dans votre vue personnalisée et vous devriez recevoir automatiquement la notification par e-mail! Woohoo!
la source
Je n'ai pas accès à une machine Server 2008 ou Vista pour l'essayer moi - même et obtenir la variable pour vous, mais cet article devrait être utile.
Si vous créez une tâche de base puis affichez le XML de la tâche, vous devriez voir toutes les valeurs disponibles.
http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx
la source
En utilisant la documentation du lien fourni par Sparks, ajoutez cette ligne supplémentaire au XML exporté depuis le Planificateur de tâches pour obtenir le texte de votre événement:
Également intéressant (et, espérons-le, explicite):
J'ai trouvé ce googling "Event / System / EventRecordID"
Vous pouvez ensuite référencer les variables $ (eventData) et $ (eventTimeCreated) dans votre tâche.
Il semble que les valeurs soient spécifiées en parcourant la hiérarchie XML. Je m'attendrais à ce que vous puissiez spécifier la plupart des parties de l'événement en décomposant le vidage XML brut pour créer une expression délimitée par une barre oblique.
Il semble que '/ @' soit un raccourci pour un caractère espace dans cette syntaxe.
la source
Êtes-vous après les données de l'événement?
Mon exigence était d'envoyer un e-mail chaque fois qu'un pool d'applications IIS s'arrêtait en raison d'un délai d'inactivité. Je voulais que le nom du pool d'applications qui était fermé apparaisse dans l'e-mail.
Cela a fonctionné pour moi:
<Value name = "appPoolId"> Event / EventData / Data [@ Name = 'AppPoolID'] </Value>
la source
Je n'ai jamais réussi à faire fonctionner cela, et il semble que pour Server 2012, cette fonctionnalité de messagerie ait été complètement supprimée. Une impasse malheureusement.
la source
Je suppose que j'ai fini de développer tes idées
la source