Benutzer über das Ablaufen ihrer Active Directory-Passwörter via E-Mail benachrichtigen
Hallo Administratoren,
obwohl unsere Mitarbeiter per Popup mehrere Tage vorher über den anstehenden Passwortwechel informiert werden, gibt es doch den einen oder anderen Spezialisten, welcher Talent hat es diesen Hinweis immer und immer wieder zu übersehen.
Gibt es dafür ein Bordmittel, wie hier Benutzer über das Ablaufen ihrer Active Directory-Passwörter via E-Mail benachrichtigen vorgeschlagen? Kann man auch ohne Zusatzsoftware den Hinweis auch per E-Mail an den entsprechenden Benutzer verschicken?
Danke für den Input!
obwohl unsere Mitarbeiter per Popup mehrere Tage vorher über den anstehenden Passwortwechel informiert werden, gibt es doch den einen oder anderen Spezialisten, welcher Talent hat es diesen Hinweis immer und immer wieder zu übersehen.
Gibt es dafür ein Bordmittel, wie hier Benutzer über das Ablaufen ihrer Active Directory-Passwörter via E-Mail benachrichtigen vorgeschlagen? Kann man auch ohne Zusatzsoftware den Hinweis auch per E-Mail an den entsprechenden Benutzer verschicken?
Danke für den Input!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 579871
Url: https://administrator.de/contentid/579871
Ausgedruckt am: 25.11.2024 um 03:11 Uhr
12 Kommentare
Neuester Kommentar
Zitat von @nachgefragt:
Hallo Administratoren,
obwohl unsere Mitarbeiter per Popup mehrere Tage vorher über den anstehenden Passwortwechel informiert werden, gibt es doch den einen oder anderen Spezialisten, welcher Talent hat es diesen Hinweis immer und immer wieder zu übersehen.
Gibt es dafür ein Bordmittel, wie hier Benutzer über das Ablaufen ihrer Active Directory-Passwörter via E-Mail benachrichtigen vorgeschlagen? Kann man auch ohne Zusatzsoftware den Hinweis auch per E-Mail an den entsprechenden Benutzer verschicken?
Danke für den Input!
Hallo Administratoren,
obwohl unsere Mitarbeiter per Popup mehrere Tage vorher über den anstehenden Passwortwechel informiert werden, gibt es doch den einen oder anderen Spezialisten, welcher Talent hat es diesen Hinweis immer und immer wieder zu übersehen.
Gibt es dafür ein Bordmittel, wie hier Benutzer über das Ablaufen ihrer Active Directory-Passwörter via E-Mail benachrichtigen vorgeschlagen? Kann man auch ohne Zusatzsoftware den Hinweis auch per E-Mail an den entsprechenden Benutzer verschicken?
Danke für den Input!
<#
.NOTES
===========================================================================
Created on: 3/27/2018 7:37 PM
Created by: Bradley Wyatt
Version: 1.0.0
Notes:
The variables you should change are the SMTP Host, From Email and Expireindays. I suggest keeping the DirPath
SMTPHOST: The smtp host it will use to send mail
FromEmail: Who the script will send the e-mail from
ExpireInDays: Amount of days before a password is set to expire it will look for, in my example I have 7. Any password that will expire in 7 days or less will start sending an email notification
Run the script manually first as it will ask for credentials to send email and then safely store them for future use.
===========================================================================
.DESCRIPTION
This script will send an e-mail notification to users where their password is set to expire soon. It includes step by step directions for them to
change it on their own.
It will look for the users e-mail address in the emailaddress attribute and if it's empty it will use the proxyaddress attribute as a fail back.
The script will log each run at $DirPath\log.txt
#>
#VARs
#SMTP Host
$SMTPHost = "smtp.office365.com"
#Who is the e-mail from
$FromEmail = "automation@thelazyadministrator.com"
#Password expiry days
$expireindays = 7
#Program File Path
$DirPath = "C:\Automation\PasswordExpiry"
$Date = Get-Date
#Check if program dir is present
$DirPathCheck = Test-Path -Path $DirPath
If (!($DirPathCheck))
{
Try
{
#If not present then create the dir
New-Item -ItemType Directory $DirPath -Force
}
Catch
{
$_ | Out-File ($DirPath + "\" + "Log.txt") -Append
}
}
#CredObj path
$CredObj = ($DirPath + "\" + "EmailExpiry.cred")
#Check if CredObj is present
$CredObjCheck = Test-Path -Path $CredObj
If (!($CredObjCheck))
{
"$Date - INFO: creating cred object" | Out-File ($DirPath + "\" + "Log.txt") -Append
#If not present get office 365 cred to save and store
$Credential = Get-Credential -Message "Please enter your Office 365 credential that you will use to send e-mail from $FromEmail. If you are not using the account $FromEmail make sure this account has 'Send As' rights on $FromEmail."
#Export cred obj
$Credential | Export-CliXml -Path $CredObj
}
Write-Host "Importing Cred object..." -ForegroundColor Yellow
$Cred = (Import-CliXml -Path $CredObj)
# Get Users From AD who are Enabled, Passwords Expire and are Not Currently Expired
"$Date - INFO: Importing AD Module" | Out-File ($DirPath + "\" + "Log.txt") -Append
Import-Module ActiveDirectory
"$Date - INFO: Getting users" | Out-File ($DirPath + "\" + "Log.txt") -Append
$users = Get-Aduser -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress -filter { (Enabled -eq 'True') -and (PasswordNeverExpires -eq 'False') } | Where-Object { $_.PasswordExpired -eq $False }
$maxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
# Process Each User for Password Expiry
foreach ($user in $users)
{
$Name = (Get-ADUser $user | ForEach-Object { $_.Name })
Write-Host "Working on $Name..." -ForegroundColor White
Write-Host "Getting e-mail address for $Name..." -ForegroundColor Yellow
$emailaddress = $user.emailaddress
If (!($emailaddress))
{
Write-Host "$Name has no E-Mail address listed, looking at their proxyaddresses attribute..." -ForegroundColor Red
Try
{
$emailaddress = (Get-ADUser $user -Properties proxyaddresses | Select-Object -ExpandProperty proxyaddresses | Where-Object { $_ -cmatch '^SMTP' }).Trim("SMTP:")
}
Catch
{
$_ | Out-File ($DirPath + "\" + "Log.txt") -Append
}
If (!($emailaddress))
{
Write-Host "$Name has no email addresses to send an e-mail to!" -ForegroundColor Red
#Don't continue on as we can't email $Null, but if there is an e-mail found it will email that address
"$Date - WARNING: No email found for $Name" | Out-File ($DirPath + "\" + "Log.txt") -Append
}
}
#Get Password last set date
$passwordSetDate = (Get-ADUser $user -properties * | ForEach-Object { $_.PasswordLastSet })
#Check for Fine Grained Passwords
$PasswordPol = (Get-ADUserResultantPasswordPolicy $user)
if (($PasswordPol) -ne $null)
{
$maxPasswordAge = ($PasswordPol).MaxPasswordAge
}
$expireson = $passwordsetdate + $maxPasswordAge
$today = (get-date)
#Gets the count on how many days until the password expires and stores it in the $daystoexpire var
$daystoexpire = (New-TimeSpan -Start $today -End $Expireson).Days
If (($daystoexpire -ge "0") -and ($daystoexpire -lt $expireindays))
{
"$Date - INFO: Sending expiry notice email to $Name" | Out-File ($DirPath + "\" + "Log.txt") -Append
Write-Host "Sending Password expiry email to $name" -ForegroundColor Yellow
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
#Who is the e-mail sent from
$mailmessage.From = $FromEmail
#SMTP server to send email
$SmtpClient.Host = $SMTPHost
#SMTP SSL
$SMTPClient.EnableSsl = $true
#SMTP credentials
$SMTPClient.Credentials = $cred
#Send e-mail to the users email
$mailmessage.To.add("$emailaddress")
#Email subject
$mailmessage.Subject = "Your password will expire $daystoexpire days"
#Notification email on delivery / failure
$MailMessage.DeliveryNotificationOptions = ("onSuccess", "onFailure")
#Send e-mail with high priority
$MailMessage.Priority = "High"
$mailmessage.Body =
"Dear $Name,
Your Domain password will expire in $daystoexpire days. Please change it as soon as possible.
To change your password, follow the method below:
1. On your Windows computer
a. If you are not in the office, logon and connect to VPN.
b. Log onto your computer as usual and make sure you are connected to the internet.
c. Press Ctrl-Alt-Del and click on ""Change Password"".
d. Fill in your old password and set a new password. See the password requirements below.
e. Press OK to return to your desktop.
The new password must meet the minimum requirements set forth in our corporate policies including:
1. It must be at least 8 characters long.
2. It must contain at least one character from 3 of the 4 following groups of characters:
a. Uppercase letters (A-Z)
b. Lowercase letters (a-z)
c. Numbers (0-9)
d. Symbols (!@#$%^&*...)
3. It cannot match any of your past 24 passwords.
4. It cannot contain characters which match 3 or more consecutive characters of your username.
5. You cannot change your password more often than once in a 24 hour period.
If you have any questions please contact our Support team at support@thelazyadministrator.com or call us at 555.555.5555
Thanks,
The Lazy Administrator
support@thelazyadministrator.com
555.555.5555"
Write-Host "Sending E-mail to $emailaddress..." -ForegroundColor Green
Try
{
$smtpclient.Send($mailmessage)
}
Catch
{
$_ | Out-File ($DirPath + "\" + "Log.txt") -Append
}
}
Else
{
"$Date - INFO: Password for $Name not expiring for $daystoexpire days" | Out-File ($DirPath + "\" + "Log.txt") -Append
Write-Host "Password for $Name does not expire for $daystoexpire days" -ForegroundColor White
}
}
Gefunden auf
https://www.thelazyadministrator.com/2018/03/28/email-users-when-their-a ...
Hallo,
wir lösen das über ein Script, das einmal die Woche eine Email an die Nutzer und den Admin versendet. Ab Kennwort Gültigkeit unter 28 Tage.
Meine persönliche Meinung und Erfahrung. Es bringt nichts! Gar nichts. Email wird ignoriert und hundert Ausreden erfunden. Der Aufwand mit abgelaufenen Kennwörtern reduziert sich nicht.
Schöne Restwoche noch
So long
Gruß
Daniel
wir lösen das über ein Script, das einmal die Woche eine Email an die Nutzer und den Admin versendet. Ab Kennwort Gültigkeit unter 28 Tage.
Meine persönliche Meinung und Erfahrung. Es bringt nichts! Gar nichts. Email wird ignoriert und hundert Ausreden erfunden. Der Aufwand mit abgelaufenen Kennwörtern reduziert sich nicht.
Schöne Restwoche noch
So long
Gruß
Daniel
Regelmäßige Änderungen der Passwörter haben wir schon lange abgeschafft, bringt i. d. Regel keinen Sicherheitsgewinn und meist nur Probleme, im Gegenteil, die PW geraten dann aus Faulheit zu simpel oder die Leute kleben sich die irgendwo auf die Möbel. Wir setzen überall nun 2 Faktor-Auth mit Tokens und PIN/Pass ein, da entfällt das unsinnige regelmäßige Tauschen der Passwörter.
Zitat von @nachgefragt:
Der Komplexitätsgrad des Kennworts kann durch die AD Vorgabe nicht umgangen werden.
Sicher, nur entsteht in der Regel dann meist auch nur Bullshit, was ich bisher so gesehen habe.Der Komplexitätsgrad des Kennworts kann durch die AD Vorgabe nicht umgangen werden.
Naja, wie sagt man so schön, jedem sein Pläsierchen...
Zitat von @nachgefragt:
Die Google-Suchergebnisse sind auch schon recht alt.
Zitat von @ArnoNymous:
ich habe hier PassAlert im Einsatz. Das ist einfach, kostenlos und erfüllt seinen Zweck.
Man kann bis zu 3 Benachrichtigungen konfigurieren.
Danke, ist aber auch kein Bordmittel, oder?ich habe hier PassAlert im Einsatz. Das ist einfach, kostenlos und erfüllt seinen Zweck.
Man kann bis zu 3 Benachrichtigungen konfigurieren.
Die Google-Suchergebnisse sind auch schon recht alt.
Das ist halt ne GUI die dann ein Skript im Hintergrund ausführt. Ist schon alt, aber funktioniert mzumindest mit WinSvr2016 noch tadellos. Und im Gegensatz zu dem Kollegen konnte ich hier doch eine wesentliche Verbesserung des userverhaltens feststellen.