Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Eventlog Mailer

Mitglied: crazyhoesl
Hallo miteinander,

da mir in diesem Forum immer so wunderbar geholfen wird, dachte ich mir ich leiste auch Mal einen kleinen Beitrag. Und ich weiß das ich nicht der perfekte Batch-Coder bin, und "schöner Code" ist entspricht sicher nicht dem was ich hier anbiete, aber es funktioniert:

Windows hat ein nettes Tool an Board, was meiner Erfahrung nach gänzlich unbeachtet sein Dasein im System32 Ordner fristet: Eventtriggers.exe
Es scannt das Ereignisprotokoll auf vorgegebene Ereignisse und führt dann einen angegeben Befehl aus. Das sieht dann ca. so aus:


Also ein ziemlicher Rattensch-w-a-n-z. Benutzt man Eventtriggers täglich benötigt man meine Batch sicher nicht, aber für Admins die das ab und zu nutzen möchten ist es wohl recht hilfreich.

Um den BEFEHL so hinzubekommen, das mir eine E-Mail geschickt wird, bediene ich mich des kleinen Programmes BMail (17K). Bmail.exe herunterladen und in irgendein Verzeichnis speichern, am einfachsten "EventMailer" erstellen. Mehr über BMail gibt es übrigens hier: Seitenlink.

Nun folgenden Code kopieren und in eine .bat Datei im gleichen Verzeichnis wie die bmail.exe speichern, als z.B. EventMailer.bat nennen.


Zu Anfang kommt eine Abfrage ob eine E-Mail oder ein Befehl/Batch gestartet werden soll, wenn ein Ereignis auftritt. Wählt man Befehl/Batch, und dann Batch, öffnet sich automatisch notepad, und dort kann man seinen eigenen Code eingeben. Dieser muss dann noch unter %windir%system32em.bat gespeichert werden, und bei schliessen des Notepad-Fensters läuft die Batch weiter.

Natürlich kann man auch schon vorher sich eine em.bat speichern und notepad einfach schliessen.

Ein Beispiel zum Verständnis und auch gut zum Testen:
Startet man den Windows Live Messenger wird ein Eintrag in das Ereignisprotokoll geschrieben:
unter Anwendung im Ereignisprotokoll erscheint dann:
Also wir wollen das wenn der Messenger gestartet wird eine E-Mail versendet wird. Man startet die Batch und auf die erste Frage:
Was soll bei Auftreten des Eventlog-Eintrags geschehen? Antworten wir mit (1) Eine E-Mail soll verschickt werden.
Nun werden die verschiedenen Variablen abgefragt:
Name des Triggers: Kann frei gewählt werden
Ereignisart: in unserem Beispiel (1) Anwendung
Ereignistyp: Information
Quelle: wie oben beschrieben: ESENT
EreignisID: 102

Dann wird nochmal alles zusammengefasst angezeigt. Ist alles korrekt gehts mit Enter weiter:

Nun werden die Variablen für den E-Mail Versand abgefragt. Diese Angaben müsst Ihr selbst wissen ;-) face-wink

Auch diese Angaben werden nochmal zusammengefasst. Nach dem Ihr auf ENTER gedrückt habt wird der Eventtrigger erstellt.
Startet ihr nun den Live Messenger bekommt Ihr eine E-Mail zugesandt wenn alles richtig gemacht wurde!


Um euer Eventtrigger wieder zu deaktivieren gebt in der Kommandozeile einfach ein:
Damit werden alle Trigger gelöscht. Die Dateien bmail.exe und mail.cmd müsst ihr selbst noch aus dem System32 Ordner löschen.

Vielleicht kann das dem ein oder anderem von Euch ein bisschen das Leben erleichtern.

Ich freue mich jetzt schon auf eure Rückmeldungen, und ja ich weiß: ich bin nicht der tollste Batcher...


In diesem Sinne,

euer Crazyhoesl

Content-Key: 66184

Url: https://administrator.de/contentid/66184

Ausgedruckt am: 17.09.2021 um 19:09 Uhr

Mitglied: Biber
Biber 14.08.2007 um 17:00:19 Uhr
Goto Top
Moin crazyhoesl,

erstmal vielen Dank für Dein Beispiel.
Da Du auch um konstruktive Kritik ersucht hast, gleich die Sachen, die mir so beim ersten Überfliegen aufgefallen sind.

