'=========================================================================
' CheckServiceRunning.vbs
' VERSION: 1.0
' AUTHOR: Brian Steinmeyer
' EMAIL: sigkill@sigkillit.com
' WEB: https://sigkillit.com
' DATE: 1/17/2013
' COMMENTS: Pass the computer/servername to the function and the Service name
' and it will return whether the service is running.
' EXAMPLE: Check if the Print Spooler is Running
' strComputer = "Server"
' strService = "Spooler"
'=========================================================================
Option Explicit
' ------ SCRIPT CONFIGURATION ------
Dim strComputer: strComputer = "Server"
Dim strService: strService = "Spooler"
' ------ END CONFIGURATION ------
Wscript.Echo CheckServiceRunning(strComputer, strService)
Private Function CheckServiceRunning(strComputer, strService)
On Error Resume Next ' Start Services Info Error Handling
' Set Variables
Dim objService, strResult: strResult = "!~ERROR~!"
Dim objWMIService: Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Dim colServiceList: Set colServiceList = objWMIService.ExecQuery("Select * from Win32_Service WHERE Name = '" & strService & "'")
If colServiceList.Count = 1 Then
For Each objService in colServiceList
If objService.State = "Running" Then
strResult = "Running"
Else
'Attempt to Start Sesrvice if Not Running
strResult = StartService(strComputer, strService)
End If
Next
End If
' Error Check
If Err.Number <> 0 Then
'Wscript.Echo Err.Number & vbCrLf & Err.Source & vbCrLf & Err.Description
Err.Clear
strResult = "!~ERROR~!"
End If
' Return Result
CheckServiceRunning = "(" & strService & ")" & strResult
On Error GoTo 0 ' End Services Info Error Handling
End Function