jueves, 28 de mayo de 2009

PowerShell, Directorio Activo y contraseñas

Si administras un Directorio Activo, te habrás dado cuenta que, a medida que hay más usuarios, mayor es la frecuencia de despistados que te llaman para reestablecer su contraseña. Esta tarea cada vez se vuelve más repetitiva y monótona.

Minimizar al máximo este proceso sin gastarte un duro extra y hacerlo desde tu propio ordenador conectado al dominio es posible si instalas PowerShell y ActiveRoles Management Shell for Active Directory. Estos últimos son unos Cmdlets que ha creado Quest para extender la capacidad de PowerShell al Directorio Activo. Estas dos herramientas unidas en tu ordenador conectado al dominio hacen posible que desde él puedas cambiar la contraseña de un usuario en una sóla línea de código.

Este script ( ADSetUserPass.ps1) escrito en PowerShell amplia esta funcionalidad ofreciendo además las siguientes comprobaciones:
  • Comprueba que el usuario proporcionado existe en el dominio.
  • Comprueba que la contraseña es correcta introduciéndola dos veces.
  • Comprueba que la contraseña tiene al menos 6 caracteres.
Para que este script tenga éxito es conveniente que lo ejecute un usuario que al menos tenga permisos de administración de cuentas en el dominio. Lo más sencillo es utilizar el comando runas especificando como argumento al usuario administrador del dominio. Por otro lado, tengo que aclarar que este script funciona en un dominio llamado DOMINIO. Si tu dominio tiene otro nombre, sustitúyelo en la línea 36 del script:

$userdom = "DOMINIO\"+$user

Más información y utilidades:

PowerGUI, un editor para PowerShell bastante ligero y completo.
La guía del administrador de los Cmdlets para administrar el Directorio Activo.