Wednesday, August 28, 2013

Passwortablaufwarnung in Windows 7 und Windows 8

Hallo zusammen.

Wenn sich ein Domänenbenutzer anmeldet, erhält er eine bestimmte Zeit vor Ablauf des Kennworts einen Warnhinweis dazu. In XP und 2003 war der unübersehbar, da direkt in den Anmeldedialog integriert. In Windows 7 und neuer ist es nur noch eine Taskbar Notification, und die übersieht der Benutzer gerne.

Kopiere den folgenden VBS-Code in eine Datei Deiner Wahl und führe diese per Gruppenrichtlinie aus - nicht als Anmeldeskript! Besser eignet sich "Diese Programme bei der Benutzeranmeldung ausführen":
Benutzerkonfiguration
Computerkonfiguration

Die zwei Werte für WarningAge und PWExpiry müsst Ihr natürlich Euren Bedürfnissen anpassen. Den Wert für PWExpiry hätte ich auch aus dem AD (Domain Policy oder FGPA) ermitteln können, aber dann wird es wieder umständlich :-)

Im Web findet man dazu die eine oder andere kostenpflichtige oder freie Lösung, aber das hier ist auf jeden Fall für diesen einen Zweck die kürzeste...


Const WarningAge = 25   'Wie alt ist das Kennwort, bevor gewarnt wird?
Const PWExpiry   = 30   'Wie lange ist das Kennwort maximal gültig?

Const MsgTitle = "Kennwortwechsel"
Const MsgPart1 = "Ihr aktuelles Kennwort läuft in "
Const MsgPart2 = " Tagen ab. Bitte denken Sie daran, Ihr Kennwort rechtzeitig zu ändern, spätestens am "
Const MsgPart3 = "."

Dim oEnv : Set oEnv = CreateObject( "WScript.Shell" ).Environment( "PROCESS" )

Dim oADS : Set oADS = CreateObject( "ADSystemInfo" )

Dim objUser, strPWDate, intPWAge

strPWDate = GetObject( "LDAP://" & oEnv( "USERDNSDOMAIN" ) & "/" &  oADS.UserName ).PasswordLastChanged
intPWAge = DateDiff( "d", strPWDate, Now )
If intPWAge > WarningAge And intPWAge <= PWExpiry Then
    MsgBox MsgPart1 & PWExpiry - intPWAge & MsgPart2 & strPWDate + PWExpiry & MsgPart3, vbOk + vbInformation, MsgTitle
End If

2 comments:

  1. Hallo,

    danke für den Beitrag. Kannst du kurz näher darauf eingehen, wo die Vor/Nachteile liegen, wenn man "Diese Programme bei der Benutzeranmeldung ausführen" nutzt statt es als Logon/Shutdown-Skript zu konfigurieren? Bin neugierig, da ich ersteres bisher kaum eingesetzt habe.

    Danke und Gruß,

    ReplyDelete
    Replies
    1. Hallo Kurt.
      Logonskripts kannst Du asynchron (auf dem Desktop) oder synchron (vor dem Desktop, also vor explorer.exe) starten. "Diese Programme bei der Benutzeranmeldung ausführen" entspricht ersterem (asynchron). Wir haben die Logonskripts auf "synchron" konfiguriert, dort ordnen wir Netzlaufwerke zu (sost nichts). Damit sind die bereits verbunden bzw. getrennt, wenn der Desktop gestartet ist, und der Explorer oder irgendwelche sonstigen Anwendungen kommen uns hier nicht in die Quere. Wenn Logonskripts synchron laufen, kann man übrigens keine Prozesse detachen, die dann weiterlaufen würden - Winlogon beendet die, wenn das übergeordnete Skript beendet wird.

      Da wir aber auch Dinge haben, die asynchron auf dem Desktop laufen sollen (z.B. Konfig-Skripts für Firefox oder Lotus Notes oder OpenOffice), nutzen wir dafür dann zweiteres. Hoffe, das klärt die Frage :-)

      mfg Martin

      Delete