.single.post-author, Autor: Konstantinos Tsoukalas, Última actualización: 26 de noviembre de 2025

¿Quieres recibir automáticamente una alerta por correo electrónico cada vez que un administrador inicie sesión en Windows Server 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 un posible acceso no autorizado. 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 le mostraremos forzar 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 haya alguna La cuenta de administrador ha iniciado sesión.

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 usuario inicie sesión en la computadora, utilice el script proporcionado al final de este artículo, que también funciona para los usuarios de Escritorio remoto (RDP).

1. Cree una carpeta llamada”Scripts“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 secuencias de comandos en”C:\Windows\System32\Scripts”.

2. Ahora abra el Bloc de notas y copiepegue el siguiente texto para crear la secuencia de comandos:

# Información: esta secuencia de comandos 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
$Username=”[email protected]”      # dirección de correo electrónico del remitente
$PlainPassword=”senderpassword”    # contraseña de correo electrónico del remitente
$SecurePassword=ConvertTo-SecureString $PlainPassword-AsPlainText-Force
$Cred=New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)

# Obtener información del usuario y de la computadora que ha iniciado sesión
$LoggedInUser=$env:USERNAME
$Computer=$env:COMPUTERNAME
$LocalTime=Get-Date-Format”yyyy-MM-dd HH:mm:ss”

# Obtener Windows actual identidad
$windowsIdentity=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal=New-Object System.Security.Principal.WindowsPrincipal($windowsIdentity)

# SID para el grupo de administradores locales (S-1-5-32-544)
$adminSid=New-Object System.Security.Principal.SecurityIdentifier(“S-1-5-32-544”)

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

if ($isAdmin) {
# Contenido del correo electrónico
$To=”[email protected]”      # correo electrónico del destinatario dirección
$Subject=”SERVERNAME Alerta de inicio de sesión: $LoggedInUser”
$Body=@”
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 `
-SmtpServer”mail.domain.com”-Port 587-UseSsl-Credential $Cred

# Opcional: archivo de registro local
Add-Content-Path”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:

Reemplace”[email protected]”con su dirección de correo electrónico del remitente. Reemplace”senderpassword”con la contraseña de la dirección de correo electrónico de su remitente. Reemplace”[email protected]”con la dirección de correo electrónico del destinatario. Reemplace”SERVERNAME”con el nombre de su servidor de Windows. Reemplace”mail.dominio.com”con el nombre de su servidor SMTP. Reemplace, si es necesario,”587″con el puerto de su servidor SMTPS. Reemplace”C:\Windows\System32\Scripts”con la ruta completa de la carpeta”Scripts”(si la creó en otra ubicación).

4a. Cuando termine, en el menú Archivo seleccione Guardar como.

4b. Ahora haga lo siguiente en el cuadro de diálogo”Guardar como”:

Seleccione guardar el archivo dentro de la carpeta”Scripts“que creó antes. Elija en Guardar como tipo: Todos los archivos Elija en Codificación: Unicode  Escriba como Nombre de archivo: “EmailAleltForAdminLogins.ps1” Haga clic en Guardar 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”EmailAleltForAdminLogins.ps1“y seleccione Ejecutar con PowerShell.

2. Si el Si el script funciona, 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.

Paso 3. Fuerce 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 de”Inicio de sesión”. a través de la política de grupo local.

+ teclas R  para abrir el cuadro de comando’Ejecutar’.
2. En el cuadro de comando Ejecutar, escriba gpedit.msc y presione Intro (Aceptar) para abrir el Editor de políticas de grupo local.

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

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

4a. En la ventana’Propiedades de inicio de sesión’, seleccione la pestaña Scripts de PowerShell y haga clic en Agregar.

4b. En la ventana’Agregar un script’, haga clic en Examinar

4c. Navegue hasta la carpeta donde guardó el archivo de script que creó (por ejemplo, la carpeta”C:\Windows\System32\Scripts\”en este ejemplo), seleccione el”EmailAleltForAdminLogins.ps1“y haga clic en Abrir.

4d. Luego, copie y pegue el siguiente texto en el campo Parámetros de script y haga clic en Aceptar:

-WindowStyle Hidden-ExecutionPolicy Bypass

4e. Finalmente, haga clic en Aplicar > Aceptar y cierre el Editor de políticas de grupo local.

5. Ahora bien reinicie el servidor para aplicar la política o ejecute”gpupdate/force“en el símbolo del sistema y luego cierre sesión en 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”UserLoginLog.txt“ubicado dentro de la carpeta”Scripts”(por ejemplo,”C:\Windows\System32\Scripts\UserLoginLog.txt”en este ejemplo).*

* Notas:
1. Dado que el script anterior solo se ejecutará al”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á desbloqueado, continúe y obligue a Windows a enviar también una alerta por correo electrónico incluso cuando desbloquee el servidor. Para hacer esto, lea las instrucciones en el paso 2 de este 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 grupo Administradores. 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
$Username=”[email protected]”      # dirección de correo electrónico del remitente
$PlainPassword=”senderpassword”     # contraseña de correo electrónico del remitente
$SecurePassword=ConvertTo-SecureString $PlainPassword-AsPlainText-Force
$Cred=New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)

# Contenido del correo electrónico
$LoggedInUser=$env:USERNAME
$Computer=$env:COMPUTERNAME
$LocalTime=Get-Date-Format”yyyy-MM-dd HH:mm:ss”
$To=”[email protected]”                    # dirección de correo electrónico del destinatario
$Subject=”ServerName Alerta de inicio de sesión: $LoggedInUser”
$Body=@”
El usuario $LoggedInUser ha iniciado sesión en $Computadora a $LocalTime.
“@

# Enviar el correo electrónico
Enviar mensaje de correo-De $Nombre de usuario-A $A-Asunto $Asunto-Cuerpo $Cuerpo `
-SmtpServer”mail.domain.com”-Puerto 587-UseSsl-Credential $Cred

# Opcional: archivo de registro local
Add-Content-Path”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. Dale Me gusta y comparte esta guía para ayudar a otros.

Si este artículo fue útil para ti, considera apoyarnos haciendo una donación. Incluso $1 puede marcar una gran diferencia para nosotros en nuestro esfuerzo por continuar ayudando a otros mientras mantenemos este sitio gratuito: Konstantinos es el fundador y administrador de Wintips.org. Desde 1995 trabaja y brinda soporte informático como experto en informática y redes a particulares y grandes empresas. Está especializado en la resolución de problemas relacionados con Windows u otros productos de Microsoft (Windows Server, Office, Microsoft 365, etc.). Últimas publicaciones de Konstantinos Tsoukalas (ver todas)

Categories: IT Info