Usuarios inactivos en Active Directory – Último inicio de sesión de usuarios

¡Hola a todos!

Hay una función muy básica que no sé porqué Microsoft no la ha integrado explícitamente en su Active Directory… me parece muy importante porque muchas veces quedan usuarios sin eliminar en Active Directory por «x» o «y» razón, pasando los días, y los meses, ¡Años! y las cuentas de usuario inactivas (activas en AD pero nadie las utiliza) siguen ahí; no es tan relevante tratándose únicamente de usuarios de dominio (aunque sí deja una brecha de seguridad si, digamos, se trata de un empleado que se retiró y no se elimina/inactiva la cuenta), pero cuando se tiene también integrado el correo (Exchange), el buzón sí ocupa espacio innecesario y estará creciendo poco a poco por correos masivos, spam, etc.

Si bien es cierto, Active Directory tiene las herramientas para poder crear diferentes querys (consultas) de los objetos en él, pero no encontré la forma de poder ver la última fecha de inicio de sesión de los usuarios… Según entiendo no existe pero, si me estoy equivocando, espero que me iluminen mediante los comentarios 😄

Active Directory - Query
Active Directory – Query (Consulta)

Buscando en la web y encontré que muchos recomiendan la utilización de un script que permite generar un archivo CSV con la información de los usuarios del dominio con su respectiva columna de fecha de último inicio de sesión (LastLogon). ¡Excelente!, justo lo que necesitaba; por éste motivo, enfatizo que el código no lo he hecho yo, sino que lo descargué hace ratos y no recuerdo a quién se lo copié, así que le doy las gracias y créditos respectivos a quién corresponda 😅

A continuación, les dejo un enlace para descarga el script de PowerShell:

El script se copia en el Windows Server (probado en 2008, 2012 & 2016), se abre un PowerShell ISE o una consola de PowerShell (dependiendo de la versión del server) y se ejecuta.

Mencionar que, si se trata de la versión 2008, probablemente hay que hacer un paso adicional donde debemos de permitir la ejecución de scripts. Esto lo hacemos ejecutando la siguiente línea de comando en PowerShell:

Set-ExecutionPolicy RemoteSigned
Power Shell - Set-ExecutionPolicy RemoteSigned
Power Shell – Set-ExecutionPolicy RemoteSigned

Si todo esta bien, al ejecutar el script, no retornará ningún mensaje de error y se creará un archivo en C:\lastlogon.csv ; Dicho sea de paso, el nombre y dirección de destino del archivo se puede modificar abriendo el script con un notepad. El archivo CSV es un archivo de texto con campos separados por «,».

C:\lastLogon.ps1
Ejecución del script en PowerShell
Archivo csv generado en C:\lastLogon.csv
Archivo csv generado en C:\lastLogon.csv
Contenido de ejemplo de lastLogon.csv
Contenido de ejemplo de lastLogon.csv

Como nota importante, éste archivo contiene la totalidad de todos los usuarios de AD, por cuanto no está en concreto lo que queremos. Lo que yo recomiendo, es abrirlo con un programa de hoja de cálculo (Calc o Excel), y ordenarlo por fecha o crear un filtro automático.

En Calc (no sé si en Excel pasa…) El formato de fecha no es el adecuado, dado que me pone mm/dd/aaaa (Siendo lo normal, dd/mm/aaaa en mi país), por cuanto no se ordena correctamente por la columna fecha (datetime) aun configurando las celdas con dicho formato de fecha personalizado… por éste motivo, hay que hacer un pequeño tratamiento de los datos. Yo lo hice utilizando las funciones: EXTRAE (Para extraer de la fecha cada parte que la conforma) & CONCATENAR (para unir en el orden correcto la fecha).

Teniendo la fecha correctamente, ya se puede hacer el ordenamiento o filtrado respectivo y así identificar los usuarios que no han hecho inicio de sesión por mucho tiempo.

Ajuste en Calc (Excel)
Ajuste en Calc (Excel)

Bien, espero que ésta información les sea de utilidad. ¡Saludos!

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*