Dieser Beitrag wurde aus dem bestehenden Archiv übernommen und noch nicht fachlich aktualisiert. Versionsangaben, Befehle und Berechtigungen müssen vor der Anwendung geprüft werden. Code zuerst in einer geeigneten Testumgebung erproben.
Finde mit Powershell in meinem Active Directory alle Benutzer, die bestimmte Kriterien entsprechen.
######################################################
#
# Finde Benutzer mit Kriterien
# - Letzter Logon (LastLogonDate) war innerhalb der
# letzten 3 Jahren
# - Personalnummer (employeeNumber) nicht $NULL oder
# sowas
#
######################################################
$thenDate = (Get-Date).AddDays(-(365*3)) # The 60 is the number of days from today since the last logon.
$UserArrayActive = @()
$UserArrayActive = Get-ADUser -Filter {(LastLogonDate -gt $thenDate) -and (Enabled -eq $true)} -Properties givenname, Surname, samaccountname, employeeNumber, Enabled, LastLogonDate | select givenname, Surname, samaccountname, employeeNumber, Enabled, LastLogonDate | ? {(($_.employeeNumber) -ne $null) -and (($_.employeeNumber) -ne "999999")}
$UserArrayActive.count
$datetime = get-date -Format "yyMMdd_hhmmss"
$logfilepath = "C:\support\ADuser\"+ $datetime + "_summary_adusers.csv"
$UserArrayActive | export-csv $logfilepath