/
/

Cómo limpiar Active Directory: buenas prácticas y consejos

Cómo limpiar Active Directory

Active Directory (AD) es uno de esos productos que tienden a saturarse. Cuantos más datos tengas, más difícil será hacer cualquier cosa, desde gestionar usuarios de AD hasta configurar copias de seguridad de AD. Es un producto en el que mucha gente hace cambios cada día y al final acaba siendo como esas cosas que de alguna manera siguen funcionando.

Incluso el departamento de TI más motivado parece acabar siempre con un entorno de Active Directory que tiene montones de cuentas de usuario que ya no se necesitan, GPO adjuntas a OU que la gente ni siquiera sabía que existían y cuentas de equipo que representan equipos desaparecidos hace mucho tiempo. Un día, alguien se sienta frente a los usuarios y equipos de Active Directory (ADUC) y tiene ese momento en el que dice: «¡Vaya! Esto hay que limpiarlo».

Has llegado al lugar adecuado. En este artículo se explica cómo limpiar Active Directory utilizando las mejores prácticas y otros consejos. Si prefieres una guía visual, este tutorial explica cómo limpiar Active Directory paso a paso.

Señales de que necesitas limpiar Active Directory

Cuando ves que AD necesita una limpieza, te das cuenta de que probablemente será una tarea abrumadora y difícil de abordar. Puede que empieces un proyecto para «limpiar cosas», pero pronto te darás cuenta de que hacer clic con el botón derecho y borrar no es suficiente.

Hay muchas maneras de hacer que este proyecto sea un éxito, siendo la primera tarea definir qué significa exactamente «limpiar». Para este artículo, enfocaremos la «limpieza» de AD como la mejora de estos 5 aspectos esenciales.

  • Rendimiento. Un AD saturado puede generar un tráfico de replicación innecesario. Uno de los signos más evidentes del mal funcionamiento de un AD es el tiempo: ¿AD tarda más de lo habitual en autenticar usuarios, buscar objetos de AD o descargar objetos de políticas de grupo?
  • Seguridad.  Los ciberdelincuentes siempre están tratando de explotar a las organizaciones. Una de las formas en que intentan hacerlo es accediendo a las redes mediante el control de cuentas de usuario de Active Directory.
  • Cumplimiento. La limpieza periódica de Active Directory te ayuda a cumplir los mandatos normativos, desde GDPR hasta PCI-DSS.
  • Operaciones de TI. Un Active Directory desordenado dificultará mucho más la gestión a los administradores de TI. Esto puede conducir a la ineficacia en todos los ámbitos, ya que el equipo de TI debe dedicar más tiempo al uso de AD en lugar de a otros proyectos estratégicos.
  • Agilidad empresarial. Active Directory es fundamental para muchas tareas, y una limpieza de AD puede ayudarte a mantenerte ágil y a conservar tu ventaja competitiva.

Un Active Directory mal mantenido

  • Tiene muchos datos sucios (desde cuentas de usuario obsoletas hasta duplicadas).
  • Tiene grupos de distribución vacíos o duplicados.
  • Ofrece una visión deficiente de los permisos de acceso a los grupos de seguridad.
  • Muestra una falta de procesos establecidos para el aprovisionamiento y desaprovisionamiento.
  • No se puede determinar la propiedad de objetos y grupos.
  • Muestra atributos de objeto inexactos o incompletos.

3 atributos de cuentas de usuario no utilizadas

Centrémonos ahora en las cuentas de usuario no utilizadas. Más concretamente, vamos a hablar de los tres atributos que pueden hacer que una cuenta de usuario se pueda «eliminar». Estos atributos son: a) cuentas desactivadas, b) cuentas que no se han utilizado en X días, y c) cuentas con contraseñas caducadas.

Una de las formas más sencillas de encontrar estas cuentas probablemente no utilizadas es utilizar PowerShell. El PowerShell de ActiveDirectory es un módulo que incluye un cmdlet extremadamente útil llamado «Search-AdAccount» que facilita la construcción de consultas y la devolución de exactamente lo que necesitamos. Sin embargo, antes de poder utilizar este cmdlet, tienes que descargar el paquete Remote Server Administration Tools (RSAT) de Microsoft. Una vez instalado RSAT, deberías tener el módulo ActiveDirectory, ¡y ya está listo! Además, para que el siguiente código funcione, suponemos que tienes un PC con Windows que está unido al mismo dominio que los usuarios que quieres encontrar.

Dicho esto, ¡pongámonos manos a la obra!

Encontrar cuentas desactivadas en Active Directory