Mögliche Verschlankungen:
1) Da Du ja die Variablen richtigerweise mit "setlocal" als "die Privat-Variablen genau dieses Batches" deklariert hast, kannst Du Dir unten am Ende das "Set Var=" schenken. Einfach löschen.

2) Du hast relativ häufig "gleichen" Code. Schreib den einmal, ruf ihn mehrfach auf. Macht es wartbarer.
Diesen Block kannst Du irgendwo im Code plazieren (oder "platzieren" nach der reformierten Rechtschreibreformreform) und mit "call :ShowDisplayHeader" aufrufen.
Macht es etwas übersichtlicher.

3) Vermeide, wegen der systemimmanenten Dussligkeit eines CMD-Interpreters so etwas:

Besser:
Begründung: Bei jedem "Goto"-Befehl sucht die CMD.exe wieder von oben, vom Beginn des Batches an diese Sprungmarke.
D.h. der Befehl oben "goto Kreuzung" hält ihn eigentlich nur auf.. *gg

Grüße
Biber
Mitglied: Dani
Dani 31.10.2007 um 21:15:09 Uhr
Goto Top
Hi crazyhoesl,
vielen Dank für das Tutorial. Von diesem Tool habe ich noch nirgends gelesen bzw. gehört bis Vorgestern.
Wir werden demnächst das Ganze auf einigen Servern einsetzen. Und zwar dahin gehend, dass vom dem entsprechenden Event auch die Message in der E-Mail steht. Dazu habe ich ein VBScript - Schnipsel entworfen:
An hand diesem Script wird sichergestellt, dass immer nur das neuste Event ausgelesen wird.
Natürlich hat man die Möglichkeit, statt den EventCode auch folgende Attribute nehmen:
Category, Source Name, EventType, ComputerName, EventCode, RecordNumber, TimeWritten, User.
Das gleiche gilt natürlich für das Atttribut LogFile". Da gibt es folgende Alternativen:
Application, Security.

Die Message kann dann problemlos über eine Batchschleife ausgelesen und wenn gewünscht entsprechend verarbeitet werden (tokens, delims):

Grüße
Dani
Mitglied: aschinnerl
aschinnerl 02.12.2007 um 00:56:12 Uhr
Goto Top
Erstmal möchte ich danke für das super script sagen!

Ich habe vor das Script als Anmeldeüberwachung bei ein paar Server einzusetzen. Dh. ich möchte ein Mail erhalten wenn jemand versucht sich auf dem Server einzuloggen oder WENN jemand sich einloggt!

Das müsste mit diesem Tool doch ohne Probleme möglich sein oder?
Mitglied: 6741
6741 29.02.2008 um 15:09:11 Uhr
Goto Top
hallo,

kann mir eine eine einfache schleife für eine batch erstellen mit sendmail ....

Quelle: Security
Ereigniskennung: 564

Danke ....
Mitglied: Dani
Dani 02.03.2008 um 12:53:28 Uhr
Goto Top
@aschinnerl
Das müsste mit diesem Tool doch ohne Probleme möglich sein oder?
Ist auf jeden Fall möglich....

@6741
ich habe es mit "bmail" gelöst:
Läuft bei uns auf einige hundert Servern.


Grüße
Dani
Mitglied: 6741
6741 02.03.2008 um 13:20:07 Uhr
Goto Top
hi dani ...

du läßt erst das vb scriot laufen und dann versendest du mit bmail ???

mich würde interessieren, wenn der eventtrigger ein secutiry feststellt mit id xxx dann versende die mail ...

das muss doch mit einer einfach batch möglich sein, oder benötige ich immer das o.g. script ...?

Der Healthmonitor läuft bei mir nicht richtig, bzw ich kann ihn wohl nicht richtig einstellen.

Habe mal überwachen auf eine Freigabe eingestellt und etwas löschen wollen, was verweigert ist, dann soll die Mail kommen die mir die Info sendet ... im Eventlog ist alles okay... zur id gibt es noch eine weitere Kennung ... ID 560 und dazu die Kenne das gelöscht worden ist ...

