none
Frage zum PS-Script: Info-Mail an User, wenn Passwort abläuft! RRS feed

  • Frage

  • Hallo,

    ich habe mal ne Frage zu diesem PS-Script. Habe dieses im Internet gefunden, und es versendet eine Email an den Anwender, um diesen zu informieren, dass das Kennwort abläuft. Funktioniert auch sehr gut, allerdings würde ich es gerne so haben, dass man noch eine gewisse Logik dahinter hat.

    Es soll das erste Mal informieren, wenn das Kennwort noch 21 Tage gültig ist. Das zweite mal soll informiert werden, wenn es noch 14 Tage gültig ist. Und die letzten 7 Tage soll es täglich informieren.

    Gibt es zusätzlich noch die Möglichkeit, in der Email einen Link zu hinterlegen, der dann das Passwort-Ändern-Fenster öffnet?

    Bin in Powershell nicht so bewandert, vielleicht könnt ihr mir helfen?

     

    Get-ADUser User.name -properties PasswordLastSet,EmailAddress,GivenName  |foreach {
     
       $PasswordSetDate=$_.PasswordLastSet
       $maxPasswordAgeTimeSpan = $null
       $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
     
     
       $today=get-date
       $ExpiryDate=$passwordSetDate + $maxPasswordAgeTimeSpan
      
       $daysleft=$ExpiryDate-$today
     
     
     
     
       $display=$daysleft.days
       $UserName=$_.GivenName
     
    if ($display -lt 7 -and $display -gt 0){

    $MyVariable = @"
    "  Dear $UserName
     
     Your password will expire in $display days.If you are not going to change it you will not be able to connect to Domain network.
     
    If you are at Domain follow the steps below to change your password:
    - Press CTRL+ALT+DEL
    - On the screen that came choose "Change password"
    - Type in your old password and then type the new one (be advised you cannot use one of the previously used passwords)
    - After the change is complete you will be prompted with information that passwor has been changed
     
    If you are using VPN:
    - Connect your laptop to internet
    - On the logon screen to windows connect to CISCO VPN prior to login
    - When you will receive successfull connection information login
    - At this moment you will be prompted to change your password
     
     
     

    With kind Regards
    IT Department
     
     
     
    *** This is automatically generated email - please do not reply ***

    "
    "@
     
     
     
    send-mailmessage -to $_.EmailAddress -from NoReply@domain.com -Subject "IT Information: Your password will expire in $display days" -body $MyVariable  -smtpserver mailserver@domain.com 
    }
     
    }

    Donnerstag, 22. September 2011 05:02

Antworten

  • >Es soll das erste Mal informieren, wenn das Kennwort noch 21 Tage gültig ist. Das zweite mal soll informiert werden, wenn es noch 14 Tage gültig ist. Und die letzten 7 Tage soll es täglich informieren.

    Wenn die User nur jeweils eine Mail bekommen sollen, musst du die Information welche Erinnerungen der User bereits bekommen hat irgendwo speichern. Entweder in eine Datenbank, eine (u.u. dann sehr große-) XML-Datei, oder du missbrauchst ein unbenutztes Attribut um AD-account des Users dafür.

    Aber ich würde nochmal überlegen ob du die Anwender wirklich mit Erinnerungsmails zuspammen willst. Bei der Flut der täglichen Mails gehen die ersten Mails eh unter. Und dann täglich? Wirklich? Man kann sich auch mutwillig unbeliebt machen.. ;)

     Also IMHO ist ein Popup bei der Anmeldung (Logonscript etc.) besser. DAS erscheint dann nämlich in einem Moment wo der Anwender gerade nichts anderes macht und das PW dann auch wirklich ändern kann.

     

    >Gibt es zusätzlich noch die Möglichkeit, in der Email einen Link zu hinterlegen, der dann das Passwort-Ändern-Fenster öffnet?

    Sofern du keine WEB-Applikation zur Passwortänderung hast, nein. Den Windows Standard Passwort-Ändern-Dialog kannst du nicht über eine URL aufrufen. Und das ist auch sehr gut so. :) Aber es sollte ja auch nicht zu viel verlangt sein, STRG-Alt-Entf zu drücken...

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".
    Samstag, 24. September 2011 11:38
    Moderator

Alle Antworten

  • >Es soll das erste Mal informieren, wenn das Kennwort noch 21 Tage gültig ist. Das zweite mal soll informiert werden, wenn es noch 14 Tage gültig ist. Und die letzten 7 Tage soll es täglich informieren.

    Wenn die User nur jeweils eine Mail bekommen sollen, musst du die Information welche Erinnerungen der User bereits bekommen hat irgendwo speichern. Entweder in eine Datenbank, eine (u.u. dann sehr große-) XML-Datei, oder du missbrauchst ein unbenutztes Attribut um AD-account des Users dafür.

    Aber ich würde nochmal überlegen ob du die Anwender wirklich mit Erinnerungsmails zuspammen willst. Bei der Flut der täglichen Mails gehen die ersten Mails eh unter. Und dann täglich? Wirklich? Man kann sich auch mutwillig unbeliebt machen.. ;)

     Also IMHO ist ein Popup bei der Anmeldung (Logonscript etc.) besser. DAS erscheint dann nämlich in einem Moment wo der Anwender gerade nichts anderes macht und das PW dann auch wirklich ändern kann.

     

    >Gibt es zusätzlich noch die Möglichkeit, in der Email einen Link zu hinterlegen, der dann das Passwort-Ändern-Fenster öffnet?

    Sofern du keine WEB-Applikation zur Passwortänderung hast, nein. Den Windows Standard Passwort-Ändern-Dialog kannst du nicht über eine URL aufrufen. Und das ist auch sehr gut so. :) Aber es sollte ja auch nicht zu viel verlangt sein, STRG-Alt-Entf zu drücken...

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".
    Samstag, 24. September 2011 11:38
    Moderator
  • Hallo Julian,

     

    Hat die Antwort von Deniver Dir weitergeholfen um das Problem zu lösen?

     

    Viele Grüße,

    Alex

    Mittwoch, 28. September 2011 14:16
  • Hi Alex,

    danke für deine Nachricht. Ich überlege noch immer, wie ich das sauber realisieren kann. Ich habe ein sehr gutes Powershell-Skript im Internet gefunden, da fehlt jetzt eigentlich nur noch die Möglichkeit eben zu steuern, dass eine Benachrichtung 21 Tage, eine Benachrichtung 14 Tage und die letzten 7 Tage jeden Tag an den User versendet.

    Kann ich das nicht auch mit einer if-Schleife lösen?

    Sorry meine Fragen, bin kein Programmier-König! :-)

    Generell geht es mir um meine VPN-Anwender, die rechtzeitig informiert werden sollen, dass das Kennwort abläuft!

    Grüße

    Julian.

    Freitag, 30. September 2011 09:31
  • Hi Julian

     

    Theoretisch Ja. Abgesehen davon dass die IF-Funktion keine Schlaufe sondern eine Bedigungs-Funktion ist und davon, dass du irgendwo immer noch Speichern musst, wann das letze Mail verschickt worden ist.

     

    ---------------------------------------

    User                      Letzes Mail
    ---------------------------------------

                            ||
    Martin               ||  28.10.2011
    Hans                 ||  20.10.11
                            ||

     

    Diese Daten musst du dir zuerst einmal speichern. Anschliessend kannst du in einer IF-Bedigung prüfen ob die Differenz zwischen Tagesdatum und dem letzen Mail schon reicht um das Mail zu verschicken. Du Daten musst du aber wie gesagt irgendwo speichern!

    Liebe Grüsse

    Reto

    Freitag, 28. Oktober 2011 11:11