Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function Send-PasswordExpiryReminderEmail {
- param (
- [string]$ToAddress
- )
- $FromAddress = '=== ENTER FROM EMAIL HERE ==='
- $SmtpServer = 'smtp.office365.com'
- $SmtpPort = '587'
- $Attachments = '==ENTER Attachment Here==='
- $UserName = '== ENTER USERNAME HERE'
- $Password = ConvertTo-SecureString "==== ENTER PASSWORD =====" -AsPlainText -Force
- $smtpCred = New-Object System.Management.Automation.PSCredential($username, $password)
- $mailParam = @{
- To = $ToAddress
- From = $FromAddress
- Subject = 'Mail Migration Test'
- Body = 'Your Teranet Password will expire in 5 days. `
- Please read the inlcuded document on how to reset your password. `
- This is an unmonitored email address. Please do not reply.'
- SmtpServer = $SmtpServer
- Port = $SmtpPort
- Credential = $smtpCred
- Attachments = $Attachments
- }
- Send-MailMessage @mailParam -UseSsl
- }
- $SearchBase = 'OU=Users,OU=Winnipeg,OU=MB,OU=TPR,DC=tprmb,DC=ca'
- $users = Get-ADUser -SearchBase $SearchBase -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed",mail |
- Select-Object -Property "SamAccountName",Mail, @{Name="PwdExpiryDate"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
- $TodaysDate = get-date
- foreach ($user in $users){
- if ($null -ne $user.mail){
- $ts = New-TimeSpan -start $TodaysDate -end $user.PwdExpiryDate
- $DaysUntilExpiry = $ts.Days
- if($DaysUntilExpiry -eq 5){
- write-host $user.Mail "-" $DaysUntilExpiry
- Send-PasswordExpiryReminderEmail -ToAddress $user.Mail
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement