Mit Konsolenanwendung Dienst auf Status prüfen
Hallo,
wir haben auf unserem Server einen MCAffee Client installiert (Dienstname: McShield). Lieder schmiert uns dieser Dienst aus unerklärlichen Gründen ständig ab, also wird in den Status beendet zurückgesetzt. McAffe-Support meint der Server müsse neu gestartet werden. Leider passiert das alle paar Tage und wir können nicht ständig den Server rebooten.
Nun habe ich die Aufgabe bekommen eine Konsolenanwendung zu erstellen welcher alle paar Minuten den Dienst prüft ob dieser gestartet ist oder nicht. Sollte der Dienst beendet sein, soll die Anwendung diesen automatisch starten.
Versuche schon seit zwei Tagen in Visual Studio eine solche Konsolenanwendung zu erstellen, leider finde ich keinen Ansatz. Kann mir jemand beim Code etwas behilflich sein? Vielen Dank.
MfG
hacol22
wir haben auf unserem Server einen MCAffee Client installiert (Dienstname: McShield). Lieder schmiert uns dieser Dienst aus unerklärlichen Gründen ständig ab, also wird in den Status beendet zurückgesetzt. McAffe-Support meint der Server müsse neu gestartet werden. Leider passiert das alle paar Tage und wir können nicht ständig den Server rebooten.
Nun habe ich die Aufgabe bekommen eine Konsolenanwendung zu erstellen welcher alle paar Minuten den Dienst prüft ob dieser gestartet ist oder nicht. Sollte der Dienst beendet sein, soll die Anwendung diesen automatisch starten.
Versuche schon seit zwei Tagen in Visual Studio eine solche Konsolenanwendung zu erstellen, leider finde ich keinen Ansatz. Kann mir jemand beim Code etwas behilflich sein? Vielen Dank.
MfG
hacol22
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 67483
Url: https://administrator.de/contentid/67483
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
13 Kommentare
Neuester Kommentar
Moin,
reicht es nicht, wenn man in den Diensteigenschaften in der Rubrik Wiederherstellen als Aktion Dienst neustarten einstellt?
ansonsten reicht doch eigentlich ein
Wenn der Dienst bereits läuft, wird halt ausgegeben, dass der Dienst bereits gestartet ist. Wenn der Dienst, wenn er beendet wird / abstürzt, als Dienststatus auch nicht mehr "gestartet" hat, sollte das doch völlig ausreichen, oder?
MfG,
VW
reicht es nicht, wenn man in den Diensteigenschaften in der Rubrik Wiederherstellen als Aktion Dienst neustarten einstellt?
ansonsten reicht doch eigentlich ein
net start McShield
MfG,
VW
sProcessName = "meineapplikation.exe" ' Hier die Ausführbare Datei der zu überwachenden Applikation angeben
sComputer = "."
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
Set oShell = CreateObject("WScript.Shell")
Do
Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName & "'")
If colProcessList.Count = 0 Then
oShell.Run "C:\pfad\meineapplikation.exe", 1, False ' Hier den Pfad zur überwachenden Applikation angeben
End If
WScript.Sleep 5 * 60 * 1000 ' Hier kann die Wartezeit bis zur nächsten Prüfung eingestellt werden. Standard: 5 min
Loop
Moin hacol22,
ich habe mal Deinen Beitrag auf "gelöst" gesetzt (eigentlich Dein Job).
Schade finde ich die etwas sehr knappe Antwort von TuXHunt3R.
Ich fände die (Remote-) Prüfung mit NetSvc schon universeller und allgemeiner verwendbar.
Siehe dazu z.B. M$-KB Q166819.
@TuXHunt3R:
Eine Beispielzeile mehr, so etwas wie..
...hätte es vielleicht deutlicher gemacht.
Grüße
Biber
ich habe mal Deinen Beitrag auf "gelöst" gesetzt (eigentlich Dein Job).
Schade finde ich die etwas sehr knappe Antwort von TuXHunt3R.
Ich fände die (Remote-) Prüfung mit NetSvc schon universeller und allgemeiner verwendbar.
Siehe dazu z.B. M$-KB Q166819.
@TuXHunt3R:
Eine Beispielzeile mehr, so etwas wie..
NetSvc /query \\hacol22sServer "McShield.exe"
Grüße
Biber
@TuXHunt3R
...werde das nächste Mal dran denken...
Danke... wäre wirklich zu schade, wenn gute Lösungen kommentarlos untergingen...
Grüße
Biber
...werde das nächste Mal dran denken...
Danke... wäre wirklich zu schade, wenn gute Lösungen kommentarlos untergingen...
Grüße
Biber