Dienst mit Batch-Datei sicher starten
Eine Abfrage, welche Diente / Tasks oder ob ein bestimmer Dienst / Task läuft
Unser Apacheserver soll 1mal täglich neugestartet werden und außerdem eine *.exe-Datei ausgeführt werden. Die Batchdatei funktioniert auch schon, nur eine Überprüfung, ob der Dienst läuft, wäre toll!
Im Moment probieren wir eine Lösung mit WSH aus, würden aber gerne darauf verzichten.
Unser Apacheserver soll 1mal täglich neugestartet werden und außerdem eine *.exe-Datei ausgeführt werden. Die Batchdatei funktioniert auch schon, nur eine Überprüfung, ob der Dienst läuft, wäre toll!
Im Moment probieren wir eine Lösung mit WSH aus, würden aber gerne darauf verzichten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 20762
Url: https://administrator.de/contentid/20762
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
auf XP könnte man da etwas mit "tasklist" machen:
http://www.ss64.com/nt/tasklist.html
Sinnvoller für alle Windows-Versionen wäre vermutlich aber der Einsatz eines externen Tools,
Z.B.:
http://www.sysinternals.com/Utilities/PsService.html
Gruß,
Tim
auf XP könnte man da etwas mit "tasklist" machen:
http://www.ss64.com/nt/tasklist.html
Sinnvoller für alle Windows-Versionen wäre vermutlich aber der Einsatz eines externen Tools,
Z.B.:
http://www.sysinternals.com/Utilities/PsService.html
Gruß,
Tim
Hallo,
falls ihr euch überlegt es in VBS zu machen...
Hiermit würdet ihr schon mal sehen ob der Apache Prozess aktiv ist
In diesem Fall würde er gekillt werden.
code ############
for each process in ProcessSet
proname = ucase(Left(process.Name,6))
'MsgBox proname
Select Case proname
Case "APACHE"
MsgBox proname & " wird nun beendet"
process.terminate
MsgBox proname & " ist nun beendet"
end select
next
code ############
MfG IceBeer
falls ihr euch überlegt es in VBS zu machen...
Hiermit würdet ihr schon mal sehen ob der Apache Prozess aktiv ist
In diesem Fall würde er gekillt werden.
code ############
for each process in ProcessSet
proname = ucase(Left(process.Name,6))
'MsgBox proname
Select Case proname
Case "APACHE"
MsgBox proname & " wird nun beendet"
process.terminate
MsgBox proname & " ist nun beendet"
end select
next
code ############
MfG IceBeer
hier kannst du einen bestimmten dienst 'apache' auslesen und seinen status sehen ...
strComputer = "."
Set objWMIServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServices = objWMIServices.ExecQuery _
("Select * from Win32_Service where Name='apache'")
For Each objService in colServices
Wscript.Echo objService.State
Next
du kannst es in z.b. dienstestatus.vbs speichern und aus deiner batchdatei mit:
call dienstestatus.vbs herausrufen
coli
strComputer = "."
Set objWMIServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServices = objWMIServices.ExecQuery _
("Select * from Win32_Service where Name='apache'")
For Each objService in colServices
Wscript.Echo objService.State
Next
du kannst es in z.b. dienstestatus.vbs speichern und aus deiner batchdatei mit:
call dienstestatus.vbs herausrufen
coli