Post by SpinGurus,
I'm looking for a VBScript that will stop then start two services (call
them service1 and service2) and after they are started pop up a message
box stating services have been started.
--
Spin
From the Microsoft TechNet Script Center, a VBScript solution using WMI to
stop a service (and any dependent services):
http://www.microsoft.com/technet/scriptcenter/scripts/os/services/ossvvb25.mspx
Similarily, to start a service (and dependent services):
http://www.microsoft.com/technet/scriptcenter/scripts/os/services/ossvvb23.mspx
If the computer is remote, substitute the NetBIOS name of the computer for
strComputer. Assuming no dependent services, the script for two services
could be similar to:
==========
' Bind to WMI namespace.
strComputer = "TestComputer"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" _
& strComputer & "\root\cimv2")
' Retrieve services.
Set colServiceList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service WHERE Name='Service1' Or Name='Service2'")
' Stop each service.
For Each objService In colServiceList
lngError = objService.StopService()
Next
' Pause 20 seconds to allow time for the services to stop.
Wscript.Sleep 20000
' Start each service.
For Each objService In colServiceList
lngError = objService.StartService()
Next
===========
I specify authenticationLevel because some documentation indicates this may
be necessary on newer OS's. You can enumerate the list of services more than
once as long as you have not specified the WBEM_FLAG_FORWARD_ONLY flag in
the WQL (WMI Query Language) statement.
--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--