Cómo identificar cuentas de usuario inactivas en Active Directory
El acceso de los empleados a los sistemas de la empresa debería desactivarse cuando alguien se va. Pero en épocas de menor actividad, especialmente en pequeñas empresas sin un equipo de TI dedicado, esto se pasa por alto con más frecuencia de la debida. Así es como se acaban con cuentas persistentes que podrían suponer un riesgo para la seguridad, por no mencionar los costes de licencia innecesarios. Por lo tanto, averiguar quién sigue con cuentas activas no solo es una buena práctica, sino que es fundamental para mantener la seguridad. Usar PowerShell puede facilitar mucho esto, sobre todo si no se dispone de una herramienta de gestión sofisticada. El objetivo es identificar las cuentas que no se han utilizado durante un tiempo y, tal vez, desactivarlas o revisarlas.
Cómo encontrar cuentas de usuario inactivas con PowerShell
Lamentablemente, cuando un empleado se va, no siempre nos avisan de inmediato, sobre todo si RR. HH.y TI no están sincronizados o no hay automatización implementada. Por eso, revisar las cuentas de usuario periódicamente es una buena idea: ayuda a detectar esas cuentas fantasma que, de alguna manera, permanecieron activas. El cmdlet Search-ADAccount de PowerShell es muy útil, ya que puede extraer información directamente de Active Directory. Con él, puede ver qué cuentas no han iniciado sesión durante mucho tiempo y decidir qué hacer con ellas.
Encuentra usuarios que no han iniciado sesión recientemente
Este comando ayuda a identificar las cuentas que aún están habilitadas, pero que no se han usado durante un tiempo. Esto funciona porque ofrece una instantánea de las cuentas que podrían estar obsoletas, pero que aún no se han deshabilitado. El comando también ordena los resultados por fecha de último inicio de sesión, de modo que las más antiguas aparecen en primer plano, lo que facilita la revisión.
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 100.00:00:00 | Where {$_. Enabled -eq "True"} | sort -property LastLogonDate -desc | ft Name, LastLogonDate, Enabled -autosize
En este caso, el parámetro -TimeSpan limita la búsqueda a los usuarios que no han iniciado sesión en más de 100 días (puede ajustar los días).El formato es días.horas:minutos:segundos. Sinceramente, es un poco raro, pero parece funcionar correctamente una vez que se le coge el truco. En algunas configuraciones, puede que sea necesario un pequeño ajuste o un buen reinicio del equipo que ejecuta el comando si persiste.
En la práctica, esta lista te muestra quién ha estado inactivo durante un tiempo para que puedas considerar desactivar o eliminar esas cuentas. Además, puedes modificar el mismo comando para identificar también las cuentas de ordenador; simplemente cambia «UsersOnly» por «ComputerOrCreate» para borrar las cuentas de dispositivo antiguas. Y si quieres algo más sofisticado, configura esto como una tarea programada para que te envíe un informe semanal o mensual por correo electrónico, para que siempre sepas qué cuentas están pendientes de revisión.
Una pequeña advertencia: dependiendo de su configuración de AD, ejecutar estos comandos podría requerir privilegios de administrador o módulos específicos instalados. Y, por supuesto, si no ve los resultados esperados, compruebe si su PowerShell tiene cargado el módulo de Active Directory; puede hacerlo con Import-Module ActiveDirectory.
Ah, y como Windows tiene que complicar las cosas un poco más de lo necesario, a veces se obtienen falsos positivos o se pasan por alto algunas cuentas. Ten en cuenta que no siempre es perfecto, así que es recomendable revisarlo manualmente después de ejecutar el script.
Artículos relacionados
¿Te resultó útil este artículo?