VBScript that will stop then start two services and pop up a message box afterwards

Discussion in 'Scripting' started by Spin, Apr 9, 2009.

  1. Spin

    Spin Guest

    Gurus,

    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, Apr 9, 2009
    #1
    1. Advertisements

  2. Here is a simple way:
    @echo off
    net stop service1
    net stop service2
    net start service1
    net start service2
    echo msgbox "The services have been restarted" > "%temp%\temp.vbs"
    wscript "%temp%\temp.vbs"
     
    Pegasus [MVP], Apr 9, 2009
    #2
    1. Advertisements

  3. 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], Apr 9, 2009
    #3
  4. Spin

    Spin Guest

    Nice. What does "colServiceList" stand for?
     
    Spin, Apr 14, 2009
    #4
  5. It is a variable that refers to an collection of service objects. The WMI
    query returns this collection. The reference is made using a Set statement
    because it is a collection of objects. The name colServiceList was chosen in
    one of the linked examples. "col" refers to collection. You can actually use
    any valid name you desire.

    --
    Richard Mueller
    MVP Directory Services
    Hilltop Lab - http://www.rlmueller.net
     
    Richard Mueller [MVP], Apr 14, 2009
    #5
  6. Spin

    Spin Guest

    Richard, thanks. U R DA MAN!!!!!
     
    Spin, Apr 24, 2009
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.