Last active
October 3, 2020 18:12
-
-
Save raulunzue/b51123f033b572c532ab2d81ebc43bfd to your computer and use it in GitHub Desktop.
Script que valida la licencia de Microsoft Outlook y envía correo al usuario: https://www.maquinasvirtuales.eu/powershell-avisar-a-usuarios-caducidad-de-outlook/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script Raul Unzue - El Blog de Negu | |
# Revisa que al usuario le faltan menos de 7 días para caducar licencia outlook | |
# Le manda un correo para que introduzca sus datos para activarla nuevamente | |
#################### | |
# SABER EL USUARIO | |
#################### | |
$usuario=C:\windows\system32\whoami.exe | |
#################### | |
# ELIMINAR DOMINIO | |
#################### | |
$usuariomodificado=$usuario.Substring(12) | |
#################################### | |
# SABER LOS DIAS EXPIRACION CUENTA | |
#################################### | |
# Extraer | |
cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS" /dstatus > c:\Users\runzue\caducidadoutlook.txt | |
# Extraemos valor de la línea | |
$dias= (Get-Content c:\Users\runzue\caducidadoutlook.txt | sls -Pattern 'REMAINING GRACE: \d\d*') | foreach {$_.Matches.Value} | ForEach-Object { $_ -replace "REMAINING GRACE: ","" } | |
#$dias=5 | |
#PUNTO DE CONTROL | |
Write-Output "Al usuario le quedan $dias para caducar su licencia" | |
#################### | |
# HACEMOS UN FILTRO | |
#################### | |
$hora=Get-Date -Format "HH:mm:ss" | |
# SI LOS DIAS SON MENOS DE 7 DIAS | |
if ($dias -lt 7) | |
{ | |
############### | |
# ENVIO CORREO | |
############### | |
# ENCRIPTAMOS USUARIO Y CONTRASEÑA | |
$EncodedTextMAIL = “ZQBsAGIAbABvAGcAZABlAG4AZQBnAHUAQABnAG0AYQBpAGwALgBjAG8AbQA=” | |
$DecodedTextMAIL = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedTextMAIL)) | |
$EncodedTextPW = “cAByAHUAZQBiAGEAcwBjAHIAaQBwAHQA” | |
$DecodedTextPW = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedTextPW)) | |
$emailSmtpServer = "smtp.tuserver.es" | |
$emailSmtpServerPort = "587" | |
$emailSmtpUser = "$DecodedTextMAIL" | |
$emailSmtpPass = "$DecodedTextPW" | |
$emailFrom = "cuentacorreo@tudominio.es" | |
$emailTo = "$file@tudominio.es" | |
$emailcc="otrousuario@tudominio.es" | |
$emailMessage = New-Object System.Net.Mail.MailMessage( $emailFrom , $emailTo ) | |
$emailMessage.cc.add($emailcc) | |
$emailMessage.Subject = "LICENCIA DE OUTLOOK A PUNTO DE CADUCAR" | |
$emailMessage.IsBodyHtml = $true #true or false depends | |
$emailMessage.Body = "<h2>¡Licencia de Outlook a punto de caducar!</h2>" | |
$emailMessage.Body += "Su licencia de Outlook caducará en <FONT SIZE=4><strong>$dias días</strong></font>" | |
$emailMessage.Body += "<p>Por favor, siga las instrucciones para poder renovar su licencia</p>" | |
$emailMessage.Body += "<p>Archivo --> Cuenta de Office --> Cambiar licencia</p>" | |
$emailMessage.Body += "<p>Introduzca su usuario@tudominio.es y contraseña para renovarla</p>" | |
$emailMessage.Body += "<p>Si no lo hace, puede tener problemas con Outlook</p>" | |
$emailMessage.Body += "Gracias de antemano, le agradecemos su colaboración" | |
$emailMessage.Body += '<p><img src="https://www.maquinasvirtuales.eu/wp-content/uploads/2018/11/maquinas-virtuales-logo1.png"></p>' | |
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort ) | |
$SMTPClient.EnableSsl = $False | |
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass ); | |
$SMTPClient.Send( $emailMessage ) | |
########################## | |
# GENERA LOG DE ACCIONES | |
########################## | |
#PUNTO DE CONTROL | |
Write-Output "Quedan menos de 7 días, se envía correo" | |
Echo "$hora - Enviado correo a $usuariomodificado@tudominio.es. Su licencia caduca en $dias días" >> c:\Users\runzue\caducidadoutlook-$dia.log | |
} | |
else | |
{ | |
########################## | |
# GENERA LOG SIN ACCIONES | |
########################## | |
#PUNTO DE CONTROL | |
Write-Output "Quedan más de 7 días, no se envía correo" | |
Echo "$hora - No se envía correo. Su licencia caduca en más de 7 días" >> c:\Users\runzue\caducidadoutlook-$dia.log | |
} | |
# BORRAMOS TXT | |
Remove-Item c:\Users\runzue\caducidadoutlook.txt | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment