Problem: Die Human Ressources Abteilung gibt Informationen über das Ausscheiden von Mitarbeitern nicht – oder nicht zuverlässig – weiter. Nun soll herausgefunden werden, welche Benutzer sich seit einem Jahr nicht mehr an der Domäne angemeldet haben, denn diese sollen deaktiviert werden.
Ich bin auf einem Domaincontroller eingeloggt und habe PowerShell gestartet.
Welche Benutzer haben sich seit 365 Tagen nicht mehr an der Domäne angemeldet?
Get-ADUser -Filter * -Properties LastLogonDate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((get-date).adddays(-365))} | Format-List Name,LastLogonDate
Welche sind davon noch nicht deaktiviert?
Get-ADUser -Filter * -Properties lastlogondate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((Get-Date).adddays(-365)) -and $_.enabled -eq $true}
Wie viele sind das?
Get-ADUser -Filter * -Properties lastlogondate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((Get-Date).adddays(-365)) -and $_.enabled -eq $true} | Measure-Object
Alle deaktivieren:
Get-ADUser -Filter * -Properties LastLogonDate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((get-date).adddays(-365))} | Disable-ADAccount
Weiterführendes
Das Ganze kann umgemünzt werden auf andere Themengebiete:
Active Directory: Verwaiste (inaktive) Computerkonten finden
Inaktive Exchange Mailboxen mit Get-MailboxStatistics suchen
Active Directory: Suche nach inaktiven, nicht verknüpften Gruppenrichtlinien
Viel Spaß bei der Suche und beim Aufräumen!
Categories: Cyber Security, PowerShell, Windows Server
5 replies »