.single.post-author, Autor: Konstantinos Tsoukalas , Última atualização: 26 de novembro de 2025
Deseja receber automaticamente um alerta por e-mail sempre que um administrador fizer login em um Windows Server ou no Windows 10/11 PRO? Nesse caso, continue lendo abaixo para saber como fazer isso.
O envio de notificações automáticas por e-mail quando uma conta de administrador faz login no Windows pode aumentar a segurança, alertando os administradores sobre um possível acesso não autorizado. O monitoramento de logins de administrador pode ajudá-lo a detectar tentativas de acesso não autorizado em tempo real e, neste artigo, mostraremos como forçar um computador Windows a enviar automaticamente um alerta por e-mail quando uma conta de administrador fizer login.
* Observações:
1. As instruções podem ser aplicadas até mesmo em um Servidor Windows Padrão ou em um controlador de Domínio.
2. As instruções também podem ser aplicadas no Windows 11/10 Pro ou Enterprise.
Como forçar o Windows Server 2016/2019 ou o Windows 10/11 PRO a enviar uma notificação por e-mail quando qualquer conta de administrador está logada.
Requisito: Um servidor SMTP para envio de e-mails.
Etapa 1. Crie um script do PowerShell para enviar notificações por email quando os administradores fizerem login.
A primeira etapa para concluir esta tarefa é criar um script do PowerShell que enviará automaticamente um email quando uma conta de administrador fizer login no servidor. *
* Observação: se você quiser receber uma notificação por e-mail quando qualquer usuário fizer login no computador, use o script fornecido no final deste artigo, que também funciona para os usuários da Área de Trabalho Remota (RDP).
1. Crie uma pasta chamada”Scripts“em sua unidade C:\ ou qualquer outra pasta onde você deseja armazenar o script do PowerShell que enviará o e-mail. *
* Observação: neste guia criamos a pasta de scripts em”C:\Windows\System32\Scripts”.
2. Agora abra o Bloco de Notas e copie–cole o seguinte texto para criar o script:
# Info: Este script envia um e-mail quando uma conta de administrador faz login no computador.
# credenciais de e-mail para servidor SMTP
$Username=”[email protected]” # endereço de e-mail do remetente
$PlainPassword=”senderpassword” # senha do e-mail do remetente
$SecurePassword=ConvertTo-SecureString $PlainPassword-AsPlainText-Force
$Cred=New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)# Obtenha informações de usuário e computador logado
$LoggedInUser=$env:USERNAME
$Computer=$env:COMPUTERNAME
$LocalTime=Get-Date-Format”yyyy-MM-dd HH:mm:ss”# Obtenha a identidade atual do Windows
$windowsIdentity=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal=New-Object System.Security.Principal.WindowsPrincipal($windowsIdentity)# SID para grupo de administradores locais (S-1-5-32-544)
$adminSid=New-Object System.Security.Principal.SecurityIdentifier(“S-1-5-32-544”)# Verifique se o usuário é membro do grupo Administradores
$isAdmin=$principal.IsInRole($adminSid)if ($isAdmin) {
# Conteúdo do email
$To=”[email protected]” # email do destinatário endereço
$Subject=”Alerta de login SERVERNAME: $LoggedInUser”
$Body=@”
O usuário $LoggedInUser efetuou login no $Computer em $LocalTime.
“@# Envie o e-mail
Send-MailMessage-From $Username-To $To-Subject $Subject-Body $Body `
-SmtpServer”mail.domain.com”-Port 587-UseSsl-Credential $Cred# Opcional: arquivo de log local
Add-Content-Path”C:\Windows\System32\Scripts\UserLoginLog.txt”-Value”$LocalTime – $LoggedInUser conectado em $Computer”
}
3. Em seguida, modifique o texto do script da seguinte forma:
Substitua”remetente@domínio.com”pelo endereço de e-mail do remetente. Substitua “senderpassword” pela senha do endereço de e-mail do remetente. Substitua “[email protected]” pelo endereço de e-mail do destinatário. Substitua “SERVERNAME” pelo nome do seu servidor Windows. Substitua “mail.domain.com” pelo nome do seu servidor SMTP. Substitua-se necessário-“587″pela porta do seu servidor SMTPS. Substitua “C:\Windows\System32\Scripts” pelo caminho completo da pasta “Scripts” (se você a criou em outro local).
4a. Quando terminar, no menu Arquivo, selecione Salvar como.
4b. Agora faça o seguinte na caixa de diálogo”Salvar como”:
Selecione para salvar o arquivo dentro da pasta”Scripts“que você criou anteriormente. Escolha em Salvar como tipo: Todos os arquivos Escolha em Codificação: Unicode Digite como Nome do arquivo: “EmailAleltForAdminLogins.ps1” Clique em Salvar e feche o Bloco de notas.
Etapa 2. Teste o script do PowerShell que você criou.
Depois de criar o script, verifique se ele funciona antes de prosseguir. Para fazer isso:
1. Clique com o botão direito em”EmailAleltForAdminLogins.ps1“e selecione Executar com PowerShell.
2. Se o script funcionar, você deverá receber um e-mail no endereço do destinatário inserido no script, notificando que a conta”Administrador”estava conectada ao servidor no momento em que você executou o script. Nesse caso, continue na próxima etapa.
Etapa 3. Force o Windows a executar o script no logon por meio da Política de Grupo.
Agora vá em frente e configure o Windows para executar o script que você criou em Fase de”Logon”por meio da política de grupo local.
+ teclas R para abrir a caixa de comando”Executar”.
2. Na caixa de comando Executar, digite gpedit.msc e pressione Enter (OK) para abrir o Editor de Política de Grupo Local.
3. No Editor de política de grupo local, navegue até o seguinte local:
Configuração do usuário > Configurações do Windows > Scripts (Logon/Logoff) > Logon
4a. Na janela’Propriedades de logon’, selecione a guia Scripts do PowerShell e clique em Adicionar.
4b. Na janela’Adicionar um script’, clique em Navegar
4c. Navegue até a pasta onde você salvou o arquivo de script criado (por exemplo, a pasta”C:\Windows\System32\Scripts\”neste exemplo), selecione o Arquivo de script”EmailAleltForAdminLogins.ps1“e clique em Abrir.
4d. Em seguida, copie e cole o texto abaixo no campo Parâmetros de script e clique em OK:
-WindowStyle Hidden-ExecutionPolicy Bypass
4e. Por fim, clique em Aplicar > OK e feche o Editor de Política de Grupo Local.
5. Agora reinicieo servidor para aplicar a política ou execute”gpupdate/force“no prompt de comando e então Sairdo Windows.
6. Faça login novamente no servidor e após alguns segundos você será notificado por e-mail sobre este evento de login. O evento de login também será registrado no arquivo”UserLoginLog.txt“localizado dentro da pasta”Scripts”(por exemplo,”C:\Windows\System32\Scripts\UserLoginLog.txt”neste exemplo).*
* Notas:
1. Como o script acima só será executado no”Logon” (por exemplo, isso significa quando você reinicia o servidor ou se a conta do administrador sai e faz login novamente no servidor), e não quando o servidor é desbloqueado, vá em frente e force o Windows a também enviar um alerta por e-mail mesmo ao desbloquear o servidor. Para fazer isso, leia as instruções na etapa 2 deste tutorial: Como receber notificações por e-mail quando um servidor Windows Server ou Windows 10/11 é desbloqueado.
2. O script do PowerShell que você criou na etapa 1 envia uma notificação por e-mail somente quando o usuário conectado pertence ao grupo Administradores. Se você deseja ser notificado sobre qualquer conexão de usuário à máquina, mesmo para usuários que se conectam via Área de Trabalho Remota (Usuários Conectados RDP), use o seguinte script:
# Info: Este script envia um e-mail quando qualquer conta de usuário faz login no computador.
# Credenciais de e-mail para servidor SMTP
$Username=”[email protected]” # endereço de e-mail do remetente
$PlainPassword=”senderpassword” # senha do e-mail do remetente
$SecurePassword=ConvertTo-SecureString $PlainPassword-AsPlainText-Force
$Cred=New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)# Conteúdo do e-mail
$LoggedInUser=$env:USERNAME
$Computer=$env:COMPUTERNAME
$LocalTime=Get-Date-Format”yyyy-MM-dd HH:mm:ss”
$To=”[email protected]” # endereço de e-mail do destinatário
$Subject=”ServerName Alerta de login: $LoggedInUser”
$Body=@”
O usuário $LoggedInUser fez login em $Computer em $LocalTime.
“@# Envie o e-mail
Send-MailMessage-From $Username-To $To-Subject $Subject-Body $Body `
-SmtpServer”mail.domain.com”-Port 587-UseSsl-Credential $Cred# Opcional: arquivo de log local
Add-Content-Path”C:\Windows\System32\Scripts\UserLoginLog.txt”-Value”$LocalTime – $LoggedInUser conectado em $Computer”
É isso aí! Deixe-me saber se este guia o ajudou, deixando seu comentário sobre sua experiência. Por favor, curta e compartilhe este guia para ajudar outras pessoas.
Se este artigo foi útil para você, considere nos apoiar fazendo uma doação. Até mesmo US$ 1 pode fazer uma grande diferença para nós em nosso esforço de continuar ajudando outras pessoas e, ao mesmo tempo, manter este site gratuito: 
Konstantinos é o fundador e administrador do Wintips.org. Desde 1995 atua e presta suporte de TI como especialista em informática e redes para pessoas físicas e grandes empresas. É especializado na resolução de problemas relacionados ao Windows ou outros produtos Microsoft (Windows Server, Office, Microsoft 365, etc.). Últimos posts de Konstantinos Tsoukalas (ver todos)