Programm beim Beenden eines Dienstes ausführen
Es soll beim Beenden eines Dienstes eine Anwendung beendet werden
Servus,
kann man beim Beenden eines Dienstes ein Programm (Batch) ausführen lassen, ähnlich einem Programm, das durch diesen Dienst gestartet wird?
Hintergrund:
Ich habe mittels "srvany" einen Dienst erstellt, welcher mir über eine Batch ein Programm startet (anders gehts leider nicht, die Batch MUSS sein). Wenn ich nun den Dienst beende, wird nur die Batch beendet, das Programm läuft weiter (logisch...).
Wenn man nun dem Dienst beibringen könnte, daß er beim Beenden noch eine andere Batch aufruft (Inhalt: KILL- Befehl für das Programm), wäre mein Problem gelöst.
Geht das irgendwie???
Danke!
kann man beim Beenden eines Dienstes ein Programm (Batch) ausführen lassen, ähnlich einem Programm, das durch diesen Dienst gestartet wird?
Hintergrund:
Ich habe mittels "srvany" einen Dienst erstellt, welcher mir über eine Batch ein Programm startet (anders gehts leider nicht, die Batch MUSS sein). Wenn ich nun den Dienst beende, wird nur die Batch beendet, das Programm läuft weiter (logisch...).
Wenn man nun dem Dienst beibringen könnte, daß er beim Beenden noch eine andere Batch aufruft (Inhalt: KILL- Befehl für das Programm), wäre mein Problem gelöst.
Geht das irgendwie???
Danke!
Please also mark the comments that contributed to the solution of the article
Content-Key: 77235
Url: https://administrator.de/contentid/77235
Printed on: April 19, 2024 at 18:04 o'clock
3 Comments
Latest comment
Hi,
ich habe das mit folgendem VBS-Script gemacht (der Ursprung stammt hier aus dem Forum - vielen Dank nochmals an den eigentlichen Verfasser / habe es ein bisschen angepaßt):
Wenn das Programm nicht mehr läuft, wird die entsprechene Batch aufgerufen (bei mir wird mittels BLAT eine entsprechende eMail versendet).
Grüße
Christian
ich habe das mit folgendem VBS-Script gemacht (der Ursprung stammt hier aus dem Forum - vielen Dank nochmals an den eigentlichen Verfasser / habe es ein bisschen angepaßt):
sProcessName = "Programm.exe"
sProcessName2 = "Actsrvnt.exe"
sProcessName3 = "TM_A.exe"
' Hier den Prozeß des Programms aus (siehe Taskmanager) angeben
sComputer = "."
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
Do
Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName & "'")
Set colProcessList2 = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName2 & "'")
Set colProcessList3 = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName3 & "'")
If colProcessList.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_programm.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
If colProcessList2.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_faxsrv.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
If colProcessList3.Count = 0 Then
oShell.Run "C:\Programme\watchdog\warn_talkm.cmd", 1, False
' Hier den Pfad und die Btach angeben
End If
WScript.Sleep 5 * 60 * 1000
' Hier kann die Wartezeit bis zur nächsten Prüfung eingestellt werden. Standard: 5 min
Loop
Wenn das Programm nicht mehr läuft, wird die entsprechene Batch aufgerufen (bei mir wird mittels BLAT eine entsprechende eMail versendet).
Grüße
Christian