La primera tarea es encontrar cuentas deshabilitadas. Para encontrar cuentas deshabilitadas, utilizaremos el Search-ADAccount cmdlet. Este cmdlet tiene un único parámetro llamado «Deshabilitado» que hace que esta tarea sea pan comido. Simplemente ejecuta Search-AdAccount -AccountDisabled y listo, se mostrarán todas tus cuentas deshabilitadas. Observa a continuación que he utilizado el parámetro UsersOnly porque este cmdlet también puede encontrar cuentas de equipo deshabilitadas.

C:> Search-ADAccount -UsersOnly -AccountDisabled -Server dc

AccountExpirationDate :
DistinguishedName : CN=Guest,CN=Users,DC=mylab,DC=local
Activado : Falso
LastLogonDate :
LockedOut : Falso
Nombre : Guest
ObjectClass : user
ObjectGUID : 89cfaf2b-c6d8-4ae0-a720-e2da7d201717
PasswordExpired : Falso
PasswordNeverExpires : Verdadero
SamAccountName : Guest
SID : S-1-5-21-4117810001-3432493942-696130396-501
UserPrincipalName :
............

Encontrar cuentas de usuario inactivas en Active Directory

Otra candidato habitual que hay que limpiar son las cuentas de usuario inactivas, que son un poco más difíciles de localizar. «Inactivo» es un término subjetivo, así que para nuestros propósitos vamos a definir «inactivo» como cualquier usuario que tenga un valor de LastLogonTimeStamp superior a 30 días. Vas a encontrar muchos artículos en internet sobre cómo encontrar usuarios inactivos, pero algunas personas no se dan cuenta de que es mucho más fácil que crear complicados filtros LDAP de AD. El soporte es nativo en Search-AdAccount.

Podemos utilizar  Search-AdAccount -AccountInactive -UsersOnly -Timespan 30.00:00:00 para encontrar inmediatamente todas las cuentas de usuario AD que no se han utilizado en 30 días.

Sin embargo, hay una advertencia. Microsoft solo actualiza el atributo LastLogonTimestamp, que es el mismo que LastLogonDate, una vez cada 14 días para evitar problemas de replicación. Debido a esta característica de AD, utilizar este método (o incluso Get-AdUser o Get-AdComputer con el filtro avanzado) no será 100% preciso si estás intentando obtener cuentas con inactividad superior a 14 días. Así que estate atento.

Por último, tenemos que encontrar todos los usuarios de AD que tienen una contraseña caducada que ya no son necesarios. Esto es complicado porque las cuentas de usuario «activas» pueden tener una contraseña caducada si ha caducado recientemente. No solo tengo que encontrar contraseñas caducadas, sino también cuánto tiempo hace que caducaron. Si caducaron, digamos, hace 30 días o más, puedo asumir que estas cuentas de usuario están, efectivamente, inactivas.

Para averiguar cuánto tiempo hace que caducó una contraseña, primero tengo que averiguar la antigüedad máxima de la contraseña según la política de contraseñas del dominio. Puedo hacerlo con el cmdlet Get-AdDefaultDomainPasswordPolicy.

$MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days

A continuación, puedo encontrar todas las cuentas de usuario que tienen una contraseña caducada y luego filtrar las cuentas de esos usuarios viendo la última vez que se estableció su contraseña y asegurándome de que fue antes del tiempo máximo que podía tener la contraseña más 30 (la antigüedad que estoy definiendo para la cuenta).

El código será algo parecido a esto:

Search-AdAccount -PasswordExpired -UsersOnly | Where-Object {((Get-Date) - (Get-AdUser -Filter "samAccountName -eq $_.SamAccountName").PasswordLastSet) -lt ($MaxPasswordAge + 30)}

La próxima vez que busques registros inactivos en AD, asegúrate de echar un vistazo a Search-AdAccount para ver si ya hace lo que estás intentando hacer. ¡Puede que te ahorre mucho tiempo!

Ventajas de una limpieza de AD

Active Directory es el servicio de directorio propietario de Windows, que se calcula que utilizan el 90% de las organizaciones de todo el mundo, según TechRadar.

Su popularidad está bien merecida: AD es fundamental para nuestra vida laboral diaria, ya que permite a las empresas definir quién puede hacer qué en su red, al tiempo que gestiona diversos recursos, dispositivos endpoint y sistemas.

Al limpiar tu base de datos, te aseguras de que tu empresa mantiene la eficiencia operativa, aumenta la integridad de los datos y practica un mejor gobierno de datos. Se trata de un proceso esencial que todos los MSP, MSSP y empresas de TI deben incluir en sus estrategias de mantenimiento para seguir prestando servicios de alta calidad a sus usuarios finales.

