none
Restartando múltiplos serviços vis Script RRS feed

  • Pergunta

  • Olá Pessoal,
    agora eu que estou precisando de uma ajuda...
    Preciso para 3 serviços do Exchange 2003 em 15 servidores, após uma alteração no Registry.
    Qualto a alteração no Registry tudo ok e também para reiniciar um serviço, mas gostaria de ter uma
    ajuda para fazer com que os três serviços sejam reiniciados e não apenas um.
    Abaixo segue o script que estou usando para reiniciar apenas um serviço:



    Option Explicit

    Dim objWMIService, objItem, objService

    Dim colListOfServices, strComputer, strService, intSleep

    strComputer = "."

    intSleep = 15000

    strService = " 'smtpsvc' "

    Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" _

    & strComputer & "\root\cimv2")

    Set colListOfServices = objWMIService.ExecQuery _

    ("Select * from Win32_Service Where Name ="_

    & strService & " ")

    For Each objService in colListOfServices

    objService.StopService()

    WSCript.Sleep intSleep

    objService.StartService()

    Next

    WScript.Echo "Your "& strService & " service has Started"

    WScript.Quit


    Então se alguém puder me ajudar... Ah... os outros serviços sÃo:
    'Microsoft Exchange Routing Engine' 
    'Microsoft Exchange MTA Stacks'

    Abraços.

    Marcelo. 
    Marcelo Braga -- Um discipulo de Jesus -- MCT/ MCSA/ MCITP/ MCTS Exchange 2007.
    sexta-feira, 13 de fevereiro de 2009 04:26

Respostas

  • Olá Marcelo,

    Veja se é isso que você precisa....
    Coloquei vários alertas para testar, se não precisar pode comentar.

    Option Explicit

    Dim objWMIService, objItem,servico,objService,a


    Dim colListOfServices, strComputer, strService, intSleep

    'TAMANHO DO ARRAY PARA OS SERVIÇOS
    Dim arrService(3)

    'SERVIÇO (SMTP)
    arrService(1) = " 'smtpsvc' "

    'SERVIÇO Microsoft Exchange Routing Engine
    arrService(2) = " 'resvc' "

    'SERVIÇO Microsoft Exchange MTA Stacks
    arrService(3) = " 'msexchangemta' "

    strComputer = "."

    intSleep = 15000

    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

    for a=1 to ubound(arrService)


       Set colListOfServices = objWMIService.ExecQuery _
       ("Select * from Win32_Service Where Name ="_
       & arrservice(a) & " ")


       For Each objService in colListOfServices

          objService.StopService()

          WScript.Echo "O Serviço "& arrService(a) & "foi Parado"   
          WSCript.Sleep intSleep
     
          objService.StartService()

          WScript.Echo "O Serviço "& arrService(a) & "foi Iniciado"   
       Next


    next


    WScript.Quit


    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    sexta-feira, 13 de fevereiro de 2009 11:45

Todas as Respostas

  • Olá Marcelo,

    Veja se é isso que você precisa....
    Coloquei vários alertas para testar, se não precisar pode comentar.

    Option Explicit

    Dim objWMIService, objItem,servico,objService,a


    Dim colListOfServices, strComputer, strService, intSleep

    'TAMANHO DO ARRAY PARA OS SERVIÇOS
    Dim arrService(3)

    'SERVIÇO (SMTP)
    arrService(1) = " 'smtpsvc' "

    'SERVIÇO Microsoft Exchange Routing Engine
    arrService(2) = " 'resvc' "

    'SERVIÇO Microsoft Exchange MTA Stacks
    arrService(3) = " 'msexchangemta' "

    strComputer = "."

    intSleep = 15000

    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

    for a=1 to ubound(arrService)


       Set colListOfServices = objWMIService.ExecQuery _
       ("Select * from Win32_Service Where Name ="_
       & arrservice(a) & " ")


       For Each objService in colListOfServices

          objService.StopService()

          WScript.Echo "O Serviço "& arrService(a) & "foi Parado"   
          WSCript.Sleep intSleep
     
          objService.StartService()

          WScript.Echo "O Serviço "& arrService(a) & "foi Iniciado"   
       Next


    next


    WScript.Quit


    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    sexta-feira, 13 de fevereiro de 2009 11:45
  • Olá Jesiel,
    Eu estou com o problema de que somente o primeiro serviço está parando e reiniciando corretamente.
    Eu estou executando o script e ao mesmo tempo monitorando os serviços e,
    para o primeiro ok, ele para e depois inicia novamente, mas daí nada mais...
    Pode fazer testes aí no teu PC e me dizer se funciona?
    Estou testando com os serviços Spooler, PlugPlay e TapiSrv...
    Execute e vai atuyalizando a visualização em services.msc... FOi assim que eu fiz e
    monitorei a execução...
    Fico no aguardo.
    Valeu...
    Marcelo.
    Marcelo Braga -- Um discipulo de Jesus -- MCT/ MCSA/ MCITP/ MCTS Exchange 2007.
    sexta-feira, 13 de fevereiro de 2009 13:49
  • Olá Marcelo,

    Testei aqui... é que os serviços que você testou apenas o spooler você consegue parar.

    Entre no services.msc e tente parar o plugplay... aqui eu não consegui...

    o Mesmo acontece no serviço de Telefonia tem dependência... Então.. se for fechar ele precisa fechar primeiro o Gerenciador de acesso remoto (rasman)

    Os serviços do exchange que você passou não tem dependências...

    Até mais,

    Jesiel
    sexta-feira, 13 de fevereiro de 2009 14:07
  • Matou a parada Jesiel. Eu não tinha me ligado nisso...
    Valeu,
    Marcelo.
    Marcelo Braga -- Um discipulo de Jesus -- MCT/ MCSA/ MCITP/ MCTS Exchange 2007.
    sexta-feira, 13 de fevereiro de 2009 15:05