Comment rappeler aux utilisateurs de modifier leurs mots de passe avant qu'ils n'expirent


Nous ne partageons jamais vos données. Privacy Policy
Solution native Netwrix Auditor for Active Directory
Étapes
  1. Copiez, modifiez et sauvegardez le script suivant en utilisant l'ISE de PowerShell.

#requires -module ActiveDirectory

<#
.SYNOPSIS
Script will scan Active Directory for accounts with expiring passwords

.DESCRIPTION
Script will scan Active Directory for accounts with expiring passwords and will send customized email to users

.PARAMETER Domain
.PARAMETER specifies which domain search will be performed against

.PARAMETER Cred
The PS credential to use to query AD (if not using the logged in credential)

.PARAMETER SearchBase
The OU path to search for user accounts in

.PARAMETER PasswordExpirationThreshold
Specifies accounts where this value exceeded will be emailed

.PARAMETER Subject
Which subject shall be put into email

.PARAMETER From
Which address shall be used as a FROM field in Email

.PARAMETER EmailServerAddress
SMTP relay address

.PARAMETER FailoverEmail
Emails address where all errors will be sent to

.PARAMETER LogFilePath
The path to where the informational log file is generated by this script.
#>

[CmdletBinding()]
Param(
[string]$Domain = $env:USERDNSDOMAIN,
[PSCredential]$cred,
[string]$SearchBase,
[string]$UserSearchString = '*',
[int]$PasswordExpirationThreshold = 14,
[string]$Subject = "Password Expiration Notification",
[string]$From = "J.Carter@enterprise.com",
[string]$EmailServerAddress = "mail.enterprise.com",
[string]$FailoverEmail = "J.Carter@enterprise.com",
[string]$LogFilePath = 'D:\Temp\ServiceAccountExpirations.log'
)

begin {
function Write-Log($Message) {
$MyDateTime = Get-Date -Format 'MM-dd-yyyy H:mm:ss'
Add-Content -Path $LogFilePath -Value "$MyDateTime - $Message"
}
try {
$MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy -Server $Domain).MaxPasswordAge.Days
Write-Log -Message "The max password age for the $Domain domain is $MaxPasswordAge"
if ($PasswordExpirationThreshold -gt $MaxPasswordAge) {
throw "The value '$PasswordExpirationThreshold' specified as the password expiration threshold is greater than the max password age for the domain" }

[string]$EmailTemplate = @'
<html> <body> <font SIZE="6" COLOR="#ff0000"> <p ALIGN="CENTER" style='font-size:20.0pt;font-family:"Times New Roman";color:#CC0000;mso-bidi-font-weight: bold'>Password Expiration Notice</p> </font><font style='font-size:14.0pt;font-family:"Times New Roman";color:#1C1C1C;mso-bidi-font-weight:bold'> <p>Dear $FirstName $LastName,</p> <p>Your password in <U> $domain </U> domain will expire in $DaysBeforeExpiration days. Please change it as soon as possible to make sure your account does not get locked out. To change your password press CTRL+ALT+DEL and select "Change Password". </p> <p>Please review the guidelines below as they are necessary for successfully updating your password.</p> <p>PASSWORD MUST:</p> <dir> <p>Be at least 8 total characters</p> <p>Contain at least one uppercase character</p> <p>Contain at least one numeral</p> <p>Not be the same or similar to the last 5 used passwords</p> <p>Be used for at least 24 hours before changing again</p> </dir> <p></p> <p>If you enter an incorrect password 5 or more times, your account will be locked and you will need to contact the Help Desk for assistance. </p> </font><font SIZE="4" style='font-size:13.0pt;font-family:"Times New Roman";color:#CC0000'> <p ALIGN="CENTER">*** Please do not respond to this e-mail. <BR>Direct any questions or concerns regarding this issue to the IT Help Desk. <BR> For information on how to contact the Help Desk, please visit </font> <a HREF="http://helpdesk.enterprise.com"> <font SIZE="4" COLOR="#0000ff"><u> http://helpdesk.enterprise.com/ </u></font> </dir> </font></b> </body> </html>
'@
} catch {
Write-Log -Message $_.Exception.Message
exit
}
}
process {
try {
$GetAdUserParams = @{
'Filter' = { (Enabled -eq $True) -and (PasswordNeverExpires -eq $false) -and (samAccountName -like $UserSearchString)}
'Properties' = 'PasswordLastSet', 'PasswordExpired', 'PasswordNeverExpires','EmailAddress'
}
if ($SearchBase) {
$GetAdUserParams.SearchBase = $SearchBase
}
if ($Cred) {
$GetAdUserParams.Credential = $cred
}
$Today = Get-Date
$Users = Get-ADUser @GetAdUserParams | Where-Object { $_.PasswordLastSet -and !$_.PasswordExpired }
Write-Log -Message "Found '$($Users.Count)' total expirable AD user accounts"
$ExpiringUsers = [System.Collections.ArrayList]@()
foreach ($User in $Users) {
$UserPwdExpireDate = $User.PasswordLastSet.AddDays($MaxPasswordAge)
$DaysUntilExpire = ($UserPwdExpireDate - $Today).Days
$FirstName = $User.GivenName
$LastName = $User.Surname
if ($DaysUntilExpire -le $PasswordExpirationThreshold) {
Write-Log -Message "The user $($User.samAccountName)'s password will expire in $DaysUntilExpire days"
$EmailBody = $EmailTemplate.Replace('$FirstName', $FirstName).Replace('$LastName', $LastName).Replace('$DaysBeforeExpiration', $DaysUntilExpire).Replace('$domain', $Domain)
Send-MailMessage -To $User.EmailAddress -From $From -Subject $Subject -BodyAsHtml $EmailBody -SmtpServer $EmailServerAddress -Priority High -UseSsl
$ExpiringUsers.Add($User) | Out-Null
}
}
Write-Log -Message "'$($ExpiringUsers.Count)' accounts found with expiring passwords within $PasswordExpirationThreshold days"
} catch {
Write-Log -Message "$($_.Exception.Message) - $($_.InvocationInfo.ScriptLineNumber)"
}
}

  1. Automatisez l'exécution du script avec le Planificateur de Tâches
  1. Ouvrez l'avertisseur de l'Expiration de Mots de Passe de Netwrix Auditor →Sélectionnez votre domaine → Cliquez "Edit" →Cliquez "Enable password expiration alerting". → Cliquez “Save”.

 

