none
Script para enviar e-mail ao efetuar logon. RRS feed

  • Pergunta

  • Amigos, preciso da ajuda de vocês.

    Cenário:

    Preciso que quando um usuário efetue logon em um micro, que seja enviado um e-mail para o administrador da rede.

    A minha idéia é criar um script que fique na tarefa agendada do micro onde o usuário efetuará logon (marcando a opção de executar o script ao efetuar logon) para ser executado assim que o usuário efetue logon.

    Hoje temos um servidor muito crítico na empresa e precisamos ser notificado por e-mail sempre que alguém efetue logon no mesmo.

    Alguma idéia?

    Abraços e Obrigado.

    quarta-feira, 29 de maio de 2013 18:07

Respostas

  • Fábio e Nino,

    agradeço muito a ajuda de vocês.

    Gostaria de compartilhar a minha solução.

    Criei o seguinte script vbs:

    #######################################################################################################

    dim strSMTPFrom, strSMTPTo, strSMTPRelay, strTextBody, strSubject, strInfoPC, strDataHoraConsulta

    strDataHoraConsulta = Date() & "-" & Time()

    strinfoPC = getComputerInfo("computer")&";"&getComputerInfo("user") & ";" & strDataHoraConsulta

    strSMTPFrom = "email@email.com"

    strSMTPTo = "email@email.com"

    strSMTPRelay = "endereço do servidor smtp"

    strTextBody = strinfoPC

    strSubject = "acessoremoto: " & getComputerInfo("computer")

    Set oNetwork = CreateObject("WScript.Network")

    sUserName = oNetwork.UserName

    sComputerName = oNetwork.ComputerName

    Set WshNetwork = WScript.CreateObject("WScript.Network")

    StrComputer = WshNetwork.ComputerName

    Set oMessage = CreateObject("CDO.Message")

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTPRelay

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

    oMessage.Configuration.Fields.Update

    oMessage.Subject = strSubject

    oMessage.From = strSMTPFrom

    oMessage.To = strSMTPTo

    oMessage.TextBody = strTextBody

    'oMessage.AddAttachment strAttachment

    oMessage.Send

    Function getComputerInfo(info)

    Dim network

    Set network = CreateObject("WScript.Network")

    Select Case LCase(info)

    Case "computer"

    getComputerInfo = network.ComputerName

    Case "user"

    getComputerInfo = network.UserName

    Case "domain"

    getComputerInfo = network.UserDomain

    End Select

    End Function

    #######################################################################################################

    Coloquei esse script na gpo local dos 5 servidores específicos que quero monitorar e quando o usuário efetuar logon, automaticamente será enviado um e-mail com o nome do servidor, login do usuário, data e hora do acesso.                                                                                                                                                           Abraços!

    http://alexpxm.wordpress.com/

    quarta-feira, 5 de junho de 2013 16:39

