Este documento describe cómo configurar Windows Server 2008 para enviar un correo electrónico cada vez que se realice una sesión remota. Primero, se debe instalar PowerShell en el servidor. Luego, se crea un script de PowerShell con la dirección de correo electrónico de envío y recepción, el asunto y el cuerpo del mensaje. El script se guarda con extensión .ps1 y se ejecuta para probarlo. Finalmente, se programa la tarea para que se ejecute el script cada vez que haya una sesión remota.
2. Lo primero que nos ocupa es: ¿Tenemos instalado Powershell en nuestro servidor?
Si no es asi estos son los pasos que debes seguir:
- Inicio>Administrador del servidor>Caracteristicas.
Una vez aqui debemos seleccionar Añadir una nueva caracteristica, y nos saldrá la pantalla
que veremos a continuación.
Como podemos observar en la imagen anterior, deberemos seleccionar Windows powershell e
instalarlo, una vez instalado powershell deberemos reiniciar nuestro servidor.
3. El siguiente paso que debemos hacer es crear un archivo de texto, y escribiremos como se ve en la
imagen anterior lo siguiente:
$EmailPropio = "EmailQueEnvia@gmail.com";
$EmailDestino = "EmailQueRecibe@gmail.com";
$Asunto = "El asunto del email"
$Mensaje = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("EmailQueEnvia(sin@x.com)", "ContraseñaDeLaMisma");
$ClienteSMTP.Send($EmailPropio, $EmailDestino, $Asunto, $Mensaje)
Deberemos guardarlo como "Nombre.ps1" y asegurarnos de seleccionar en formato todos los
archivos para evitar que quede guardado como "nombre.ps1.txt" y no funcione.
En este punto abriremos powershell y escribiremos el comando Set-ExecutionPolicy Unrestricted
lo que nos permitirá ejecutar nuestro script.
Es hora de comprobar si funciona
nuestro script, asique abrimos el terminal
de comandos (cmd) y escribimos:
powershell "ruta de nuestro archivo .ps1"
Y verificaremos si nos ha llegado un
email desde la cuenta que seleccionamos
a la cuenta receptora.
Si no es así, al final del documento habrá
una serie de posibles errores que tanto yo
como otros compañeros fuimos
encontrando.
4. Una vez verificado que nos ha llegado dicho mail seguiremos esta ruta:
Inicio>Herramientas administrativas>Visor de eventos>Registros de windows>Seguridad
y seguiremos la guia de la siguiente imagen:
Seleccionamos el nombre de la tarea
Elegimos la opción de Iniciar un programa
Y escribimos el mismo comando que en el terminal de
comandos (cmd):
powershell "ruta de nuestro archivo .ps1"
5. Una imagen con el
administrador activo, y
un usuario conectado
remotamente.
Esto es lo que deberiamos observar en nuestra bandeja de entrada llegados a este punto.
6. Posibles errores:
1. Asegurarse de que todos los datos de los emails son
correctos.
En muchos de los casos este puede ser el error mas común.
2. Al ejecutar Set-ExecutionPolicy Unrestricted en powershelln os da un
error, ejecutar powershell como administrador, y debería
dejar de aparecer dicho error.
3. El ultimo error que se nos presentó tuvo que ver con la
política de seguridad de Google, deberias activar permitir
el acceso de aplicaciones menos seguras al cual se accede
desde Mi cuenta>Inicio de sesion y Seguridad siendo la ultima de las
opciones en dicha pagina.
Dicho esto dar las gracias a Rafael Santos por aportar el
script, podeis encontrar su guia sobre este mismo tema en
https://www.rafaelsantos.es/web/informatica/windows/48-
enviar-un-email-con-una-tarea-programada-en-windows