Cómo recibir una alerta por correo electrónico cuando una cuenta de administrador inicia sesión en Windows 10/11 o Windows Server.

¿Quieres recibir automáticamente una alerta por correo electrónico cada vez que un administrador inicie sesión en un servidor Windows o en Windows 10/11 PRO? Si es así, continúe leyendo a continuación para saber cómo puede hacerlo.

El envío de notificaciones automáticas por correo electrónico cuando una cuenta de administrador inicia sesión en Windows puede mejorar la seguridad al alertar a los administradores sobre posibles accesos no autorizados. Monitorear los inicios de sesión de administrador puede ayudarlo a detectar intentos de acceso no autorizados en tiempo real y en este artículo se lo mostraremos. obligar a una computadora con Windows a enviar automáticamente una alerta por correo electrónico cuando una cuenta de administrador inicia sesión.

* Notas:
1. Las instrucciones se pueden aplicar incluso en un servidor Windows estándar o en un controlador de dominio.
2. Las instrucciones también se pueden aplicar en Windows 11/10 Pro o Enterprise.

Cómo forzar a Windows Server 2016/2019 o Windows 10/11 PRO a enviar una notificación por correo electrónico cuando se inicia sesión en cualquier cuenta de administrador.

  • Requisito: Un servidor SMTP para enviar correos electrónicos.

Paso 1. Cree un script de PowerShell para enviar notificaciones por correo electrónico cuando los administradores inicien sesión.

El primer paso para completar esta tarea es crear un script de PowerShell que enviará automáticamente un correo electrónico cuando una cuenta de administrador inicie sesión en el servidor. *

* Nota: Si desea recibir una notificación por correo electrónico cuando cualquier Si un usuario inicia sesión en la computadora, utilice el script que se proporciona al final de este artículo, que también funciona para el Usuarios de escritorio remoto (RDP).

1. Crea una carpeta llamada «Guiones» en su unidad C:\ o en cualquier otra carpeta donde desee almacenar el script de PowerShell que enviará el correo electrónico. *

* Nota: En esta guía creamos la carpeta de scripts en «C:\Windows\System32\Scripts».

2. Ahora abierto Bloc y Copiarpasta el siguiente texto para crear el script:

# Información: este script envía un correo electrónico cuando una cuenta de administrador inicia sesión en la computadora.

# Credenciales de correo electrónico para el servidor SMTP
$Nombre de usuario = «remitente@dominio.com» # dirección de correo electrónico del remitente
$Contraseña simple = «contraseña del remitente» # contraseña de correo electrónico del remitente
$ContraseñaSecure = ConvertTo-SecureString $ContraseñaPlain -AsPlainText -Force
$Cred = Nuevo objeto System.Management.Automation.PSCredential ($Nombre de usuario, $Contraseña segura)

# Obtener información de usuario y computadora registrada
$LoggedInUser = $env:NOMBRE DE USUARIO
$Equipo = $entorno:NOMBRE DE EQUIPO
$Horalocal = Obtener-Fecha -Formato «aaaa-MM-dd HH:mm:ss»

# Obtener la identidad actual de Windows
$Identidad de Windows = [System.Security.Principal.WindowsIdentity]::ObtenerActual()
$principal = Nuevo objeto System.Security.Principal.WindowsPrincipal($windowsIdentity)

# SID para el grupo de administradores locales (S-1-5-32-544)
$adminSid = Nuevo-Objeto System.Security.Principal.SecurityIdentifier(«S-1-5-32-544»)

# Comprobar si el usuario es miembro del grupo Administradores
$isAdmin = $principal.IsInRole($adminSid)

