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-ID: 98500

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

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

bastla
bastla 06.10.2008 um 09:50:08 Uhr
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
RetroDude
RetroDude 06.10.2008 um 10:17:53 Uhr
Goto Top
Danke Bastla!

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

Gruss
bastla
bastla 06.10.2008 um 10:45:54 Uhr
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
RetroDude
RetroDude 06.10.2008 um 11:15:13 Uhr
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
bastla
bastla 08.10.2008, aktualisiert am 18.10.2012 um 18:36:21 Uhr
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