retrodude
Goto Top

Dienststatus per VBScript

Hallo

Auf unseren Servern hat es Applikationen, welche nach einem Neustart nicht immmer sauber hochfahren. Besser gesagt deren Dienste starten nicht bzw. wir müssen diese dann von Hand anschubsen. Ich suche deshalb eine Lösung dies per Startskript abzufangen. Wie überprüfe ich per VBScript den Status eines Dienstes um diesen dann bei Bedarf zu starten?
Vielen Dank im Voraus.

Gruss

Content-Key: 98500

Url: https://administrator.de/contentid/98500

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Oct 06, 2008 at 07:50:08 (UTC)
Goto Top
Hallo RetroDude!

Am Beispiel des "Browser"-Dienstes:
strComputer = "."  
strSvc = "Browser"  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Service WHERE Name='" & strSvc & "'")   
For Each objItem in colItems 
    WScript.Echo objItem.Name & ": " & objItem.State  
Next
Grüße
bastla
Member: RetroDude
RetroDude Oct 06, 2008 at 08:17:53 (UTC)
Goto Top
Danke Bastla!

Kannst Du mir noch zeigen wie ich den Dienststart einbauen kann falls der Dienst nicht gestartet ist?

Gruss
Member: bastla
bastla Oct 06, 2008 at 08:45:54 (UTC)
Goto Top
Hallo RetroDude!

Etwa so:
strComputer = "."   
strSvc = "Browser"  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   
Set objShare = objWMIService.Get("Win32_Service.Name='" & strSvc & "'")  
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & strSvc &"'", "StartService")  
WScript.Echo "ReturnValue: " & objOutParams.ReturnValue  
Grüße
bastla
Member: RetroDude
RetroDude Oct 06, 2008 at 09:15:13 (UTC)
Goto Top
Danke Bastla!
Noch eine letzte Frage: Kann ich auch auf bestimmte Ereignisse eine Mail auslösen ? z.B. Der Dienst wurde gestartet? So könnte ich relativ einfach protokollieren wie oft der Dienst nicht läuft.

Gruss
Member: bastla
bastla Oct 08, 2008, updated at Oct 18, 2012 at 16:36:21 (UTC)
Goto Top
Hallo RetroDude!

Entweder wie hier - die Variablenzuweisungen kannst Du auch per VBS machen und nur den eigentlichen Aufruf dann als Shell.Run) ...

Grüße
bastla