Alerta email inicio sesion (Tarea programada Powershell)
HTML-код
- Опубликовано: 11 сен 2024
- Puede utilizarse el Programador de tareas para recibir por email alertas de inicio de sesión, tanto por acceso local como remoto, como medida de seguridad. El primer paso es codificar el script de código, para lo que puede emplearse Bloc de notas como editor. Como ejemplo se describe el modelo de archivo para envío desde un buzón de GMail:
$EmailOrigen = "EmailOrigen@gmail.com"
$EmailDestino = "EmailDestino@Subdminio.Dominio"
$Asunto = "Asunto del email"
$Mensaje = "Mensaje del email"
$ServidorSMTP = "smtp.gmail.com"
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("EmailOrigen@gmail.com", "contraseña")
$ClienteSMTP.Send($EmailOrigen, $EmailDestino, $Asunto, $Mensaje)
En el caso de este ejemplo, como el remitente es un email de GMail, se ha fijado tanto el nombre de servidor SMTP como la conexión SSL con puerto 587. El valor de "contraseña" se obtendrá desde el apartado de seguridad de la cuenta de Google, creándose una nueva contraseña aleatoria de 16 posiciones específica de aplicación sin seguridad de doble factor, desde el acceso directo:
myaccount.goog...
El proceso de creación de este tipo de contraseñas de aplicación está descrito en un artículo anterior de este blog, siendo aplicable en adelante para acceso de gestión de email de la aplicación elegida.
El archivo debe guardarse en ruta accesible, con extensión "PS1", para ejecutarse desde la tarea programada que se creará a continuación.
Para ello, lo primero es acceder al Programador de tareas, que se puede localizar fácilmente desde el cuadro de búsqueda de la Barra de tareas. Una vez abierta la ventana del Programador de tareas, hacer clic derecho sobre Biblioteca del Programador de tareas y elegir Crear tarea básica. El siguiente paso será cumplimentar nombre y descripción y pulsar Siguiente. A continuación marcar la casilla de selección Al iniciar sesión y pulsar Siguiente. Marcar ahora la casilla de selección Iniciar un programa y pulsar Siguiente. El contenido del cuadro de texto Programa o script puede variar para Windows 10 y 11, dependiendo igualmente de la versión de Powershell instalada. Para Windows 11 con Powershell 7 sería:
"C:\Program Files\PowerShell\7\pwsh.exe"
Para Windows 10 con Powershell 1 sería:
powershell
En cuanto al argumento en ambos casos sería (siendo "X.ps1" el nombre del script) del tipo:
-command "C:\Users\User\X.ps1"
Tras completar el asistente al pulsar el botón Finaliza conviene revisar las propiedades, al hacer clic derecho sobre la misma y elegir Propiedades, para marcar dentro de la ficha General la casilla de selección Ejecutar tanto si el usuario inició sesión como si no. Esto hace que la tarea se ejecute en segundo plano, no mostrando la ventana de ejecución del script. Puede accederse también a la ficha Configuración para, dentro del apartado Detener la tarea si se ejecuta durante más de elegir el valor mínimo de una hora.
Con esto quedaría todo configurado y listo para probar el envío automático de email con cada nuevo inicio de sesión, haciendo la salvedad de que en WIndows 10 está deshabilitada de forma predeterminada la ejecución de scripts de inicio, por lo que habría que habilitarla previamente, al menos para scripts firmados. Este procedimiento está descrito en un artículo anterior del blog.