почта истечения срока действия пароля

от автора

##################################################################################################################
# Настройте следующие переменные ....
$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
}
Выход