Comment rappeler aux utilisateurs de changer leurs mots de passe avant leur expiration
Solution native vs. Netwrix Auditor for Active Directory
Netwrix Auditor for Active Directory
- Exécutez Netwrix Password Expiration Notifier → Sélectionnez votre domaine → Cliquez sur « Modifier » → Cliquez sur « Activer l'alerte d'expiration de mot de passe » → Cliquez sur « Enregistrer ».
Netwrix Auditor enverra automatiquement un e-mail de notification d'expiration de mot de passe Active Directory à chaque propriétaire de compte dont le mot de passe est sur le point d'expirer.
Audit Natif
- Copiez, modifiez et enregistrez le script suivant en utilisant PowerShell ISE :
#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)"
}
}
- Automatisez l'exécution de scripts avec Task Scheduler.
En savoir plus sur Netwrix Auditor for Active Directory
Rappelez aux utilisateurs de changer leurs mots de passe pour maximiser la productivité des utilisateurs et réduire la charge de travail du service d'assistance
De nombreuses bonnes pratiques exigent un changement régulier de mot de passe pour renforcer la sécurité des données d'entreprise et des systèmes critiques contre les menaces internes et externes. Mais si les utilisateurs ignorent les notifications de changement de mot de passe, ou ne les reçoivent pas du tout – par exemple, s'ils travaillent à distance — ils doivent attendre que les administrateurs de l'assistance technique réinitialisent leurs mots de passe expirés, ce qui nuit à la productivité de tous. Pour minimiser la charge de travail de l'assistance technique tout en maintenant une politique de sécurité de mot de passe forte, les professionnels de l'informatique ont besoin d'une manière plus efficace de notifier leurs utilisateurs de l'expiration du 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 Active Directory et la stratégie de groupe. Il peut également envoyer des e-mails 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 restants avant l'expiration du mot de passe. De plus, les administrateurs IT reçoivent des rapports récapitulatifs indiquant quels comptes d'utilisateurs ont des mots de passe sur le point d'expirer. Ces alertes et rapports permettent aux professionnels de l'informatique de renforcer la sécurité sans sacrifier la productivité des utilisateurs ou du helpdesk.
Partager sur