si ($isAdmin) {
# Contenido del correo electrónico
$Para = «destinatario@dominio.com» # dirección de correo electrónico del destinatario
$Asunto = «NOMBRE DEL SERVIDOR Alerta de inicio de sesión: $LoggedInUser»
$Cuerpo = @»
El usuario $LoggedInUser ha iniciado sesión en $Computer a las $LocalTime.
«@

# Enviar el correo electrónico
Enviar mensaje de correo -De $Nombre de usuario -A $A -Asunto $Asunto -Cuerpo $Cuerpo `
-ServidorSmtp «correo.dominio.com» -Puerto 587 -UseSsl -Credencial $Cred

# Opcional: archivo de registro local
Agregar contenido -Ruta «C:\Windows\System32\Scripts\UserLoginLog.txt» -Value «$LocalTime – $LoggedInUser inició sesión en $Computer»
}

3. Luego modifique el texto del script de la siguiente manera:

  • Reemplazar «remitente@dominio.com» con su dirección de correo electrónico del remitente.
  • Reemplazar «contraseña del remitente» con la contraseña de la dirección de correo electrónico de su remitente.
  • Reemplazar «destinatario@dominio.com» con la dirección de correo electrónico del destinatario.
  • Reemplazar «NOMBRE DEL SERVIDOR» con el nombre de su servidor Windows.
  • Reemplazar «correo.dominio.com» con el nombre de su servidor SMTP.
  • Reemplace -si es necesario- «587» con el puerto de su servidor SMTPS.
  • Reemplazar «C:\Windows\System32\Scripts» con el recorrido completo del «Guiones«carpeta (si la creó en otra ubicación).

imagen

4a. Cuando termine, desde Archivo selección de menú Guardar como.

4b. Ahora haz lo siguiente en «Guardar como» diálogo:

  1. Seleccione para ahorrar el archivo dentro de «Guiones«carpeta que creaste antes.
  2. Elige en Guardar como tipo: Todos los archivos
  3. Elige en Codificación: Unicódigo
  4. Escribe como Nombre del archivo: «Correo electrónicoAleltForAdminLogins.ps1»
  5. Hacer clic Ahorrar y luego cierre el Bloc de notas.

Paso 2. Pruebe el script de PowerShell que creó.

Después de crear el script, verifique si funciona antes de continuar. Para hacer esto:

1. Haga clic derecho en el «Correo electrónicoAleltForAdminLogins.ps1» y seleccione Ejecutar con PowerShell.

Ejecute el script de alerta de correo electrónico de inicio de sesión de Windows al iniciar sesión

2. Si el script funciona, entonces debería recibir un correo electrónico a la dirección del destinatario que ingresó en el script, notificándole que la cuenta de «Administrador» estaba conectada al servidor en el momento en que ejecutó el script. Si es así, continúe con el siguiente paso.

Notificación por correo electrónico de inicio de sesión

Paso 3. Obligar a Windows a ejecutar el script al iniciar sesión a través de la Política de grupo.

Ahora continúe y configure Windows para ejecutar el script que creó en la fase «Inicio de sesión» a través de la política de grupo local.

1. Presione simultáneamente el ventanas imagen + R llaves para abrir el ‘Correr‘cuadro de comando.
2. En Correr cuadro de comando, escriba gpedit.msc y presione Ingresar (Aceptar) para abrir el Editor de políticas de grupo local.

gpedit.msc

3. En Editor de políticas de grupo local navegue hasta la siguiente ubicación:

  • Configuración de usuario > Configuración de Windows > Scripts (iniciar/cerrar sesión) > Iniciar sesión

Ejecute PowerScript al iniciar sesión

4a. En ‘Propiedades de inicio de sesión ventana seleccione el Secuencias de comandos de PowerShell pestaña y haga clic Agregar.

Ejecute el script de PowerShell al iniciar sesión

4b. En el ‘Agregar un guión’ clic en la ventana Navegar

Ejecute el script de PowerShell al iniciar sesión

4c. Navegue hasta la carpeta donde guardó el archivo de secuencia de comandos que creó (por ejemplo, «C:\Windows\System32\Scripts\«carpeta en este ejemplo), seleccionar el «Correo electrónicoAleltForAdminLogins.ps1«archivo de script y haga clic Abierto.

imagen

4d. Entonces, copiar y pegar el siguiente texto en Parámetros de secuencia de comandos campo y haga clic DE ACUERDO:

imagen

4e. Finalmente haga clic Aplicar > DE ACUERDO y cerca el Editor de políticas de grupo local.

imagen

5. Ahora tampoco Reanudar el servidor para aplicar la política o ejecutar «gpupdate/fuerza» en el símbolo del sistema y luego Desconectar desde Windows.

6. Vuelva a iniciar sesión en el servidor y después de unos segundos se le notificará por correo electrónico sobre este evento de inicio de sesión. El evento de inicio de sesión también se registrará en el archivo «UsuarioLoginLog.txt«archivo ubicado dentro de la carpeta «Scripts» (por ejemplo, «C:\Windows\System32\Scripts\UserLoginLog.txt» en este ejemplo).*

imagen

* Notas:
1.
Desde el script anterior sólo se ejecutará en «Iniciar sesión» (por ejemplo, significa cuando reinicia el servidor o si la cuenta de administrador cierra sesión y vuelve a iniciar sesión en el servidor), y no cuando el servidor está desbloqueadocontinúe y obligue a Windows a enviar también una alerta por correo electrónico incluso al desbloquear el servidor. Para hacer esto, lea las instrucciones en paso-2 de en esto tutorial: Cómo recibir notificaciones por correo electrónico cuando un servidor Windows o Windows 10/11 está desbloqueado.

2. El script de PowerShell que creó en el paso 1 envía una notificación por correo electrónico solo cuando el usuario que inició sesión pertenece al Administradores grupo. Si desea recibir una notificación sobre la conexión de cualquier usuario a la máquina, incluso para los usuarios que se conectan a través de Escritorio remoto (usuarios conectados a RDP), utilice el siguiente script:

# Información: este script envía un correo electrónico cuando cualquier cuenta de usuario inicia sesión en la computadora.

# Credenciales de correo electrónico para el servidor SMTP
$Nombre de usuario = «remitente@dominio.com» # dirección de correo electrónico del remitente
$Contraseña simple = «contraseña del remitente» # contraseña de correo electrónico del remitente
$ContraseñaSecure = ConvertTo-SecureString $ContraseñaPlain -AsPlainText -Force
$Cred = Nuevo objeto System.Management.Automation.PSCredential ($Nombre de usuario, $Contraseña segura)

# Contenido del correo electrónico
$LoggedInUser = $env:NOMBRE DE USUARIO
$Equipo = $entorno:NOMBRE DE EQUIPO
$Horalocal = Obtener-Fecha -Formato «aaaa-MM-dd HH:mm:ss»
$Para = «destinatario@dominio.com» # dirección de correo electrónico del destinatario
$Asunto = «Nombre del servidor Alerta de inicio de sesión: $LoggedInUser»
$Cuerpo = @»
El usuario $LoggedInUser ha iniciado sesión en $Computer a las $LocalTime.
«@

# Enviar el correo electrónico
Enviar mensaje de correo -De $Nombre de usuario -A $A -Asunto $Asunto -Cuerpo $Cuerpo `
-ServidorSmtp «correo.dominio.com» -Puerto 587 -UseSsl -Credencial $Cred

# Opcional: archivo de registro local
Agregar contenido -Ruta «C:\Windows\System32\Scripts\UserLoginLog.txt» -Value «$LocalTime – $LoggedInUser inició sesión en $Computer»

¡Eso es todo! Déjame saber si esta guía te ha ayudado dejando tu comentario sobre tu experiencia. Por favor, dale me gusta y comparte esta guía para ayudar a otros.

Si este artículo fue útil para usted, considere apoyarnos haciendo una donación. Incluso 1 dólar puede marcar una gran diferencia para nosotros en nuestro esfuerzo por continuar ayudando a otros mientras mantenemos este sitio gratuito:

Konstantinos Tsoukalas
Últimos mensajes de Konstantinos Tsoukalas (ver todo)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *