Kennwort Ablauf Mail

##################################################################################################################
# Bitte Konfigurieren Sie die folgenden Variablen ....
$log_date =  Get-Date -format yyyy-M-d
$smtpServer="mailserver.mail.com"
$from = "email@mail.de"
$mail_debug = "false" # true = auf / false = off
$mail_debug_email = "email@mail.de"
$mail_log = "false" # true = auf / false = off
$mail_log_email = "email@mail.de"
$logfile = "C:passwordexpirelog_ $ log_date.txt"
###################################################################################################################</Spanne>

#Holen Sie Benutzer aus AD, die aktiviert sind
Import-Module Activedirectory
$ users = get-ADUser -filter * -Eigenschaften * |woher {$_.Enabled -eq "True"} | woher { $_.PasswordNeverExpires -eq $ false } | woher { $_.passwordexpired -eq $ false }

Set-Content -Value "Name;E-Mail-Addresse;Daystoexpire"  -Pfad $ Logfile # Schreiben Sie erste Zeile

für jede ($Benutzer in $ users)
{
$name = (Get-ADUser $ user | für jede { $_.Name})
ob ($mail_debug -eq "wahr" )
{
$E-Mailadresse = $ mail_debug_email
}
# ob ($mail_debug -eq "falsch" )
#{
# $E-Mailadresse = $ user.emailaddress
#}

$passwordSetDate = (get-ADUser $ user -properties * | für jede { $_.PasswordLastSet })
$PasswordPol = (Get-AduserResultantPasswordPolicy $ user)
# Überprüfen Sie für Engmaschiges Passwort
ob (($PassworldPol) -ne $ null)
{
$MaxPasswordAge = ($PasswordPol).MaxPasswordAge
}

sonst
{
$MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
}

$expireson = $ passwordsetdate + $MaxPasswordAge
$ Heute = (Verabredung bekommen)
$daystoexpire = (New-Timespan -Start $ heute -Ende $ Expireson).Days
$subject="hybris domain password expiring"
$body ="

Lieber $ name,

Ihre Domain-Passwort ist fällig $ daystoexpire Tagen ablaufen. So ändern Sie Ihr Passwort,

Für zusätzliche Unterstützung wenden Sie sich bitte die IT-Abteilung.

Die Domain Passwort muss die folgenden Anforderungen erfüllen:
<die>
	<in>Kennwortlänge muss mindestens sein 8 Figuren</in>
	<in>das Letzte 5 Passwörter können nicht wiederverwendet werden</in>
	<in>Passwort darf nicht enthalten die Benutzer-Accountnamen oder Teile der Benutzer vollständigen Namen, die zwei aufeinander folgende Zeichen nicht überschreiten</in>
	<in>Kennwort müssen Zeichen aus drei der folgenden vier Kategorien enthalten:</in>
</die>
<die>
	<in>Englische Großbuchstaben (A bis Z)</in>
	<in>Englisch Kleinbuchstaben (a bis z)</in>
	<in>Base 10 Ziffern (0 durch 9)</in>
<die>
<die>
<die>
	<in>Nicht-alphabetische Zeichen (beispielsweise, !, $, #, %)</in>
</die>
</die>
</die>
</die>

#ob ($daystoexpire -lt $ expireindays)
#{
# Verschicken Mailmessage -smtpServer $ SmtpServer -von $ von -bis $ Emailadresse -subject $ subject -body $ body -bodyasHTML -priority Hoch
#
#}
ob ($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" -Pfad $ Logfile
}
ob ($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" -Pfad $ Logfile
}

}
ob ($mail_log -eq "true" ){
Add-Content -Value "log send to $mail_log_email"  -Pfad $ Logfile
$ Body_log = (Get-Content $ Logfile | out-string )
Send-Mailmessage -smtpServer $smtpServer -from $from -to $mail_log_email -subject "LOG - Domain Passwort Ablaufen" -Körper $ body_log
}
Ausfahrt