
124909
06.11.2015, aktualisiert um 13:29:49 Uhr
Powershell: Passwordreminder Mail - Overflow-Fehler- Foreach
Hallo,
Ich möchte ein Skript schreiben, welches den User erinnert, dass er sein Passwort ändern soll wenn es in 14, 7 und 1 Tag abläuft.(Policy 90 Tage)
Nur leider scheint irgendein Fehler in meiner Foreach-Schleife zu steken den ich nich finde. Es kommt zu einem Overflow-Fehler könnt Ihr mir helfen ?
foreach ($adUser in $adUsers){
$PasswordDatum = $adUsers.PasswordLastSet
$differenz =$null
$differenz =(($todayDate) - ($adusers.PasswordLastSet)).days
if ($differenz -eq "76")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft in 7 Tagen ab!" -Body $body -Encoding UTF8}
elseif ($differenz -eq "83")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft in 7 Tagen ab!" -Body $body -Encoding UTF8}
elseif ($differenz -eq "89")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft morgen ab!" -Body $body -Encoding UTF8}
}
Vielen Dank und schönes Wochenende schonmal
Ich möchte ein Skript schreiben, welches den User erinnert, dass er sein Passwort ändern soll wenn es in 14, 7 und 1 Tag abläuft.(Policy 90 Tage)
Nur leider scheint irgendein Fehler in meiner Foreach-Schleife zu steken den ich nich finde. Es kommt zu einem Overflow-Fehler könnt Ihr mir helfen ?
- Abfrage
foreach ($adUser in $adUsers){
$PasswordDatum = $adUsers.PasswordLastSet
$differenz =$null
$differenz =(($todayDate) - ($adusers.PasswordLastSet)).days
if ($differenz -eq "76")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft in 7 Tagen ab!" -Body $body -Encoding UTF8}
elseif ($differenz -eq "83")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft in 7 Tagen ab!" -Body $body -Encoding UTF8}
elseif ($differenz -eq "89")
{Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft morgen ab!" -Body $body -Encoding UTF8}
}
Vielen Dank und schönes Wochenende schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287705
Url: https://administrator.de/forum/powershell-passwordreminder-mail-overflow-fehler-foreach-287705.html
Ausgedruckt am: 30.04.2025 um 17:04 Uhr
2 Kommentare
Neuester Kommentar

Moin,
nun ja da stimmt so manches nicht, da du ebenfalls nicht die User ausfillterst bei denen kein PasswordDatum gesetzt ist ! Außerdem solltest du spezielle AD-User ausfiltern, ich mache das hier so: Nur User mit Vor- und Nachnamen werden in die Liste mit aufgenommen, das musst du aber nach deinen Ansprüchen anpassen.
Gruß grexit
nun ja da stimmt so manches nicht, da du ebenfalls nicht die User ausfillterst bei denen kein PasswordDatum gesetzt ist ! Außerdem solltest du spezielle AD-User ausfiltern, ich mache das hier so: Nur User mit Vor- und Nachnamen werden in die Liste mit aufgenommen, das musst du aber nach deinen Ansprüchen anpassen.
$maxPassAge = 90
get-AdUser -Filter * -Properties PasswordLastSet | ?{$_.Surname -ne $null -and $_.GivenName -ne $null -and $_.PasswordLastSet -ne $null} | %{
$rest = $maxPassAge - ((get-date) - $_.PasswordLastSet).Days
if($rest -match '^(14|7|1)$'){
write-host "Passwort von '$($_.SamAccountname)' läuft ab in $rest Tag(en)"
Send-MailMessage -to $email -from $absender -Subject "Ihr Passwort laeuft in $rest Tag(en) ab!" -Body $body -Encoding UTF8
}
}
Gruß grexit