In einem größeren Active Directory (AD) kommt es mit der Zeit vor, das es alte Computerkonten gibt, welche nicht mehr benutzt werden. Dies kommt zustande, wenn Server oder Clients abgebaut werden ohne das das dazugehörige Computerkonto gelöscht wird.
Dies gilt auch, wenn ein Computer zwar aus der Domäne entfernt wird, das Computerkonto bleibt bestehen und muß noch gelöscht werden.
Auch durch die heutigen virtualisierten Umgebungen, wo sehr schnell Rechner auf- und abgebaut werden können, entstehen immer mehr solcher Karteileichen.
Windows liefert hier eigentlich alle Tools mit, um diese Karteileichen zu finden: dsquery und PowerShell 3.0!
Sobald ein Computer aus der Domäne entfernt wird, wird das Computerkonto disabled. Diese Computerkonten kann man recht einfach heraus finden:
dsquery computer -disabled
In PowerShell 3.0 sieht es dann so aus:
Search-ADAccount -AccountDisabled -ComputersOnly
Ist man sich dann sicher, das alle gesperrten Computerkonten gelöscht werden sollen, kann man dies so tun:
dsquery computer -disabled | dsrm
Alternativ natürlich auch mit PowerShell 3.0:
Search-ADAccount -AccountDisabled -ComputersOnly | Remove-ADComputer
Etwas schwieriger gestaltet sich das Problem bei inaktiven Computern. Diese sind beispielsweise einfach abgebaut worden, ohne das einem AD-Admin bescheid gesagt wurde. Gründe hierfür gibt es verschiedene.
Auch Außendienstmitarbeiter sind hier zu finden, wenn diese sich länger mit ihrem Computer nicht im Firmennetz aufgehalten haben.
Hier einen entsprechenden Inaktivitätszeitraum zu finden, sollte jeder selbst entscheiden und nach seiner Umgebung anpassen können.
Mit dsquery kann man diese Rechner recht schnell finden:
dsquery computer -inactive 6 -limit 0
Der Parameter inactive gibt hierbei die Anzahl der Wochen an, limit die Anzahl der maximalen Einträge (0=unendlich).
Mit PowerShell 3.0 ist dies natürlich auch möglich:
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 42.00:00:00
Damit diese Computerkonten nicht sofort gelöscht werden, empfiehlt es sich, diese erstmal zu disablen:
dsquery computer -inactive 6 | dsmod computer -disabled yes
Mit PowerShell 3.0 geht dies so:
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 42.00:00:00 | Set-ADComputer -Enabled 0
Wer mag, kann dies dann natürlich auch automatisieren.
Für die Mausschubser gibt es aber auch eine nette Freeware: AD Tidy