PRTG Active Directory Fehler Sensor

Posted on: 3. Mai 2018
In diesem Script für PRTG prüfen wir die Active Directory auf Fehler. So lesen wir Benutzer und Computer aus, welche sich längere Zeit nicht mehr an der Active Directory angemeldet haben. Weiter prüfen wir auch ob es Benutzer gibt, die das Passwort mehrmals falsch eingegeben haben.
Hier der Code aus dem Youtube-Video. Die Vorgehensweise und Bemerkungen findest du direkt als Kommentare (#Grün) im Code. So wird er dir ebenfalls in der PowerSHELL ISE angezeigt werden.
——————————————–
# PRTG Funktionen importieren
Import-Module "C:\Script\GPS_PRTGFunktionen.ps1"

# Veraltete AD User, AD Computer und Konti mit Fehlern finden
$olduser = @()
$oldcomputer = @()
$erroruser = @()

$agelimite = 60 # Alter in Tagen seit letzten Logon
$logonDate = (Get-Date).AddDays(-$agelimite) # Generieren des Zeitstempels für die Alterslimite
$olduser = (Get-ADUser  -Filter 'LastLogonDate -lt $logonDate' -Properties * | where {$_.Enabled -eq $true -and $_.Displayname -notlike "*Service*" -and $_.samAccountName -notlike "*Administrator*"}  |  Select-Object DisplayName).DisplayName
$oldcomputer = (Get-ADComputer -Properties lastLogonDate -Filter 'lastLogonDate -lt $logonDate' | Format-Table Name).Name
            
# Auflistung aller veralteter Benutzer
$allolduser = ""

# Auflistung aller veralteter Computer
$alloldcomputer = ""

# Veraltete Benutzernamen in Variabel abfüllen
if ($olduser.Count -gt 0){foreach ($user in $olduser){$allolduser += $user + ","}} else {$allolduser = "Keine"}

# Veraltete Computernamen in Variabel abfüllen
if ($oldcomputer.Count -gt 0){foreach ($computer in $oldcomputer){$alloldcomputer += $computer + ","}} else {$alloldcomputer = "Keine"}

# Benutzer mit Logon Fehlern bzw. falschen Passworteingaben finden
$logonlimit = 3 # Anzahl Fehlversuche
$erroruser = (Get-ADUser -Filter 'badpwdcount -ge $logonlimit' -Properties BadPwdCount | Select-Object DisplayName).DisplayName

# Auflistung aller Benutzer mit Passwortproblemen
$allerroruser = ""

# Falls Benutzer mit Anmeldefehlern vorhanden sind, diese in Variabel abfüllen
if ($erroruser.Count -gt 0) {foreach ($user in $erroruser){$allerroruser += $user + ","}} else {$allerroruser = "Keine"}

# Generieren
$outvar += Write-PRTGChannel -Titel "Anz. Veraltete Benutzer" -Value $olduser.Count -Unit Count -LimitMaxWarning 2 -LimitMaxError 3
$outvar += Write-PRTGChannel -Titel "Anz. Veraltete Computer" -Value $oldcomputer.Count -Unit Count -LimitMaxWarning 2 -LimitMaxError 3
$outvar += Write-PRTGChannel -Titel "Anz. passwort Probleme" -Value $erroruser.Count -Unit Count -LimitMaxError 0.9

Write-PRTGOutput -OutputVariable $outvar -ZusatzText ("Ergebnisse: Benutzerfehler: " + $allolduser + " / Computerprobleme: " + $alloldcomputer + " / Passwortprobleme: " + $allerroruser)
——————————————–
Solltest du irgendwelche Fragen haben, dann kannst du diese gerne entweder hier im Blog oder direkt unter dem YouTube Video stellen. Ich gebe alles, deine Fragen zeitnahe zu beantworten oder ein entsprechendes Video darüber zu machen.
Gerade die Grundlagen-Videos werde ich nicht mit viel Text ausschmücken. Bei mir ist jeweils jede Code-Zeile direkt im Code Kommentiert (#Grün). Du kannst den Code direkt mit in dein Script kopieren und hast so eine gute Orientierungshilfe, sobald du die Scripts auf deine Bedürfnisse anpasst.

Ich erstelle und veröffentliche sämtliche Videos kostenlos und blende auch keine Werbung ein, dies will ich auch so beibehalten. Da das vermittelte Wissen aber in teuren Kursen erlangt werden kann, ist eine kleine Spende hin und wieder sicher keine schlechte Gegenleistung.