Alte AD Computer finden

Dieses kleine Skript war vor allem interessant, als der extended Support für XP und 2003 abgekündigt wurde. Es galt die alten PCs „zu finden“ welche scheinbar noch aktiv sind. Bei dieser Gelegenheit habe ich dann auch alle anderen PCs auflisten lassen, die scheinbar NICHT mehr aktiv sind:

# AD-Module importieren
Import-Module ActiveDirectory

# Definieren, wie lange sich die gesuchten Objekte maximal nicht mehr angemeldet haben dürfen
$DaysInactive = 30
$time = (Get-Date).Adddays(-($DaysInactive))

# Hier werden alle alten OS-Versionen gelistet, die scheinbar noch immer aktiv sind
# Man sollte schauen, ob diese ersetzt werden können
echo "Folgende PCs sind XP/2003 oder niedriger und deren Anmeldung liegt nicht länger als 30 Tage zurück:"
Get-ADComputer -Filter {OperatingSystemVersion -lt "6" -And -Not LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp,OperatingSystem | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},OperatingSystem | sort name
echo ""

# Hier werden alle Computerobjekte gesucht, die sich seit min. XXX Tagen nicht angemeldet haben
# Man sollte schauen, ob diese noch gebraucht werden
echo "Folgende PCs haben sich innerhalb der letzten 30 Tage nicht mehr angemeldet:"
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} | sort name