Eine der neuen Funktionen von Server 2008 ist das Anhängen einer Aufgabe an ein bestimmtes Ereignis in den Ereignisprotokollen. Eine der verfügbaren Aktionen ist das Senden einer E-Mail über einen SMTP-Server.
Dies funktioniert sehr gut, es wäre jedoch ideal, wenn der Inhalt des Ereignisses im Nachrichtentext platziert werden könnte. Ich habe versucht, $ eventdescription und% eventdescription% zu verwenden, aber das sind nur Aufnahmen im Dunkeln. Jede Menge Googeln führt zu keinen Ergebnissen.
Weiß jemand, ob das möglich ist?
Update : Der folgende Vorschlag von Sparks ist meines Erachtens ein Schritt in die richtige Richtung, jedoch scheint diese Methode nicht für alle Werte zu funktionieren. Zum Beispiel kann ich die RecordID, den Schweregrad und den Kanal wie gezeigt abrufen, aber ich kann nicht dieselbe Methode verwenden, um die EventID oder vor allem die Beschreibung abzurufen.
Hier ist das unformatierte XML eines Ereignisses:
[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]
Ich habe versucht, eine ValueQuery für EventData zu verwenden, sie gibt jedoch keine Daten zurück.
quelle
Antworten:
Ich habe das etwas anders gemacht, aber dieser Ansatz generiert E-Mails zu neuen Ereignissen, die einem benutzerdefinierten Filter entsprechen, wobei alle Ereignisdetails im E-Mail-Text enthalten sind.
1) Erstellen Sie in der Ereignisanzeige eine benutzerdefinierte Ansicht mit dem gewünschten Filter.
2) Sobald Sie die Ansicht haben, sollte ein Link zu "Aufgabe an diese benutzerdefinierte Ansicht anhängen ..." angezeigt werden.
Ich habe mich entschieden, sendMail.exe von hier ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) zu verwenden, das ich in C: \ sendmail extrahiert habe. Der Grund dafür ist, dass die Aktion "E-Mail senden" von Microsoft Probleme mit der SMTP-Authentifizierung hat und anscheinend auch in Server 2012 nicht vorhanden ist.
Deshalb habe ich in meinem Fall 'Programm starten' ausgewählt, während ich die Aufgabe an die benutzerdefinierte Ansicht angehängt habe. Aber wir werden es als XML bearbeiten, also mach dir keine Sorgen, dass du es über die GUI ausfüllst.
3) Exportieren Sie die neue Aufgabe nach XML. Wir werden sie später bearbeiten.
4) Erstellen Sie eine Datei 'mail-event.bat' im Ordner C: \ sendmail mit den folgenden 3 Zeilen:
Offensichtlich ersetzen Sie 'smtp_server', 'from', 'user', 'pass', 'to', 'subject' durch die gewünschten Werte.
Dadurch wird eine "$ (EventRecordID) .log" -Datei unter C: \ sendmail mit allen Details für dieses Ereignis erstellt, per E-Mail gesendet und anschließend gelöscht.
Sie können testen, ob die Batchdatei funktioniert, indem Sie in der Ereignisanzeige ein Ereignis in Ihrem Anwendungsprotokoll öffnen, zur Registerkarte Details wechseln, 'XML-Ansicht' auswählen und dann nach EventRecordID suchen. Kopieren Sie diese Ganzzahl und führen Sie sie dann über die Befehlszeile aus:
C: \ sendmail> log-event.bat 53522
Natürlich wird 53522 durch den Wert aus dem EventRecordID-Knoten ersetzt. Wenn Sie die E-Mail erhalten, gehen Sie zu Ihrem Happy Place.
GUT BEACHTEN: Möglicherweise ist Ihnen aufgefallen, dass die Zeichenfolge "Anwendung" in der Befehlszeile für "wevtutil.exe" einige Male angezeigt wird. Dies liegt daran, dass ich sie scheinbar nicht zum Laufen bringen konnte, indem ich sie direkt auf die benutzerdefinierte Ansicht und auf "my" zeigte Die benutzerdefinierte Ansicht ist zufällig eine Untergruppe von Ereignissen, die sich alle im Anwendungsprotokoll befinden. Möglicherweise müssen Sie dies anpassen, damit es in Ihrem Fall funktioniert, wenn Sie beispielsweise versuchen, Ereignisse aus dem Systemprotokoll zu mailen.
5) Bearbeiten Sie das von Ihnen exportierte XML. Wir werden zwei Änderungen vornehmen:
Fügen Sie zunächst den folgenden 'ValueQueries'-Knoten in die XML-Datei unter dem' EventTrigger'-Knoten ein:
HINWEIS: Oben habe ich die 'Abonnement'-Informationen weggelassen, die basierend auf der von Ihnen erstellten benutzerdefinierten Ansicht ausgefüllt wurden. Kopiere mein 'Abonnement' nicht in dein XML!
Zweitens ersetzen Sie den Knoten Aktionen durch Folgendes:
Lassen Sie jetzt ein neues Ereignis in Ihrer benutzerdefinierten Ansicht erscheinen und Sie sollten automatisch eine E-Mail-Benachrichtigung erhalten! Woohoo!
quelle
Ich habe keinen Zugriff auf einen Server 2008- oder Vista-Computer, um dies selbst zu versuchen und die Variable für Sie abzurufen, aber dieser Artikel sollte von Nutzen sein.
Wenn Sie eine Basisaufgabe erstellen und dann das XML der Aufgabe anzeigen, sollten alle verfügbaren Werte angezeigt werden.
http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx
quelle
Fügen Sie unter Verwendung der Dokumentation in dem von Sparks bereitgestellten Link diese zusätzliche Zeile zu dem aus dem Taskplaner exportierten XML hinzu, um Ihren Ereignistext abzurufen:
Auch interessant (und hoffentlich selbsterklärend):
Ich fand dieses Googeln "Event / System / EventRecordID"
Sie können dann auf die Variablen $ (eventData) und $ (eventTimeCreated) in Ihrer Task verweisen.
Es sieht so aus, als würden die Werte durch die XML-Hierarchie schrittweise angegeben. Ich würde erwarten, dass Sie in der Lage sind, die meisten Teile des Ereignisses anzugeben, indem Sie den rohen XML-Speicherauszug zerlegen, um einen durch Schrägstriche getrennten Ausdruck zu erstellen.
Es sieht so aus, als ob '/ @' in dieser Syntax eine Abkürzung für ein Leerzeichen ist.
quelle
Bist du nach den Eventdaten?
Meine Anforderung bestand darin, eine E-Mail zu senden, wenn ein IIS-Anwendungspool aufgrund einer Zeitüberschreitung im Leerlauf heruntergefahren wurde. Ich wollte, dass der Name des App-Pools, der heruntergefahren wurde, in der E-Mail-Nachricht angezeigt wird.
Das hat bei mir funktioniert:
<Value name = "appPoolId"> Ereignis / Ereignisdaten / Daten [@ Name = 'AppPoolID'] </ Value>
quelle
Ich habe dies nie zum Laufen gebracht, und es sieht so aus, als ob diese E-Mail-Funktionalität für Server 2012 vollständig entfernt wurde. Eine Sackgasse leider.
quelle
Ich glaube, ich habe deine Ideen fertig entwickelt
quelle