In Windows 7 werden Benutzer nach der Anmeldung nur noch durch eine Sprechblase der Taskleiste darüber informiert, dass deren Windows-Kennwort in naher Zukunft abläuft. Da diese Sprechblase gerne von Usern übersehen wird, kann zusätzlich mithilfe eine PowerShell-Skripts eine Emailbenachrichtigung eingerichtet werden.
Damit das Skript ausgeführt werden kann, muss es entweder auf einem Domain Controller (Win 2008 R2 aufwärts) oder einem Member-Server mit installierter „Active Directory-Domänendiensten“-Rolle aufgerufen werden. Außerdem muss ggf. noch PowerShell’s Execution Policy auf „RemoteSigned“ angepasst werden:
Set-ExecutionPolicy RemoteSigned
Hiermit kann geprüft werden wie die Execution Policy konfiguriert ist (Standardwert: Restricted):
Get-ExecutionPolicy
1.) PowerShell-Skript erstellen
Diesen Code in einen Texteditor kopieren, die hervorgehobenen Stellen anpassen und als PowerShell-Skript speichern (z.B. C:\Temp\password.ps1):
———————————————
Import-Module ActiveDirectory
$OUs = ‚OU=OU1,DC=domain,DC=de‘,’OU=OU2,DC=domain,DC=de‘
$OUs | Foreach {Get-ADUser -filter * -properties PasswordLastSet,EmailAddress,GivenName,Surname -SearchBase $_ -SearchScope Subtree} | foreach {
$PasswordSetDate=$_.PasswordLastSet
$maxPasswordAgeTimeSpan = $null
$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
$today=get-date
$ExpiryDate=$passwordSetDate + $maxPasswordAgeTimeSpan
$daysleft=$ExpiryDate-$today
$display=$daysleft.days
$UserName=$_.GivenName
$SurName=$_.Surname
if ($display -lt 14 -and $display -gt 0)
{
$MyVariable = @“
Sehr geehrte/r $UserName $Surname,
Ihr Kennwort wird in $display Tagen ablaufen. Sollten Sie es nicht rechtzeitig ändern, wird das Internet abgeschaltet 🙂
Mit freundlichen Grüßen,
EDV-Abteilung
*** Diese Nachricht wurde automatisch generiert – bitte nicht darauf antworten. ***
„@
send-mailmessage -to $_.EmailAddress -from kennwortwarnung@domain.de -Subject „IT Information: Ihr Kennwort wird in $display Tagen ablaufen“ -body $MyVariable -smtpserver smtp.domain.de -encoding ([System.Text.Encoding]::UTF8)
}
}
———————————————
Erläuterung:
OU=OU1,DC=domain,DC=de > durch entsprechende OU-Struktur ersetzen (durch den Schalter „-SearchScope Subtree“ werden Unter-OUs inkludiert)
$display -lt 14 > 14 = Zeitraum in Tagen bevor das Kennwort abläuft. Während des definierten Zeitraums wird der Benutzer bei Ausführung des Skripts gewarnt.
Sehr geehrte/r… > Benachrichtigungsinhalt nach eigenem Geschmack gestalten.
kennwortwarnung@domain.de > Austauschen gegen gewünschte Absenderadresse.
smtp.domain.de > Email-Server
2.) Benachrichtigungsskript in die Windows-Aufgabenplanung einbinden
– In Aufgabenplanung „Neue einfache Aufgabe“ erstellen
– Name & Zeitplan festlegen
– Aktion: Programm starten
– Programm starten:
> Programm / Skript: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
> Argumente hinzufügen (optional): -command C:\Temp\password.ps1
– Anschließend die Aufgabe bearbeiten und unter „Allgemein“ die Haken „Unabhängig von der Benuzteranmeldung ausführen“ und „Mit höchsten Privilegien ausführen“ setzen
Quellen:
Technet-Forum
Technet
Mike Pfeiffer