In fast jedem Unternehmen sammeln sich mit der Zeit Computer- und Benutzerobjekte an, die schon ewig nicht mehr verwendet wurden und in Vergessenheit geraten sind. Nur wie kann man diese am schnellsten aufspüren? Ich habe bei einigen Aufräumaktionen verschiedene Vorgehensweisen recherchiert und diese getestet.

Folgende Methoden funktionieren sehr zuverlässig:


Computerkonten

CommandLine
Mit dem folgenden Command – Befehl wird abgefragt welche Computerkonten länger als 180 Tage kein Computerkennwort mehr angefragt haben. Das Ergebnis wird direkt in eine CSV-Datei exportiert und kann so weiter verwendet werden.

Die Tage können hierbei noch unter “-stalepwd 180” verändert werden. Standardmäßig aktualisieren Computerkonten ihr Passwort alle 30 Tage. Abfragewerte unter 30 Tagen liefern daher ein falsches Ergebnis!

Abfrage:
dsquery computer -stalepwd 180 > C:\old_computers.csv


PowerShell
Bei dem Powershell Befehl werden veraltete Computerkonten mithilfe des  “AccountInactive” – Attributes ermittelt. Dieses Attribut ist erst ab der Domänenfunktionsebene “Windows Server 2003” verfügbar!

Die Ergebnisse der Abfrage werden sofort in eine CSV-Datei exportiert!

Wie lange ein Computerkonto inaktiv sein muss damit es gelistet wird kann unter “-AddDays(-180)” angegeben werden. (Standard: 180 Tage)

Abfrage:
Search-ADAccount -AccountInactive -DateTime $(Get-Date).AddDays(-180) -ComputersOnly | Sort-Object | FT Name -A > C:\old_computers.csv


Achtung:
Außendienstmitarbeiter, welche für den Angegebenen Zeitraum keine Verbindung zum Unternehmensnetzwerk hatten, könnten auch in dieser Liste auftauchen! Ich empfehle die gefundenen Computerkonten erst zu deaktivieren und nach einer Zeit zu löschen!


Benutzerkonten:

VB-Script
Mithilfe eines VB-Scripts erhält man eine Auflistung aller Benutzerkonten zusammen mit den OU-Informationen und dem letzten Anmeldedatum.

Hierbei ist zu beachten, dass bei deaktivierten Benutzern und bei Benutzern ohne ein verfügbares Anmeldedatum der Wert “01.01.1601” ausgegeben wird!

Standardmäßig wird die Ausgabedatei unter “C:\Users_LastLogon.csv” abgelegt!

Script Download:
http://download.jniesen.de/lastlogon.zip


PowerShell
Mit dem folgenden Powershell-Script ist es möglich das letzte Anmeldedatum aller Benutzer in einer Liste darzustellen.

Deaktivierte Benutzerkonten werden bei diesem Verfahren in der Spalte „Enabled“ mit einem „False“ gekennzeichnet!

Auch das Ergebnis dieser Abfrage wird direkt in eine CSV-Datei exportiert und kann mit Excel geöffnet werden.

Abfrage:
Get-ADUser -Filter * -Properties LastLogonDate | Sort-Object -Property LastLogonDate -descending | FT -Property SamAccountName, Name, Enabled, LastLogonDate > C:\Users_LastLogon.csv


Quellen & Weitere Informationen:

http://blog.dikmenoglu.de/PermaLink,guid,d387dab8-54ec-4166-a880-b170b73adc8f.aspx

http://blog.dikmenoglu.de/Alte+Oder+Deaktivierte+Computerkonten+Mit+Der+ADPowerShell+L%C3%B6schen.aspx

http://hope-this-helps.de/serendipity/archives/107-AD-Benutzer-Lastlogon-auslesen.html