gruß
Mitglied: Dani
Dani 02.03.2008 um 19:28:47 Uhr
Goto Top
Hi,
du hast glaube ich nur das Tutorial überfolgen. Denn die ID gibst du bereits hier an:
Bei mir war es ebenso, dass ich den Inhalt der ID auch wollte und in die Mail schreiben lassen habe. Dazu habe ich VBS gebraucht.
In deinem Fall würde die Batch reichen...Höchstens im Event stehen Daten, die gleich haben möchtest.

Wir machen demnächst einen Schritt weiter und lassen per Batch in unser Serververwaltung- & Managementdatenbank immer die Einträge machen.


Grüße
Dani
Mitglied: 6741
6741 03.03.2008 um 18:37:34 Uhr
Goto Top
Hi Dani ...

ja du hast Recht .... ich hahe es nur Überflogen und nach Erstellen der Batch ( super Tool ) verstehe ich auch die Zusammenhnge ... sorry .... wohl etwas überarbeitet ..

schade das der Healthmonitor mir keine Werte bzw kein Action zeigt ....

aber später mehr ..
Mitglied: Tomiliy
Tomiliy 24.02.2009 um 12:29:44 Uhr
Goto Top
Hallo dani :-) face-smile
Super die Scripte hier. Echt klasse. Hab ich schon viel von gelernt und genutzt.

Da du dich ja anscheinend mit VB auskennst..
Wie mache ich das so, das diese Abfrage in regelmäßigen Abständen läuft, aber nicht wieder über "alte" Fehler stolpert.

Es wäre also gut, wenn das script erkennen könnte, OB es auf einem Event schonmal gemailt hat und das dann natürlich nicht wieder tut.

Danke!!
Thomas
Heiß diskutierte Beiträge
question
Netzwerkperformance - Mikrotik - Wo ist mein Fehler? gelöst BirdyBVor 1 TagFrageNetzwerke37 Kommentare

Moin zusammen, ich stehe gerade etwas auf dem Schlauch und weiß nicht so recht was mein Fehler ist. Gegeben ist mein heimisches Netzwerk: Also eigentlich ...

general
HomeServer noch mal anfassen?dertowaVor 1 TagAllgemeinServer-Hardware20 Kommentare

Hallo zusammen, erst im Juli dieses Jahres habe ich mein Homeserver-System angefasst und ein paar Upgrades vorgenommen. Der Threadripper 1920x wurde durch einen Ryzen 5 ...

info
Hunderttausende MikroTik-Router sind seit 2018 angreifbarkilltecVor 1 TagInformationMikroTik RouterOS23 Kommentare

Mehrere MikroTik Router angreifbar. Hier der Link zu Heise: Hunderttausende MikroTik-Router sind seit 2018 angreifbar Gruß ...

question
Neue Firmennetzwerkstruktur und ein glühender KopfDerWachnerVor 1 TagFrageNetzwerke28 Kommentare

Moin zusammen, nun hab ich jahrelang hier nur mitgelesen, nun stehe ich allerdings selbst vor nem Problem was mir seit Tagen Kopfschmerzen bereitet. Also wir ...

general
Neue Herausforderungen auf unserer englischen SeiteFrankVor 1 TagAllgemeinOff Topic14 Kommentare

Auf unserer englischen Seite gibt es neue Herausforderungen: Find who restarted DB server und Wanted: Network Node Manager 6.4 wer kann helfen? Generell findet ihr ...

question
Windows Server 2012 R2 frisst SSDs (cbs.log)drahtbrueckeVor 1 TagFrageWindows Server13 Kommentare

Hallo, ich habe vor etwa 2 Monaten eine nur etwa 3 Monate alte SSD gegen eine neue getauscht (Samsung OEM Datacenter SSD SM883) in einem ...

question
Infos zu VOIP bzw. SIP gesucht gelöst lcer00Vor 1 TagFrageVoice over IP15 Kommentare

Hallo, kennt jemand vernünftige Einstiegslektüre (digital oder als Buch) zu VoIP, SIP & Co? Das Prinzip ist mir zwar eigentlich klar, aber gerade bei den ...

question
RDS CALs und normale CALs - Wie richtig lizensierentim.riepVor 1 TagFrageWindows Server18 Kommentare

Hallo liebe User, ich habe eine Frage zur richtigen Lizensierung: Wenn eine natürliche Person zum Beispiel drei Accounts auf einem Windows Server 2016 hat, braucht ...