Scripts PowerShell pour avertir les utilisateurs du domaine Active Directory de l'expiration de leur mot de passe

De nombreuses organisations ont des stratégies qui obligent les utilisateurs à changer périodiquement leurs mots de passe. Si le mot de passe n'est pas modifié avant la date d'expiration, les utilisateurs seront obligés de définir un nouveau mot de passe lorsqu'ils se connecteront pour la première fois après son expiration.

Bien qu'il s'agisse d'un inconvénient mineur pour les utilisateurs qui se trouvent dans le réseau de l'entreprise, les utilisateurs distants seront bloqués. En effet, les tâches sensibles telles que la réinitialisation des mots de passe doivent être effectuées uniquement à l'intérieur du réseau d'entreprise hébergeant Active Directory (AD). Contacter le service informatique pour réinitialiser le mot de passe ne sert à rien, car l'appareil doit se trouver physiquement dans l'intranet de l'entreprise pour être reconnu.

Les administrateurs peuvent utiliser des scripts PowerShell pour obtenir les dates d'expiration des mots de passe des utilisateurs AD et leur envoyer un e-mail leur demandant de changer leur mot de passe quelques jours à l'avance. Comme les outils natifs de l'interface graphique d'Active Directory n'offrent pas cette fonctionnalité, il faut utiliser des scripts PowerShell pour envoyer des e-mails d'expiration de mot de passe.

ManageEngine ADSelfService Plus, une solution de sécurité d'identité, prend également en charge l'envoi de notifications d'expiration de mot de passe aux utilisateurs AD.

Le script PowerShell fourni ici de notification d'expiration de mot de passe envoie des rappels par e-mail aux utilisateurs Active Directory concernant l'expiration de leur mot de passe.

Vous trouverez ci-dessous une comparaison entre l'utilisation de scripts PowerShell pour envoyer des e-mails d'expiration de mot de passe et l'utilisation d'ADSelfService Plus.

PowerShell

Utilisez le script PowerShell suivant pour vérifier les dates d'expiration des mots de passe des utilisateurs et envoyer un e-mail de notification d'expiration sept jours à l'avance :
#Import AD Module
 Import-Module ActiveDirectory
 
#Create warning dates for future password expiration
$SevenDayWarnDate = (get-date).adddays(7).ToLongDateString()

#Email Variables
$MailSender = " Password AutoBot <emailaddress@somecompany.com>"
$Subject = 'FYI - Your account password will expire soon'
$EmailStub1 = 'I am a bot and performed this action automatically. I am here to inform you that the password for'
$EmailStub2 = 'will expire in'
$EmailStub3 = 'days on'
$EmailStub4 = '. Please contact the help desk if you need assistance changing your password. DO NOT REPLY TO THIS EMAIL.'
$SMTPServer = 'smtp.somecompany.com'
 
#Find accounts that are enabled and have expiring passwords
$users = Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and PasswordLastSet -gt 0 } `
 -Properties "Name", "EmailAddress", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Name", "EmailAddress", `
 @{Name = "PasswordExpiry"; Expression = {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed").tolongdatestring() }}
 
#check password expiration date and send email on match
foreach ($user in $users) {
     if ($user.PasswordExpiry -eq $SevenDayWarnDate) {
         $days = 7
         $EmailBody = $EmailStub1, $user.name, $EmailStub2, $days, $EmailStub3, $SevenDayWarnDate, $EmailStub4 -join ' '
 
         Send-MailMessage -To $user.EmailAddress -From $MailSender -SmtpServer $SMTPServer -Subject $Subject -Body $EmailBody
     }
    else {}
 }
 Copied
Cliquez pour copier tout le script
PowerShell scripts to notify Active Directory domain users about password expiration

ADSelfService Plus

  • Ouvrez le portail d'administration d’ADSelfService Plus.
  • Allez dans Configuration > Notification d'expiration du mot de passe. Dans la Notification d'expiration de mot de passe/compte qui s'ouvre, cliquez sur Ajouter une nouvelle notification.
  • Utilisez l’option Sélectionner le domaine pour spécifier le domaine dont les utilisateurs doivent recevoir les notifications. Fournissez un Nom du planificateur.
  • Définissez le Type de notification à Notification d'expiration du mot de passe. Utilisez la fonction Notifier via pour spécifier le moyen de notification (courrier, SMS ou notification push).
  • Sélectionnez la Fréquence de notification (quotidienne, hebdomadaire ou à des jours spécifiques) et utilisez l'option Heure de planification pour spécifier la date et l'heure de l'envoi de la notification. Par exemple, si vous souhaitez avertir les utilisateurs sept jours avant l'expiration du mot de passe, sélectionnez l'option À des jours spécifiques puis cliquez sur Heure de planification et indiquez « 7 » dans le champ prévu à cet effet.
  • Modifiez le Sujet et le Message de la notification, si nécessaire.
  • Cliquez sur le bouton Avancé et dans la fenêtre contextuelle qui s'ouvre, utilisez les options permettant d'exclure les utilisateurs désactivés ou les utilisateurs de cartes à puce de la réception des notifications d'expiration, et d'envoyer des messages d'état de livraison des notifications aux responsables des utilisateurs ou à toute personne disposant d'un compte administrateur si nécessaire.
  • Cliquez sur Enregistrer.
PowerShell scripts to notify Active Directory domain users about password expiration
PowerShell scripts to notify Active Directory domain users about password expiration
Avantages de la configuration des notifications d'expiration de mot de passe avec ADSelfService Plus :
  • Configuration rapide :

    Avec ADSelfService Plus, il vous suffit de quelques clics pour configurer des rappels d'expiration de mot de passe pour les utilisateurs du domaine. Les scripts PowerShell doivent être créés, débogués et exécutés.

  • Notifiez les utilisateurs par courrier, SMS et notification push :

    Avec ADSelfService Plus, vous pouvez choisir entre l'envoi de courrier, de SMS et de notifications push en un seul clic. Dans l'exemple ci-dessus, PowerShell est utilisé pour fournir des notifications par e-mail pour les expirations de mot de passe. PowerShell peut également être utilisé pour envoyer des SMS et des notifications push, mais cela nécessite la création d'un script extrêmement compliqué.

  • Notifiez les gestionnaires des utilisateurs :

    Dans ADSelfService Plus, vous pouvez choisir d'exclure les utilisateurs désactivés et les utilisateurs de cartes à puce de la réception des notifications. Des e-mails de notification de l'état de la livraison peuvent également être envoyés aux responsables des utilisateurs et aux administrateurs de l'organisation.

  • Configuration basée sur l'interface graphique :

    Une fois qu'une notification d'expiration de mot de passe a été configuré dans ADSelfService Plus, elle peut être éditée facilement en sélectionnant la notification à éditer et en changeant les valeurs des paramètres comme requis. Avec PowerShell, en apportant des modifications au script de notification, des fautes de frappe et autres erreurs humaines sont inévitables.

  • Notifications par e-mail personnalisables et très efficaces :

    Rédigez des notifications par e-mail en HTML pour attirer l'attention des utilisateurs ou envoyez des messages différents selon les jours précédant l'expiration du mot de passe. PowerShell permet d'envoyer des e-mails au format HTML, mais le processus peut être assez long.

Notifier les utilisateurs d'Active Directory de l'expiration de leur mot de passe.

  Obtenez un essai gratuit de 30 jours

Produits connexes