################################################################################################################## # Bitte Konfigurieren Sie die folgenden Variablen .... $log_date = Get-Date -format yyyy-M-d $smtpServer="mailserver.mail.com" $from = "[email protected]" $mail_debug = "false" # true = auf / false = off $mail_debug_email = "[email protected]" $mail_log = "false" # true = auf / false = off $mail_log_email = "[email protected]" $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