J3qx

information archive

noticy-expiry-password-1.8.ps1

Posted by j3qx на Ноябрь 26, 2016

#Add the Quest PowerShell snapin
Add-PsSnapIn Quest.ActiveRoles.ADManagement -ErrorAction SilentlyContinue
Get-QADUser -SizeLimit 0 -enable| Select-Object samAccountName,mail,PasswordStatus |
Where-Object {$_.PasswordStatus -ne «Password never expires» -and $_.PasswordStatus -ne «Expired» -and $_.PasswordStatus -ne «User must change password at next logon.» -and $_.mail -ne $null} |
ForEach-Object {
$today = Get-Date
$logdate = Get-Date -format yyyyMMdd
$samaccountname = $_.samAccountName
$mail = $_.mail
$passwordstatus = $_.PasswordStatus
$passwordexpiry = $passwordstatus.Replace(«Expires at: «,»»)
$passwordexpirydate = Get-Date $passwordexpiry
$daystoexpiry = ($passwordexpirydate — $today).Days
$smtpserver = «10.10.37.25»
#$attachment = «C:\script\a1.docx»
$emailFrom = «noreply@noreply.example.ru»
$body = «Просьба произвести плановое изменение пароля для вашей учетной записи $samaccountname. Он истекает $PasswordStatus В противном случае вы потеряете доступ к сети example. Пользователи других систем (не Windows) могут изменить пароль, зайдя по ссылке https://pwd.example.ru Если вы не можете самостоятельно поменять пароль, обратитесь на hd@example.ru.`n`n»
$body += «Hello. Please, change your password for you account $samaccountname, because its expired on $PasswordStatus Otherwise you will lose your access to the network & services of example company. Users of not Windows systems (like Mac OS, *nix, and other) go to url https://pwd.example.ru If you are unable to change your password, please contact hd@example.ru
#кодирование в UTF для поддержки русского текста
$encoding = [System.Text.Encoding]::UTF8
#определяем за сколько дней предупреждать
if ($daystoexpiry -lt 7 ) {
# $emailTo = «$mail»
$emailTo = «$mail»
$subject = «Your Network password will expire in $daystoexpiry day(s) please change your password.»
Send-MailMessage -To $emailTo -From $emailFrom -Subject $subject -Body $body -SmtpServer $smtpserver -Encoding $encoding
Write-Host «Email was sent to $mail on $today»
Add-Content C:\temp\maillog$logdate.txt «Email was sent to Name:$samAccountName — email:$mail. Password status — $PasswordStatus on $today»
}
}
Send-MailMessage -To » operational.admin@example.ru» -From «noreply@noreply.example.ru» -Subject «Password change log for $today» -Body «This is the log from $today» -Attachments «C:\temp\maillog$logdate.txt» -SmtpServer $smtpserver
Write-Host «Email was sent to operations administrators on $today»

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: