124909
Goto Top

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 ?


  1. Abfrage
$adUsers = Get-ADUser -Filter * -Searchbase $searchbase -Properties * | Select-Object SamAccountName, PasswordLastSet

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 face-smile

Content-Key: 287705

Url: https://administrator.de/contentid/287705

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 122990
Solution 122990 Nov 06, 2015 updated at 12:29:49 (UTC)
Goto Top
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.
$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
Mitglied: 124909
124909 Nov 06, 2015 at 12:29:45 (UTC)
Goto Top
Hey, Danke für die schnelle und gute Hilfe!

Vor und Nachname und PasswordLastSet sind bei uns immer gesetzt deswegen kein Filter. Nichtsdestotrotz funktioniert es jetzt, nach ein bisschen ummodeln. Die bestimmung der Variable $rest hat mir da sehr geholfen

Vielen Dank!