Hallo, ich bin auf der Suche nach einer Möglichkeit gesperrte AD-User zu finden und die gefundenen dann in einer E-Mail an eine Adresse zu senden, damit sich dies jemand ansieht und ggfls. den User wieder entsperrt. Mein Code zum finden eines gesperrten Users funktioniert, die Ausgabe in der E-Mail sieht zwar noch nicht so schön aus aber es funktioniert. Das Script würde ich dann einfach alle 15min laufen lassen. Ärgerlich ist dann jedoch, dass dann alle 15min wieder eine E-Mail geschrieben wird. Wie bekomme ich das hin, dass nur einmalig eine Mial geschickt wird? Zudem ist vermutlich meine "If" nicht wirklich toll. Bin halt noch Anfänger...
$gesperrteBenutzer= Search-ADAccount -LockedOut | Get-ADUser -Properties LockoutTime | Select-Object SamAccountName, LockoutTime | ForEach-Object { $_.LockoutTime = [System.DateTime]::FromFileTime($_.LockoutTime);$_} | Where-Object { $_.LockoutTime -gt ((get-date) - (New-TimeSpan -hour 48)) }
function sendmail($body)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "MailServer"
$mailmessage.from = "mail@host.local"
$mailmessage.To.add("mail@host.local")
$mailmessage.Subject = “gesperrte Benutzer"
$MailMessage.IsBodyHtml = $true
$mailmessage.Body = $body
$smtpclient.Send($mailmessage)
}
$body = @"
Folgende Benutzer sind gesperrt:
$gesperrteBenutzer
"@
if($gesperrteBenutzer) {sendmail $body}