none
Verificar Processo Windows e Executar Comando RRS feed

  • Pergunta

  • Senhores(as), Boa Tarde.

    Estou precisando receber alertas quando um processo do windows for finalizado.

    Pensei em utilizar o BLAT para enviar o e-mail, porem eu não tenho muito conhecimento de Batch/PowerShell.

    Eu precisava que o meu Servidor X verificasse no Servidor Y se o processo "AAAA" está ativo, caso não ele iria executar as seguintes linhas:

    cd C:\Users\msanches\Desktop\blat307\full
    blat -to to-email@microsoft.com -server smtp.microsoft.com -f from-email@microsoft.com -subject "Assunto" -body "Processo parou"

    Agradeço desde já.


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches

    sexta-feira, 14 de setembro de 2012 20:12

Respostas

  • Matheus,

    Pode tentar com .BAT e usando o BLAT

    @ECHO OFF
    
    SET DIR_BLAT=C:\Users\msanches\Desktop\blat307\full
    SET PROCESSO=SPOOLSV.EXE
    
    :LOOP
    
    TASKLIST | FINDSTR /I "%PROCESSO%"
    IF %ERRORLEVEL% NEQ 0 (
    	ECHO PROCESSO NAO ENCONTRADO
    	ECHO ENVIANDO E-MAIL
    	%DIR_BLAT%\blat -to to-email@microsoft.com -server smtp.microsoft.com -f from-email@microsoft.com -subject "Assunto" -body "Processo parou"
    
    )
    
    PING 127.0.0.1 -n 6 >NUL
    
    GOTO :LOOP

    Configure as duas variaveis com o caminho do blat e o executavel do processo que vc quer monitorar.

    O script vai ficar em loop (até mesmo quando enviar o e-mail, se não quiser coloque um goto :EOF depois do envio do e-mail).

    Existe uma pausa de mais ou menos 5 segundo entre as verificações feita através da gamb.. artifico técnico do PING -n 6.

    Se tiver dificuldade com o loop vc pode apagar o loop e colocar o script em uma tarefa agendado do Windows para rodar da forma que vc achar melhor.


    Fábio de Paula Junior

    • Marcado como Resposta Matheus Sanches sexta-feira, 14 de setembro de 2012 22:55
    sexta-feira, 14 de setembro de 2012 22:19
    Moderador
  • Fábio,

    Muito obrigado !

    Serviu perfeitamente para mim. Eu só fiz uma alteração, quando você fala o TASKLIST eu adicionei para ele ir no outro Servidor:

    TASKLIST -S \\ServidorRemoto | FINDSTR /I "%PROCESSO%"

    Isto vai me ajudar de mais !

    Parabéns !


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches

    • Marcado como Resposta Matheus Sanches sexta-feira, 14 de setembro de 2012 22:55
    sexta-feira, 14 de setembro de 2012 22:54

Todas as Respostas

  • Matheus,

    Pode tentar com .BAT e usando o BLAT

    @ECHO OFF
    
    SET DIR_BLAT=C:\Users\msanches\Desktop\blat307\full
    SET PROCESSO=SPOOLSV.EXE
    
    :LOOP
    
    TASKLIST | FINDSTR /I "%PROCESSO%"
    IF %ERRORLEVEL% NEQ 0 (
    	ECHO PROCESSO NAO ENCONTRADO
    	ECHO ENVIANDO E-MAIL
    	%DIR_BLAT%\blat -to to-email@microsoft.com -server smtp.microsoft.com -f from-email@microsoft.com -subject "Assunto" -body "Processo parou"
    
    )
    
    PING 127.0.0.1 -n 6 >NUL
    
    GOTO :LOOP

    Configure as duas variaveis com o caminho do blat e o executavel do processo que vc quer monitorar.

    O script vai ficar em loop (até mesmo quando enviar o e-mail, se não quiser coloque um goto :EOF depois do envio do e-mail).

    Existe uma pausa de mais ou menos 5 segundo entre as verificações feita através da gamb.. artifico técnico do PING -n 6.

    Se tiver dificuldade com o loop vc pode apagar o loop e colocar o script em uma tarefa agendado do Windows para rodar da forma que vc achar melhor.


    Fábio de Paula Junior

    • Marcado como Resposta Matheus Sanches sexta-feira, 14 de setembro de 2012 22:55
    sexta-feira, 14 de setembro de 2012 22:19
    Moderador
  • Fábio,

    Muito obrigado !

    Serviu perfeitamente para mim. Eu só fiz uma alteração, quando você fala o TASKLIST eu adicionei para ele ir no outro Servidor:

    TASKLIST -S \\ServidorRemoto | FINDSTR /I "%PROCESSO%"

    Isto vai me ajudar de mais !

    Parabéns !


    Caso a resposta tenha lhe atendido, favor marcar como resposta. Assim os próximos que estiverem com a duvida será facilmente sanada e se possível, marcar como util, caso aplicável. Matheus Sanches

    • Marcado como Resposta Matheus Sanches sexta-feira, 14 de setembro de 2012 22:55
    sexta-feira, 14 de setembro de 2012 22:54