################################################################################################################## # Настройте следующие переменные .... $log_date = Get-Date -format yyyy-M-d $smtpServer="mailserver.mail.com" $from = "email@mail.de" $mail_debug = "false" # Истинные = о / false = off $mail_debug_email = "email@mail.de" $mail_log = "false" # Истинные = о / false = off $mail_log_email = "email@mail.de" $logfile = "C:passwordexpirelog_ $ log_date.txt" ###################################################################################################################&л;/пролет> #Получить пользователей из AD, которые позволили Import-Module ActiveDirectory $ пользователей = Get-ADUser -filter * -свойства * |где {$_.Enabled -eq "True"} | где { $_.PasswordNeverExpires -eq $ ложной } | где { $_.passwordexpired -eq $ ложной } Set-Content -Value "Name;Адрес электронной почты;DAYSTOEXPIRE" -Путь $ файл_журнала # Написать первую строку для каждого ($Пользователь в $ пользователей) { $Имя = (Get-ADUser $ пользователю | для каждого { $_.Имя}) если ($mail_debug -eq &Quot;правда&Quot; ) { $EMAILADDRESS = $ mail_debug_email } # если ($mail_debug -eq &Quot;ложный&Quot; ) #{ # $EMAILADDRESS = $ user.emailaddress #} $passwordSetDate = (получить-ADUser -properties $ пользователей * | для каждого { $_.PasswordLastSet }) $PasswordPol = (Get-AduserResultantPasswordPolicy $ пользователю) # Проверьте Детальное Пароль если (($PassworldPol) -только $ нулевой) { $maxPasswordAge = ($PasswordPol).MaxPasswordAge } еще { $maxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge } $expireson = $ passwordsetdate + $maxPasswordAge $ Сегодня = (Get-Date) $DAYSTOEXPIRE = (New-TimeSpan -Начало $ сегодня -End $ Expireson).Days $subject="hybris domain password expiring" $тело =&Quot; Уважаемые $ имя, Ваш пароль домена истекает в $ DAYSTOEXPIRE дней. Для того, чтобы изменить свой пароль, Для получения дополнительной поддержки, пожалуйста, обратитесь в отдел ИТ. Пароль домена должен отвечать следующим требованиям: <ul> <в>Длина пароля должна быть не менее 8 персонажи</в> <в>последний 5 пароли не могут быть повторно использованы</в> <в>Пароль не должен содержать пользователь имени учетной записи или части пользователей полного имени, которое превышает два последовательных символов</в> <в>Пароль должен содержать символы трех из следующих четырех категорий:</в> </ul> <ul> <в>Заглавные буквы английского алфавита (А до Z)</в> <в>английские символы нижнего регистра (сквозной г)</в> <в>база 10 цифры (0 через 9)</в> <ul> <ul> <ul> <в>не-буквенные символы (например, !, $, #, %)</в> </ul> </ul> </ul> </ul> #если ($DAYSTOEXPIRE -lt $ expireindays) #{ # Отправить-MailMessage -smtpServer $ SMTPServer -из $ от -в $ EMAILADDRESS -subject $ субъекта -Боди $ тела -bodyasHTML -priority High # #} если ($daystoexpire -eq "14" ) { Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High Add-Content -Value "$name;$emailaddress_log;$DAYSTOEXPIRE" -Путь $ файл_журнала } если ($daystoexpire -eq "3") { Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High Add-Content -Value "$name;$emailaddress_log;$DAYSTOEXPIRE" -Путь $ файл_журнала } } если ($mail_log -eq "true" ){ Add-Content -Value "log send to $mail_log_email" -Путь $ файл_журнала $ Body_log = (Get-Content $ файл_журнала | из-строка ) Send-Mailmessage -smtpServer $smtpServer -from $from -to $mail_log_email -subject "LOG - домен пароль устареет" -тело $ body_log } Выход
почта истечения срока действия пароля
—
от автора