Auslesen des Passwortablaufdatums und Mailbenachrichtigung
Hi Admin-Gemeinde,
wir haben aktuell umgestellt auf DC Windows 2008 R2 und als Client Win7 64 bit.
Per GPO bekommen die User 7 Tage vor Ablauf Ihres Kennworts den Ballon eingeblendet, dass Ihr Passwort abläuft.
Leider sehen bzw. übersehen unsere Benutzer diesen Hinweis.
Nun hab ich mir gedacht es muss doch möglich sein, das expire Date des AD Passwort auszulesen und dann den AD Benutzern eine Mail zu schicken mit dem Hinweis: "Ihr Passwort läuft in X Tagen ab!"
Ich hab auch schon mal gegoogelt und bin auf folgendes Skript gestossen:
Leider bin ich aber noch Powershell Neuling und bekomme es nicht hin, das Ganze zu testen bzw. erfolgreich auszuführen. Vielleicht könnt Ihr mir ja weiterhelfen.
Danke!
wir haben aktuell umgestellt auf DC Windows 2008 R2 und als Client Win7 64 bit.
Per GPO bekommen die User 7 Tage vor Ablauf Ihres Kennworts den Ballon eingeblendet, dass Ihr Passwort abläuft.
Leider sehen bzw. übersehen unsere Benutzer diesen Hinweis.
Nun hab ich mir gedacht es muss doch möglich sein, das expire Date des AD Passwort auszulesen und dann den AD Benutzern eine Mail zu schicken mit dem Hinweis: "Ihr Passwort läuft in X Tagen ab!"
Ich hab auch schon mal gegoogelt und bin auf folgendes Skript gestossen:
###############################################################################
function write-Eventlog([string]$uname)
{
$text = "Das Kennwort für den Benutzer " + $uname + " wurde zur Änderung aktiviert."
$Eventlog = new-object System.Diagnostics.EventLog('Application')
$Eventlog.MachineName = "."
$Eventlog.Source = "Kennwort-Manager"
$Eventlog.WriteEntry($text)
}
function send-EMail([string]$uname, [string]$email, [int]$number)
{
#Mailserver
$server = "192.168.1.20"
$from = " kennwort@hier.local"
$subject = "Ihr Domainen-Kennwort läuft demnächst ab!"
$template = "C:\powershell\password.html"
$body = get-Content $template
$replace=[regex]"#TAGE#"
$body = $replace.Replace($body,$number,1)
$replace=[regex]"#NAME#"
$body = $replace.Replace($body,$uname,1)
[System.Net.Mail.MailMessage]$message = New-Object System.Net.Mail.MailMessage($from, $email, $subject, $body)
$message.IsBodyHTML = $true
if ($number -eq 1) {$message.Priority ="High"}
[System.Net.Mail.SmtpClient]$smtpclient = New-Object System.Net.Mail.SmtpClient($server)
$smtpclient.Send($message)
}
### Begin Main
$days = "7"
$container = "OU=Benutzer,DC=hier,DC=local"
$query = "(&(objectclass=user)(useraccountcontrol=512))"
for ($day = 0; $day -le $days; $day++)
{
$user =""
$users = Get-ADUser -LdapFilter $query -SearchBase $container -SearchScope:Subtree | Where {$_.PasswordExpires.Date -eq ([datetime]::Now.Date.AddDays($day))}
foreach ($user in $users)
{
if ($user -ne $null)
{
if ($day -eq 0)
{
write-Eventlog $user.Name
set-aduser -identity $user.NTAccountName -UserMustChangePassword $true
}
else
{
send-EMail $user.Name $user.EMail $day
}
}
}
}
### End Main
Leider bin ich aber noch Powershell Neuling und bekomme es nicht hin, das Ganze zu testen bzw. erfolgreich auszuführen. Vielleicht könnt Ihr mir ja weiterhelfen.
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193954
Url: https://administrator.de/contentid/193954
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
2 Kommentare
Neuester Kommentar
Moin.
Ich hab Dein Skript gegoogelt und gesehen, dass Du es einfach nicht komplett wiedergibst ;) siehe http://www.msisafaq.de/anleitungen/Verschiedenes/VistaPwd.htm
Du unterschlägst den Autor und dessen Kommentar:
Hattest Du die runtergeladen und eingebunden?
Wenn's nicht will, schau mal hier: User übersehen in Windows 7 ständig den Balloon -Ändern Sie ggf. das Kennwort-
Ich hab Dein Skript gegoogelt und gesehen, dass Du es einfach nicht komplett wiedergibst ;) siehe http://www.msisafaq.de/anleitungen/Verschiedenes/VistaPwd.htm
Du unterschlägst den Autor und dessen Kommentar:
Für den Betrieb dieses Skripts sind die Powershell und die PowerShell Commands for Active
Directory von Quest erforderlich. Die Powershell Commands können Sie unter der URL
http://www.quest.com/powershell/activeroles-server.aspx herunter laden.
Directory von Quest erforderlich. Die Powershell Commands können Sie unter der URL
http://www.quest.com/powershell/activeroles-server.aspx herunter laden.
Hattest Du die runtergeladen und eingebunden?
Wenn's nicht will, schau mal hier: User übersehen in Windows 7 ständig den Balloon -Ändern Sie ggf. das Kennwort-