ważności hasła poczty

##################################################################################################################
# Należy skonfigurować następujące zmienne ....
$log_date =  Get-Date -format yyyy-M-d
$smtpServer="mailserver.mail.com"
$from = "email@mail.de"
$mail_debug = "false" # True = on / false = off
$mail_debug_email = "email@mail.de"
$mail_log = "false" # True = on / false = off
$mail_log_email = "email@mail.de"
$logfile = "C:passwordexpirelog_ $ log_date.txt"
###################################################################################################################</przęsło>

#Uzyskaj użytkowników z AD, którzy są włączone
Import-Module ActiveDirectory
$ users = get-aduser -filter * -nieruchomości * |gdzie {$_.Enabled -eq "True"} | gdzie { $_.PasswordNeverExpires eq $ false } | gdzie { $_.passwordexpired eq $ false }

Set-Content -Value "Name;EMAILADDRESS;DAYSTOEXPIRE"  -Ścieżka $ logfile # Napisz pierwszą linię

dla każdego ($łatwy w $ użytkowników)
{
$name = (Get-ADUser $ użytkownik | dla każdego { $_.Nazwa})
gdyby ($mail_debug -eq &Quot;prawdziwe&Quot; )
{
$EMAILADDRESS = $ mail_debug_email
}
# gdyby ($mail_debug -eq &Quot;fałszywy&Quot; )
#{
# $EMAILADDRESS = $ user.emailaddress
#}

$passwordSetDate = (get-aduser -properties $ użytkowników * | dla każdego { $_.PasswordLastSet })
$PasswordPol = (Get-AduserResultantPasswordPolicy $ użytkownik)
# Sprawdź, drobnoziarnista Hasło
gdyby (($PassworldPol) -ne $ zerowy)
{
$maxPasswordAge = ($PasswordPol).MaxPasswordAge
}

jeszcze
{
$maxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
}

$expireson = $ passwordsetdate + $maxPasswordAge
$ Dzisiaj = (get-data)
$DAYSTOEXPIRE = (New-TimeSpan -Start $ dzisiaj -End $ Expireson).Days
$subject="hybris domain password expiring"
$body =&Quot;

Drogi nazwa $,

Twoje hasło domeny wygasa w $ dni DAYSTOEXPIRE. Aby zmienić swoje hasło,

Dla dodatkowego wsparcia prosimy o kontakt z działem IT.

Hasło domeny musi spełniać następujące wymagania:
<ul>
	<w>Hasło musi mieć długość co najmniej 8 postacie</w>
	<w>ostatni 5 Hasła są nie mogą być ponownie wykorzystane</w>
	<w>Hasło nie może zawierać nazwy konta użytkowników lub części pełnej nazwy użytkowników, które przekraczają dwa kolejne znaki</w>
	<w>Hasło musi zawierać znaki z trzech spośród czterech następujących kategoriach:</w>
</ul>
<ul>
	<w>angielski wielkie litery (A do Z)</w>
	<w>English małe litery (A do Z)</w>
	<w>baza 10 cyfry (0 przez 9)</w>
<ul>
<ul>
<ul>
	<w>znaki spoza alfabetu (na przykład, !, $, #, %)</w>
</ul>
</ul>
</ul>
</ul>

#gdyby ($DAYSTOEXPIRE -lt $ expireindays)
#{
# Wyślij-MailMessage -smtpServer $ SMTPServer -z $ od -to $ EMAILADDRESS -subject $ zastrzeżeniem -Body $ ciała -bodyasHTML -priority wysoka
#
#}
gdyby ($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" -Ścieżka $ logfile
}
gdyby ($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" -Ścieżka $ logfile
}

}
gdyby ($mail_log -eq "true" ){
Add-Content -Value "log send to $mail_log_email"  -Ścieżka $ logfile
$ Body_log = (Get-Content $ logfile | out-strunowy )
Send-Mailmessage -smtpServer $smtpServer -from $from -to $mail_log_email -subject "LOG - hasło domeny Wygasa" -Ciało $ body_log
}
wyjście