Batch file for status of service/s, then kill process and finally restart services

Hello,

I'm implementing a Kaseya Server with Vmware snapshots. When snapshot take in place, service "kserver" didn't respond (it's not possible start, stop or restart service), workaround, seemed to kill process kaseya, then restart service.

Can anyone help me to make a batch file that, in first place check is service kaseya is running or not, and in case of not, kill the process and then restart the service?.  The idea is put this batch file in a scheduled task.

Would be interesting use command "sc", instead net start/stop...

Thank you
jpvhackAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Tompa99Connect With a Mentor Commented:
Hello

This script should work I think. You have to change the service to the correct one.

Regards Tompa
Dim strService
Dim strComputer
Dim objWMIService, objItem, objService
Dim colListOfServices
 
strComputer = "." ' Localhost
strService = "Alerter" ' Displayname of service
 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set colListOfServicesStatus = objWMIService.ExecQuery ("Select * from Win32_Service Where DisplayName ='" & strService & "'")
	
	for each objServiceState in colListOfServicesStatus
		ServiceState = objServiceState.State
		if ServiceState <> "Running"  then
			if ServiceState = "Stopped" Then 
				StartService strService,strComputer
			else 
				StopService strService,strComputer
				StartService strService,strComputer
			end if
		end if 
	next
wscript.Quit(99)
 
'========================== StopService(strService,strComputer)========================================
private function StopService(strService,strComputer)
	Dim objWMIService, objItem, objService
	Dim colListOfServices
	Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	Set colListOfServices = objWMIService.ExecQuery ("Select * from Win32_Service Where DisplayName ='" & strService & "'")
	For Each objService in colListOfServices
		objService.StopService()
		do while ServiceState <> "Stopped"
			set colListOfServicesStatus = objWMIService.ExecQuery ("Select * from Win32_Service Where DisplayName ='" & strService & "'")
				for each objServiceState in colListOfServicesStatus
					ServiceState = objServiceState.State
				next
		loop
	Next
end function
 
'========================== StartService(strService,strComputer)========================================
private function StartService(strService,strComputer)
	Dim objWMIService, objItem, objService
	Dim colListOfServices
	Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	Set colListOfServices = objWMIService.ExecQuery ("Select * from Win32_Service Where DisplayName ='" & strService & "'")
	For Each objService in colListOfServices
		objService.StartService()
		do while ServiceState <> "Running"
			set colListOfServicesStatus = objWMIService.ExecQuery ("Select * from Win32_Service Where DisplayName ='" & strService & "'")
				for each objServiceState in colListOfServicesStatus
					ServiceState = objServiceState.State
				next
		loop
	Next
end function

Open in new window

0
 
AmazingTechCommented:
Try this.
sc query "kserver" | find /i "state" | find /i "running"
if errorlevel 1 (
    taskkill /f /im kaseya.exe
    sc start "kserver"
)

Open in new window

0
 
jpvhackAuthor Commented:
AmazingTech:

How i could to avoid, that in case thar process kaseya.exe don't exist, this message: ERROR: The process "KServer.exe" not found.
0
 
AmazingTechConnect With a Mentor Commented:
Sure no problem.

We'll use tasklist to find if it is a running process.
sc query "kserver" | find /i "state" | find /i "running"
if errorlevel 1 (
    tasklist /fi "imagename eq kaseya.exe" | find /i "kaseya.exe"
    if not errorlevel 1 taskkill /f /im kaseya.exe
    sc start "kserver"
)

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.