Prácticas más recomendadas para la limpieza de Active Directory

Aparte de lo que he mencionado antes (como la búsqueda de cuentas desactivadas e inactivas en Active Directory y todo eso), sería prudente hablar de otras prácticas recomendadas para la limpieza de Active Directory, de modo que tu red de TI siga siendo eficiente, segura y conforme a la normativa.

Limpiar las políticas de grupo obsoletas

Los objetos de política de grupo (GPO) innecesarios pueden ralentizar tu AD. Es aconsejable revisar y desconectar regularmente estos GPO mediante PowerShell o la Consola de administración de directivas de grupo.

Optimizar los scripts de inicio de sesión de los usuarios

Los scripts de inicio de sesión incorrectos pueden afectar significativamente al rendimiento. Para ver el impacto completo de estos scripts, prueba a utilizar PowerShell, en particular el Get-GPResultantSetOfPolicy. Si lo consideras necesario, también puedes forzar una actualización de la directiva de grupo de forma remota.

Auditoría de grupos de seguridad

Como con cualquier otra cosa que administras, es una buena idea comprobar regularmente tus grupos de seguridad utilizando comandos PowerShell como Get-ADGroupMember. Para un script completo sobre la modificación de la membresía de usuario, echa un vistazo a este script de NinjaOne. Recuerda: lo más probable es que los grupos vacíos, inactivos o de un solo usuario no sirvan para nada a tu organización.

Gestionar la replicación de Active Directory

Asegúrate de ajustar los intervalos de replicación y optimizar las topologías para aumentar el rendimiento de AD. Vuelvo a insistir en que «limpiar Active Directory» es mucho más que eliminar cuentas creyendo que es lo mejor. Se trata más bien de un proceso de varios pasos que también requiere que los administradores de TI reorganicen las cuentas de usuario y los grupos de Active Directory. Recomiendo usar este script de NinjaOne para ver tu informe de estado de la replicación de Active Directory.

Gestionar usuarios de Active Directory con NinjaOne

NinjaOne proporciona una herramienta de gestión de Active Directory integrada directamente en su plataforma de gestión de endpoints de confianza. Con NinjaOne, puedes desactivar cuentas fácilmente, desbloquear usuarios, restablecer contraseñas y mucho más, ¡todo desde un solo panel!

Si estás listo, solicita un presupuesto gratuito o mira una demostración.

Adam Bertram es MVP de Microsoft Windows Cloud y Datacenter Management, autor de varios cursos de formación, colaborador habitual de numerosas publicaciones impresas y en línea y ponente en diversos grupos de usuarios y conferencias. Puedes encontrar a Adam en adamtheautomator.com.

Foto de Adam Bertram

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?
×

¡Vean a NinjaOne en acción!

Al enviar este formulario, acepto la política de privacidad de NinjaOne.

Términos y condiciones de NinjaOne

Al hacer clic en el botón «Acepto» que aparece a continuación, estás aceptando los siguientes términos legales, así como nuestras Condiciones de uso:

  • Derechos de propiedad: NinjaOne posee y seguirá poseyendo todos los derechos, títulos e intereses sobre el script (incluidos los derechos de autor). NinjaOne concede al usuario una licencia limitada para utilizar el script de acuerdo con estos términos legales.
  • Limitación de uso: solo podrás utilizar el script para tus legítimos fines personales o comerciales internos, y no podrás compartirlo con terceros.
  • Prohibición de republicación: bajo ninguna circunstancia está permitido volver a publicar el script en ninguna biblioteca de scripts que pertenezca o esté bajo el control de cualquier otro proveedor de software.
  • Exclusión de garantía: el script se proporciona «tal cual» y «según disponibilidad», sin garantía de ningún tipo. NinjaOne no promete ni garantiza que el script esté libre de defectos o que satisfaga las necesidades o expectativas específicas del usuario.
  • Asunción de riesgos: el uso que el usuario haga del script corre por su cuenta y riesgo. El usuario reconoce que existen ciertos riesgos inherentes al uso del script, y entiende y asume cada uno de esos riesgos.
  • Renuncia y exención: el usuario no hará responsable a NinjaOne de cualquier consecuencia adversa o no deseada que resulte del uso del script y renuncia a cualquier derecho o recurso legal o equitativo que pueda tener contra NinjaOne en relación con su uso del script.
  • CLUF: si el usuario es cliente de NinjaOne, su uso del script está sujeto al Contrato de Licencia para el Usuario Final (CLUF).