Active Directory: Resetear la caducidad de contraseña con Powershell

Erase una vez un dominio cuya política de contraseñas no expiraba nunca. Los usuarios eran felices.
Pero llegó el responsable de seguridad y estableció una política de caducidad de contraseñas, con lo que todas las password expiraron a la vez.
Si queremos evitar semejante caos, podemos resetear la caducidad de la contraseña de los usuarios a la fecha actual para evitar que caduquen inmediatamente en cuanto aplique la política. No evitaras que los usuarios se pongan tristes, pero al menos no estarán enfadados...

El atributo PwdLastSet guarda la ultima fecha en la que se cambió la password, y es lo que se basa el sistema para avisarnos si la contraseña esta a punto de expirar o no.

Por desgracia no podemos cambiar el atributo y poner la fecha que nos de la gana, es un atributo protegido y solo permite a los administradores establecer un 0 para obligar a resetear la password o un -1 para que almacene la fecha actual como ultimo cambio de password.
Además el -1 solo permite aplicarlo cuando el valor actual del atributo es 0.

Para resetear la caducidad de la contraseña a un grupo de usuarios:

$Dom='LDAP://DC=Dominio,DC=local'

$usuarios=get-content("usuarios.txt")
foreach ($usuario in $usuarios)
{
$objDomain = New-Object System.DirectoryServices.DirectoryEntry $Dom
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = "(&(objectCategory=person)(objectClass=user)(samAccountName=" + $usuario + "))"

$Result1 = $objSearcher.FindOne()
if ($Result1 -ne $NULL)
{ 
$objuser=$Result1.GetDirectoryEntry()
write-host $objuser.samaccountname -fore green
#reseteamos la fecha de cambio de password
$objuser.Put("PwdLastSet", 0)
$objuser.setinfo()
#asignamos la fecha actual como ultimo cambio de password
$objuser.Put("PwdLastSet", -1)
$objuser.setinfo()
}
else
{
write-host "No existe usuario $usuario"
}

}#fin foreach
Si eres un poco previsor puedes hacer grupos de usuarios para resetear la caducidad durante distintos dias y asi escalonar los cambios de contraseñas.

Comentarios