Usuário com melhor resposta
Script para enviar e-mail ao efetuar logon.

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.
- Tipo Alterado Fábio JrModerator quinta-feira, 30 de maio de 2013 00:48 é pergunta
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/
- Marcado como Resposta Alexsandre Peixoto Moreira quarta-feira, 5 de junho de 2013 16:39
- Editado Alexsandre Peixoto Moreira quarta-feira, 5 de junho de 2013 16:41 publicação
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
Pesquisa no Google.
http://www.google.com.br/search?sourceid=chrome&ie=UTF-8&q=script+send+e-mail
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator segunda-feira, 3 de junho de 2013 12:50
-
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.
-
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
-
-
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
-
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
-
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/
- Marcado como Resposta Alexsandre Peixoto Moreira quarta-feira, 5 de junho de 2013 16:39
- Editado Alexsandre Peixoto Moreira quarta-feira, 5 de junho de 2013 16:41 publicação