Email versenden wenn Dienst beendet
Hallo Community
habe eine Frage an euch.
Ich möchte eine Benachrichtigung bekommen wenn sich ein bestimmter Dienst auf meinem Windows 2003 Server beendet.
Wie kann ich es am besten realisieren das ich eine E-mail bekomme wenn sich ein bestimmter Windowssienst beendet.
Es gibt die Möglichkeit in den Eigenschaften des Dienstet zu sagen, Programm ausführen ...
dort könnte man bestimmt eine *.bat ausführen wo eine E-Mail durch angabe des SMTP Servers versendet wird.
Hat das einer von euch schonmal gemacht ?
Bzw gibt es vielleicht ein tool was das für einen erledigt, in der Suche habe ich leider nicht viel dazu gefunden und ich weiss auch nicht ob das hier der richtige Bereich ist.
Vielen Dank
habe eine Frage an euch.
Ich möchte eine Benachrichtigung bekommen wenn sich ein bestimmter Dienst auf meinem Windows 2003 Server beendet.
Wie kann ich es am besten realisieren das ich eine E-mail bekomme wenn sich ein bestimmter Windowssienst beendet.
Es gibt die Möglichkeit in den Eigenschaften des Dienstet zu sagen, Programm ausführen ...
dort könnte man bestimmt eine *.bat ausführen wo eine E-Mail durch angabe des SMTP Servers versendet wird.
Hat das einer von euch schonmal gemacht ?
Bzw gibt es vielleicht ein tool was das für einen erledigt, in der Suche habe ich leider nicht viel dazu gefunden und ich weiss auch nicht ob das hier der richtige Bereich ist.
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 178867
Url: https://administrator.de/contentid/178867
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
11 Kommentare
Neuester Kommentar
Eine externe Überwachung wie Nagios (www.nagios.com) kann mehr und ist sicherer (aber auch mehr Aufwand zum Konfigurieren).
Wenn Du eine Mail dort verschicken willst, nimm Blat (www.blat.net)
Das ist ein Kommandozeilenprogramm zum Verschicken von Mails per SMTP.
Falls der Dienst abschmiert, ist aber nicht immer garantiert, daß Windows das Programm ausführt (meine Erfahrung).
Wenn Du eine Mail dort verschicken willst, nimm Blat (www.blat.net)
Das ist ein Kommandozeilenprogramm zum Verschicken von Mails per SMTP.
Falls der Dienst abschmiert, ist aber nicht immer garantiert, daß Windows das Programm ausführt (meine Erfahrung).
Hier noch eine Pfennigfuchser-Lösung:
Nehme das folgende VBS-Script und erstelle einen Task für den Taskplaner z.b. mit einem Intervall von 5 Minuten mit dem Inhalt (cscript [PFAD ZUR VBS DATEI]:
Bitte trage den entsprechenden Dienstnamen in der Variablen SERVICENAME ein, und ergänze die Daten für deinen Mailserver. Je nach Mailserver sind Anpassungen in den Parametern von CDO nötig. Diese Config funktioniert mit unverschlüsselter BASIC Authentifizierung. Achtung der Name des Service ist der Dienstname nicht der Anzeigename.
Das Script verschickt eine Nachricht sobald der Service den Status "Stopped" hat.
Grüße
Nehme das folgende VBS-Script und erstelle einen Task für den Taskplaner z.b. mit einem Intervall von 5 Minuten mit dem Inhalt (cscript [PFAD ZUR VBS DATEI]:
Bitte trage den entsprechenden Dienstnamen in der Variablen SERVICENAME ein, und ergänze die Daten für deinen Mailserver. Je nach Mailserver sind Anpassungen in den Parametern von CDO nötig. Diese Config funktioniert mit unverschlüsselter BASIC Authentifizierung. Achtung der Name des Service ist der Dienstname nicht der Anzeigename.
Das Script verschickt eine Nachricht sobald der Service den Status "Stopped" hat.
strComputer = "."
SERVICENAME = "[DEIN SERVICE NAME]"
MAILFROM = "[DEINE MAILADRESSE]"
MAILTO = "[EMPFÄNGERADRESSE]"
MAILSUBJECT = "[SUBJECT]"
MAILBODY = "[MAILBODY]"
MAILSERVER = "[SMTPSERVER]"
MAILSERVER_USER = "[USERNAME]"
MAILSERVER_PASSWORD = "[PASSWORT]"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name = '" & SERVICENAME & "'")
For Each objService in colServices
if objService.State = "Stopped" then
sendmail MAILFROM,MAILTO,MAILSUBJECT,MAILBODY
End if
Next
Sub sendmail(FROMMAIL,TOMAIL,SUBJECT,BODY)
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = SUBJECT
objMessage.From = FROMMAIL
objMessage.To = TOMAIL
objMessage.TextBody = BODY
'==This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = MAILSERVER
'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = MAILSERVER_USER ' Benutzername
'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = MAILSERVER_PASSWORD ' Passwort
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send
end sub
Grüße