Envoi de mail mot de passe windows expiré
Bonjour,
Voici un script pour envoyer un mail aux utilisateurs de votre Active Directory lorsque le mot de passe arrive à expiration.
Je précise qu'il faut avoir renseigné l'e-mail de l'utilisateur dans le profil de celui-ci.
Vous pouvez faire une tâche planifié pour qu'il tourne chaque jour.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| $ExpireDays = 7
Import-Module ActiveDirectory
$AllUsers = get-aduser -filter * -properties * | Where-Object {$_.Enabled -eq "True"} | Where-Object { $_.PasswordNeverExpires -eq $false } | Where-Object { $_.passwordexpired -eq $false }
foreach ($User in $AllUsers)
{
$Name = (Get-ADUser $User | ForEach-Object { $_.Name})
$Email = $User.emailaddress
$PasswdSetDate = (get-aduser $User -properties * | ForEach-Object { $_.PasswordLastSet })
$MaxPasswdAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
$ExpireDate = $PasswdSetDate + $MaxPasswdAge
$Today = (get-date)
$DaysToExpire = (New-TimeSpan -Start $Today -End $ExpireDate).Days
if ( $(($DaysToExpire -lt $ExpireDays)) )
{
$EmailSubject="Expiration du mot de passe windows dans $DaystoExpire jours"
$Message="
Bonjour $Name,
<p> Votre mot de passe de session windows va expirer dans $DaysToExpire jours.<br />
Pour le changer, il vous suffit d appuyer sur CTRL+ALT+Del et clic sur changer le mot de passe. <br />
<p><B>Le mot de passe doit:</B> </p>
Mettez les caractéristiques de votre AD
<p>Si vous ne changez pas votre mot de passe en $DaysToExpire jours, tous les lecteurs reseaux seront coupes et certaines applications pourraient ne plus fonctionner. <br /></p>
<p>Tant que le mot de passe ne sera pas modifie, vous recevrez ce message tous les jours. <br /></p>
<p>Si vous avez le moindre probleme, merci de contacter l'équipe Infra) ! <br /></p>
Cordialement<br />
</p>"
$smtp = "votreserveursmtp"
$to = "$Email"
$from = "inserervotremail"
$subject = "$EmailSubject"
$body = "$Message"
#On envoie le mail let's go > Send-MailMessage
send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml
}
} |
Désolé si quelqu'un l'a déjà posté, je suis débutant, j'ai galéré avec un code trouvé sur internet .. je suis donc content de le partager.
Bonne journée à vous et bon courage !