Haikos Blog Blog von Haiko Hertes zu allen Themen rund um Microsoft und Datacenter

5Jun/170

PowerShell – Benutzer über ablaufendes AD Konto informieren

Hat man häufig wechselnde Benutzer in seinem Active Directory (wie z.B. bei mir an der Hochschule, oder auch bei Lehrlingen, Werkstudenten oder ähnlichem), dann ist es sinnvoll, die Benutzerkonten dieser Personenkreise von vornherein mit einem Ablaufdatum zu versehen:

Ablauf1

Ein mögliches Problem hierbei ist, dass die Benutzer erst NACH dem Ablauf feststellen, dass sie nicht mehr arbeiten können und sich bis zur Verlängerung durch einen Admin daran auch nichts ändert. Also wäre es doch schön, wenn die Benutzer schon vor dem Ablaufdatum daran erinnert werden, um sich zeitnah zu melden. Eine mögliche Lösung hierfür liegt wie so oft in einem PowerShell-Skript.

Der Kern des Skriptes ist die Suche nach den relevanten Accounts. Dazu dient “Search-ADAccount”:

Search-ADAccount -AccountExpiring -TimeSpan "32"

Diese Abfrage liefert alle Accounts, die in den nächsten 32 Tagen ablaufen (32 habe ich hier gewählt, um bei monatlicher Ausführung des Skriptes niemanden zu “vergessen”.

Der Rest ist dann eher schmückendes Beiwerk. Mit einer Schleife wird über alle entsprechenden Benutzer iteriert und jedem eine passende E-Mail gesendet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Import-Module ActiveDirectory
 
# Werte wie gewünscht anpassen:
[int]$AnzahlTage = 32
[TimeSpan]$Zeitraum = New-TimeSpan -Days $AnzahlTage
[string]$subject = "Ihr Benutzeraccount wird in den nächsten 31 Tagen ablaufen!"
[string]$MailSender = "ich@domain.de"
[string]$MailServer = "mail.server.com"
ForEach($ExpiringUser in (Search-ADAccount -AccountExpiring -TimeSpan $Zeitraum | Get-ADObject -Properties samaccountname,mail,accountExpires))
{
$ExpDate = [datetime]::FromFileTime($($ExpiringUser.accountExpires))
 
$body =
 
"Werter Benutzer!`r
`r
Ihr Benutzerkonto `"$($ExpiringUser.samaccountname)`" wird in den kommenden 31 Tagen ablaufen. Das genaue Ablaufdatum lautet:`r
`r
$(Get-Date ($ExpDate.AddDays(-1)) -Format "dd.MM.yyyy")`r
`r
Mit freundlichen Grüßen,`r
Ihre IT-Abteilung"
 
Send-MailMessage -From $MailSender -To $ExpiringUser.mail -Subject $subject -Body $body -SmtpServer $MailServer -Encoding UTF8 -Priority High -Bcc $MailSender
 
}

Das war es dann auch schon. Viel Spaß beim Adaptieren…

Das vollständige Skript kann auch hier heruntergeladen werden:

BenutzerÜberAblaufendesKontoInformieren.ps1

veröffentlicht unter: Allgemein keine Kommentare
25Apr/160

Windows Server 2016: YouTube-Videos zum Aufbau und zur Administration einer Active Directory Domäne

Ich habe drei Videos rund um das Thema Active Directory erstellt und bei YouTube veröffentlicht.

Im ersten Video geht es um die Installation von Active Directory.

Das zweite Video behandelt die Verwaltung von Benutzern, Gruppen, Computern und OUs.

Im dritten Video zeige ich den Umgang mit Gruppenrichtlinien (GPOs).

Viel Spaß beim Ansehen!

Hier geht es zur gesamten AD-Playlist:

https://www.youtube.com/playlist?list=PLPK8RW8p4Ok9mJbpRzb0bq_OL7mfMm5hg

veröffentlicht unter: Allgemein keine Kommentare