Surgió el requerimiento de saber que usuarios de Active Directory tienen configurado para que nunca venza su clave. Esto a partir de que el gerente del área detecto un usuario que tenia esta configuración. Pues bien vamos a ver esto es muy fácil con powershell.
En este caso lo voy a ejecutar desde un controlador de dominio aunque puedo tener instalado localmente en mi estación de trabajo el powershell y el modulo de active directory, pero no es el camino que tomare hoy.
Abrimos la consola de powershell como administrador. Tengo la costumbre de ejecutar como administrador para tener todos los privilegios posibles a la hora de ejecutar los comando que quiero.
En este caso lo voy a ejecutar desde un controlador de dominio aunque puedo tener instalado localmente en mi estación de trabajo el powershell y el modulo de active directory, pero no es el camino que tomare hoy.
Abrimos la consola de powershell como administrador. Tengo la costumbre de ejecutar como administrador para tener todos los privilegios posibles a la hora de ejecutar los comando que quiero.
- Import-Module Activedirectory
Importamos el modulo de Active Directory
Genial. Ahora veamos que atributo corresponde al vencimiento o no de la clave, para eso veremos todos los atributos disponibles en un usuario de Active Directory. - Get-ADuser -Filter * -Properties * | Get-Member
Veremos listado todos los atributos para los usuarios de Active Directory. El que corresponde a la caducidad o no de la clave es el atributo PasswordNeverExpires. Bien ahora vamos a buscar para un usuario en particular su configuración de atributo PasswordNeverExpires para ver que valores toma. En el siguiente ejemplo uso un usuario creado de prueba, Nombre del usuario de prueba: Jorge Soler, Alias de usuario: jsoler - Get-ADuser jsoler -Properties PasswordNeverExpires | FT Name, SAMAccountName ,PasswordNeverExpires
Perfecto. Vemos que los valores que toma el atributo PasswordNeverExpires es True o False. Es un atributo del tipo Boolean. Bueno, entonces lo que queremos ahora es ver todos los usuarios que tienen la configuración de PasswordNeverExpires en True (Verdadero). - Get-ADuser -Filter * -Properties PasswordNeverExpires | where-object {$_.PasswordNeverExpires -eq $true} | FT Name, SAMAccountName ,PasswordNeverExpires
Genial!!! Funciona.
Seria mucho mas practico poder guardar el resultado en un archivo para analizarlo luego. el siguiente comando lo exporta a un archivo .csv para que podamos importarlo desde una aplicación de planilla de calculo. - Get-ADuser -Filter * -Properties PasswordNeverExpires | where-object {$_.PasswordNeverExpires -eq $true} | Select Name, SAMAccountName ,PasswordNeverExpires | Export-CSV -Path c:\datosSalida.csv -NoTypeInformation
Bueno espero que haya sido de ayuda, Reporte enviado.
Saludos.