Como detectar equipos obsoletos en AD con oldcmp
Escrito por xavixaus en December 27th, 2010
Este artículo define la forma de detectar y eliminar los equipos obsoletos en Active Directory que hace más de X días que no se usan.
Active Directory que yo sepa de momento no es capaz de hacer un procedimiento de limpieza automático de Active Directory con lo que los equipos que no entran en el dominio o no son eliminados al ser dados de baja de la empresa no son eliminados y el directorio activo queda siempre sucio y lento.
Para poder detectar los equipos obsoletos en Active Directory usaremos el valor pwdLastSet del objeto computer. Este valor corresponde a la última vez que el equipo se comunicó con Active Directory.
Para realizar la detección de los equipos obsoletos es posible hacerlo mediante una consulta en Active Directory como la siguiente:
(&(&(objectcategory=computer)(pwdLastSet<=128785742091190000)))
Lo que ocurre es que el valor pwdLastSet debe estar en Octal y… ¿pero como conseguimos este valor?.
Yo uso esto: Disponemos de una aplicación de terceros llamada oldcmp. la cual es capaz de según una fecha dada obtener la consulta necesaria del directorio activo para obtener el listado de equipos obsoletos.
Desde una línea de comandos ejecutamos: oldcmp /report /age X <donde X es el número de días que queremos usar por ejemplo 180>
Obtendremos un fichero .htm que deberemos abrir:
Ahora seleccionamos el text del campo Search Filter y lo copiamos
(&(objectcategory=computer)(pwdLastSet<=128777925504890000))
Nos conectamos a un Domain Controller y creamos una consulta de Active Directory:
Inicio -> ejecutar -> dsa.msc
Pulsamos con el botón derecho sobre Consultas guardadas -> Nuevo -> Consulta.
Le damos un nombre a la consulta en el campo Nombre y pulsamos sobre Definir consulta…
En el desplegable Buscar: Seleccionamos Búsqueda personalizada.
En la pestaña Opciones avanzadas pegamos el valor Search File que hemos conseguido con el programa oldcmp y pulsamos sobre Aceptar y Aceptar de nuevo.
Ahora en la columna de la derecha en la mmc de Usuarios y equipos de Active Directory nos aparecerán todos los equipos que no se han validado en el dominio durante más de 180 días. (NO SE PUEDEN ELIMINAR TODAVÍA).
Pulsamos con el botón derecho sobre la consulta creada y pulsamos sobre Exportar lista para crear un fichero que podamos usar para hacer un ping a cada uno de los equipos. Esto nos servirá para comprobar realmente si estos se pueden eliminar.
Advertencia: En ocasiones existen equipos que no contactan con Active Directory en 180 días bien por que no se han reiniciado o por que nadie ha iniciado sesión desde ellos, en ese caso aparecerá en esta lista.
Para chequear que todos los equipos que vamos a eliminar van a ser realmente válidos para su eliminación vamos a realizar un último paso que es realizar un ping a la lista de elementos que nos ha devuelto la consulta LDAP.
Para hacerlo podemos seguir este procedimiento:
Suponiendo que el fichero exportado se llama equiposobsoletos.txt desde una línea de comandos ejecutamos el siguiente comando:
(for /F %i in (equiposobsoletos.txt) do ping -n 1 %i) >resultado.txt
Cuando tengamos el proceso finalizado debemos ejecutar el siguiente comando para detectar los equipos que responden a ping:
find “Haciendo ping a” resultado.txt
El resultado de este find son los equipos que no debemos eliminar. También podemos hacer un ping inverso “ping –a” para detectar si realmente no es un problema con el dns.
Finalmente y para terminar con este proceso ya podemos eliminar todos los equipos devueltos por la consulta excepto los listados en el paso anterior.
Saludos MegaCracks y hasta la próxima.
Artículos relacionados:
- Como sacar listado y restaurar usuarios o equipos eliminados en Active Directory.
- Solución al problema “Acceso denegado” al agregar equipos ya existentes al dominio.
- Script para enviar mail con equipos de AD < ServicePack deseado
- Parte 1.- Como asignar GPO únicamente a objetos Workstation en AD.
- Como hacer un listado de los parches necesarios por equipos en WSUS mediante una consulta SQL.
December 6th, 2011 at 10:39 pm
Hola soy Vane y tu articulo esta buenisimo la verdad me ayudo muchisimo tu texto, debido a que dicha informacion es muy dificil de conseguir en español.
M,uchas Gracias
December 14th, 2011 at 5:39 pm
Simplemente acojonante.
Muchísmas gracias.