Hi …
Erstens haben Dienste, soweit ich mich erinnere, eine Option, sodass sie sich selbst neu starten wenn sie mit Absturz beendet werden. SOweit ich weiß wird dann auch ein Eventlog EIntrag geschrieben, über deren Auswertung könntest Du feststellen, wie oft das passiert.
Anders schauts natürlich aus, wenn der Dienst nicht abschmiert, sondern einfach nur nicht mehr antwortet.
Nehmen wir an, er schmiert ab … dann kannst Du so ein Script z.B. mit dem WSH und die WMI Schnittstelle realisieren. Da bekommst Du eine Liste aller Win32_Process Objekte in die Hand, Du musst sie nur abtickern und sehen, ob Dein Prozess vorkommt, und wenn nein, irgendwas tun. Mail schicken dürfte wohl am EInfachsten zu machen sein, weil das keinen permanenten Datenkanal zu dem Server voraussetzt.
Wenn er nicht abschmiert, wirds schwierig. Windows kann nicht erkennen, dass der Prozess zwar läuft, aber nicht mehr tut was er soll, WMI und WIn32_Process werden auch der Meinung sein, es sei alles OK, dann müsstest Du irgend eine eigene Routine austüfteln die dem Dienst irgendeine Testaufgabe mit Timeout stellt und so herausfindet, dass der Dienst hängt.
Wilde Idee: über das WMI Interface könntest Du eventuell noch an die Performance-Counter des Dienstes herangehen und einen Absturz vermuten, wenn der Prozess weder CPU Last noch IO Vorgänge macht, aber das ist schon recht kitzlig, die Prüfroutine soll den Server ja nicht belasten…
Gruss Armin.