none
Monitorar serviços do windows com envio de email RRS feed

  • Pergunta

  • Boa tarde a todos.

    Sou novo no fórum e gostaria de saber se alguém consegue me ajudar.

    Preciso monitorar os serviços do Windows e caso algum seja derrubado, será enviado email para comunicar o fato.

    Utilizei o exemplo, ótimo devo dizer, do sr. Leandro Ribeiro, mas estou com a seguinte situação. O script utilizado abrange apenas um serviço. Tentei alterar a query do WQL, para abranger mais serviços e não consigo. Vi que o WQL não possui a cláusula IN do SQL e também não possui o operador OR. Como posso fazer para monitorar mais de um serviço com o script e a query abaixo:

    
    Set objMessage = CreateObject("CDO.Message") 
    objMessage.Subject = "O serviço DNS Cache acabou de ser interrompido...." 
    objMessage.From = """Monitoramento de Serviços"" <monitoramento@dominio.com.br>"
    objMessage.To = "e-mail@dominio.com.br" 
    objMessage.TextBody = "O processo de monitoração indentificou que o serviço xxxx parou..."
    
    While 1 = 1
    
    Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
    strWQL = "SELECT * " & _
    	"FROM __InstanceModificationEvent " & _
    	"WITHIN 2 " &_
    	"WHERE TargetInstance ISA 'Win32_Service' " & _
    	"AND TargetInstance.Name = 'DNSCACHE'" & _
    	"AND TargetInstance.State = 'Stopped'"
    	
    Set objEventSource = objWMIService.ExecNotificationQuery(strWQL)Agradeço desde já a atenção.
    

    Agradeço desde já a atenção.

    Abnraços

    quarta-feira, 15 de novembro de 2017 16:25

Todas as Respostas

  • Boa tarde a todos.

    Sou novo no fórum e gostaria de saber se alguém consegue me ajudar.

    Preciso monitorar os serviços do Windows e caso algum seja derrubado, será enviado email para comunicar o fato.

    Utilizei o exemplo, ótimo devo dizer, do sr. Leandro Ribeiro, mas estou com a seguinte situação. O script utilizado abrange apenas um serviço. Tentei alterar a query do WQL, para abranger mais serviços e não consigo. Vi que o WQL não possui a cláusula IN do SQL e também não possui o operador OR. Como posso fazer para monitorar mais de um serviço com o script e a query abaixo:

    Set objMessage = CreateObject("CDO.Message") 
    objMessage.Subject = "O serviço DNS Cache acabou de ser interrompido...." 
    objMessage.From = """Monitoramento de Serviços"" <monitoramento@dominio.com.br>"
    objMessage.To = "e-mail@dominio.com.br" 
    objMessage.TextBody = "O processo de monitoração indentificou que o serviço xxxx parou..."
    
    While 1 = 1
    
    Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
    strWQL = "SELECT * " & _
    	"FROM __InstanceModificationEvent " & _
    	"WITHIN 2 " &_
    	"WHERE TargetInstance ISA 'Win32_Service' " & _
    	"AND TargetInstance.Name = 'DNSCACHE'" & _
    	"AND TargetInstance.State = 'Stopped'"
    	
    Set objEventSource = objWMIService.ExecNotificationQuery(strWQL)Agradeço desde já a atenção.
    

    Agradeço desde já a atenção.

    Abnraços

    ALguém ?
    domingo, 19 de novembro de 2017 00:46
  • Boa tarde Wanderlei, Existe uma maneira bem pratica de fazer isso, caso não utilize um script, você pode verificar o evento que é gerado no event viewer quando seu serviço para e atachar uma ação de envio de email. Basta ir no evento específico no event viewer e no painel da esquerda terá essa opção . Espero ter ajudado. Raphael Andrade

    Raphael Andrade - MCITP

    domingo, 19 de novembro de 2017 20:54
  • Ola Wanderleyjrr,

    Tente isso:

    sServiceName = "wuauserv"
    sServiceName1 = "WSearch"
    
    Set oWmi = GetObject("winmgmts://./root/cimv2")
    sQuery = "SELECT * FROM Win32_Service WHERE "&_
    			"Name='" & sServiceName & "'" &_
    			"OR Name='" & sServiceName1 & "'"
    
    For Each sService In oWmi.ExecQuery(sQuery)
    	wscript.echo "Serviço: " & sService.name & Chr(13) &_
    	"Estado: "& sService.State & Chr(13) &_
    	"Nome de Exibição: "&sService.Displayname
    Next
    


    att, Aparecido Deveza

    segunda-feira, 20 de novembro de 2017 12:10
  • Bom dia Raphael.

    Primeiramente, obrigado pelo retorno. Vou tentar e respondo aqui.

    Obrigado mesmo.

    Abraços.

    Att,

    Wanderley

    quarta-feira, 22 de novembro de 2017 10:17
  • Bom dia Aparecido.

    Agradeço muito o retorno. Vou fazer um teste e informo aqui o resultado.

    Muito obrigado mesmo.

    Abraços.

    Att,

    Wanderley

    quarta-feira, 22 de novembro de 2017 10:18