Netwrix Auditor enverra automatiquement un mail de notification d'expiration du mot de passe d'Active Directory à chaque propriétaire de compte dont le mot de passe est sur le point d'expirer.

Rappelez aux utilisateurs de changer leurs mots de passe pour maximiser la productivité des utilisateurs

De nombreuses meilleures pratiques nécessitent un changement régulier de mot de passe pour renforcer la sécurité des données de l'entreprise et des systèmes critiques contre les menaces internes et externes. Mais si les utilisateurs ignorent les notifications de changer leurs mots de passe, ou ne les obtiennent pas du tout - par exemple, s'ils travaillent à distance - ils doivent s'attendre à ce que les administrateurs du service d'assistance réinitialisent leurs mots de passe expirés, ce qui nuit à la productivité de tout le monde. Pour minimiser la charge de travail du service d'assistance tout en maintenant une politique de sécurité par mot de passe, les professionnels de l'informatique ont besoin d'un moyen plus efficace pour informer leurs utilisateurs de l'expiration de leur mot de passe.

Netwrix Auditor for Active Directory permet aux professionnels de l'informatique d'obtenir une visibilité complète sur ce qui se passe dans votre Active Directory et votre stratégie de groupe. Il peut également envoyer des courriels de notification qui rappellent aux utilisateurs de changer leurs mots de passe avant leur expiration ; les administrateurs informatiques peuvent même personnaliser les alertes pour spécifier le nombre exact de jours restant avant l'expiration du mot de passe. De plus, les administrateurs informatiques reçoivent des rapports sommaires indiquant les mots de passe des comptes d'utilisateur qui sont sur le point d'expirer. Ces alertes et rapports permettent aux professionnels de l'informatique d'améliorer la sécurité sans sacrifier la productivité des utilisateurs ou du service d'assistance.