Todas as Respostas

  • Alexsandre,

    Você pode criar uma tarefa no servidor que você está querendo monitorar.

    Utilize como disparador da tarefa como: Ao fazer Logon

    Quanto ao script de enviar e-mail você pode procurar aqui no fórum que existem diversos tópicos com exemplo de como enviar e-mail.

    Pesquisa no fórum

    http://social.technet.microsoft.com/Search/pt-BR/Technet?query=enviar%20e-mail&rq=meta:Search.MSForums.ForumID(e4fa6db6-7e9b-40e9-b8bd-143acb14c6d6)+site:microsoft.com&rn=F%C3%B3rum+Scripts+Administrativos

    Pesquisa no Google.

    http://www.google.com.br/search?sourceid=chrome&ie=UTF-8&q=script+send+e-mail


    Fábio de Paula Junior

    quinta-feira, 30 de maio de 2013 00:53
    Moderador
  • Fabio,

    obrigado pela orientação que realmente funciona, porém esqueci de citar que a versão do windows é 2003.

    Se fosse 2008 ou 2012, eu teria a solução conforme mostrado no meu Blog.

    http://alexpxm.files.wordpress.com/2012/11/monitoramento_alterac3a7c3b5es_active_directory2.pdf

    Eu preciso é saber como faria no windows 2003.

    Alguém consegue me ajudar?

    Abraços e Obrigado.

    segunda-feira, 3 de junho de 2013 13:16
  • Amigos, preciso da ajuda de vocês.

    Cenário:

    Preciso que quando um usuário efetue logon em um micro, que seja enviado um e-mail para o administrador da rede.

    A minha idéia é criar um script que fique na tarefa agendada do micro onde o usuário efetuará logon (marcando a opção de executar o script ao efetuar logon) para ser executado assim que o usuário efetue logon.

    Hoje temos um servidor muito crítico na empresa e precisamos ser notificado por e-mail sempre que alguém efetue logon no mesmo.

    Alguma idéia?

    Abraços e Obrigado.

    Alexsandre,

    Não ficou muito claro o que você queria, a configuração que indiquei é para ser feita no servidor que você quer monitorar os logons, assim toda vez que alguém logar naquele servidor será executada a tarefa que executa o script (tem esta opção também no Windows 2003).

    Mas na verdade o que você quer é monitorar os eventos de logon. No 2003 não existe esta opção (que eu saiba) como no 2008.

    Se você tem poucos servidores que você precisa monitorar acho que a opção que te passei já basta.


    Fábio de Paula Junior

    segunda-feira, 3 de junho de 2013 14:03
    Moderador
  • Alexsandre, tem a opção de fazer um script powershell para envio de email ao efetuar logon.

    Att, AJones

    segunda-feira, 3 de junho de 2013 16:00
  • Nino,

    Ao que parece o problema não é o script para enviar e-mail (veja o pdf que ele postou), e sim o disparador que envia o e-mail, ele quer que assim que um evento de logon apareça no event viewer seja enviado o log para alguém, ele já consegue isso com Windows 2008, ele quer fazer no Windows 2003, o que nativamente não é possivel.



    Fábio de Paula Junior

    terça-feira, 4 de junho de 2013 23:53
    Moderador
  • Fábio, você tem razão, li na pressa e não acompanhei 100%. Como nativamente não tem como no W2k3, vejo uma opção de criar uma auditoria para a OU dos servidores críticos e agendar uma tarefa para cada 'x' tempo (ex.: 10 min) ser feita uma verificação no log de eventos. Segue alguns pinos para referência: - Rastrear Logon/Logoff: http://support.microsoft.com/kb/556015/en-us - Auditar Eventos de Logon: http://technet.microsoft.com/en-us/library/cc787567(v=ws.10).aspx

    Att, Nino - Engº. de Projetos - http://www.TInoBar.com.br

    quarta-feira, 5 de junho de 2013 00:46
  • Fábio e Nino,

    agradeço muito a ajuda de vocês.

    Gostaria de compartilhar a minha solução.

    Criei o seguinte script vbs:

    #######################################################################################################

    dim strSMTPFrom, strSMTPTo, strSMTPRelay, strTextBody, strSubject, strInfoPC, strDataHoraConsulta

    strDataHoraConsulta = Date() & "-" & Time()

    strinfoPC = getComputerInfo("computer")&";"&getComputerInfo("user") & ";" & strDataHoraConsulta

    strSMTPFrom = "email@email.com"

    strSMTPTo = "email@email.com"

    strSMTPRelay = "endereço do servidor smtp"

    strTextBody = strinfoPC

    strSubject = "acessoremoto: " & getComputerInfo("computer")

    Set oNetwork = CreateObject("WScript.Network")

    sUserName = oNetwork.UserName

    sComputerName = oNetwork.ComputerName

    Set WshNetwork = WScript.CreateObject("WScript.Network")

    StrComputer = WshNetwork.ComputerName

    Set oMessage = CreateObject("CDO.Message")

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTPRelay

    oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

    oMessage.Configuration.Fields.Update

    oMessage.Subject = strSubject

    oMessage.From = strSMTPFrom

    oMessage.To = strSMTPTo

    oMessage.TextBody = strTextBody

    'oMessage.AddAttachment strAttachment

    oMessage.Send

    Function getComputerInfo(info)

    Dim network

    Set network = CreateObject("WScript.Network")

    Select Case LCase(info)

    Case "computer"

    getComputerInfo = network.ComputerName

    Case "user"

    getComputerInfo = network.UserName

    Case "domain"

    getComputerInfo = network.UserDomain

    End Select

    End Function

    #######################################################################################################

    Coloquei esse script na gpo local dos 5 servidores específicos que quero monitorar e quando o usuário efetuar logon, automaticamente será enviado um e-mail com o nome do servidor, login do usuário, data e hora do acesso.                                                                                                                                                           Abraços!

    http://alexpxm.wordpress.com/

    quarta-feira, 5 de junho de 2013 16:39