I wanted to expand on my previous script: powershell-to-list-all-users-and-when-their-password-expires, so that it would send the user an email if their password was going to expire soon. Additionally I wanted to send a summary to our IT staff of accounts that were going to expire soon.
Here is that script:
$maxdays=(Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.TotalDays $summarybody="Name `t ExpireDate `t DaysToExpire `n" (Get-ADUser -filter {(Description -notlike "IfYouWantToExclude*") -and (Enabled -eq "True") -and (PasswordNeverExpires -eq "False")} -properties *) | Sort-Object pwdLastSet | foreach-object { $lastset=Get-Date([System.DateTime]::FromFileTimeUtc($_.pwdLastSet)) $expires=$lastset.AddDays($maxdays).ToShortDateString() $daystoexpire=[math]::round((New-TimeSpan -Start $(Get-Date) -End $expires).TotalDays) $samname=$_.samaccountname $firstname=$_.GivenName if ($daystoexpire -le 3){ $ThereAreExpiring=$true $emailFrom = "[email protected]" $emailTo = "[email protected]" $subject = "$firstname, your password expires in $daystoexpire day(s)" $body = "$firstname, Your password expires in $daystoexpire day(s). Please press Ctrl + Alt + Del -> Change password" $smtpServer = "smtp.yourdomain.com" $smtp = new-object Net.Mail.SmtpClient($smtpServer) $smtp.Send($emailFrom, $emailTo, $subject, $body) $summarybody += "$samname `t $expires `t $daystoexpire `n" } } if ($ThereAreExpiring) { $emailFrom = "[email protected]" $emailTo = "[email protected]" $subject = "Expiring passwords" $body = $summarybody $smtpServer = "smtp.yourdomain.com" $smtp = new-object Net.Mail.SmtpClient($smtpServer) $smtp.Send($emailFrom, $emailTo, $subject, $body) }
Just what i am looking for. Thanks.
Hi Jeff, Thank you for all of your scripts. They have saved me a great amount of time and effort. I had a quick question on the password expire script. The output shows LastChanged date as 1/1/1601 and expire 2/12/1601. Is there something I need to change on this script for it to reflect the current year. Thanks for all your help. L
Thanks for sharing this useful script,
I have an also something to share related to this topic i.e. http://password-expiration-notification.blogspot.in/