Restablecer una contraseña de usuario en Active Directory con PowerShell

En este artículo, consideraremos cómo cambiar (o restablecer) las contraseñas de Active Directory de un usuario mediante el cmdlet de PowerShell. Set-ADAccountPassword.

La mayoría de los administradores suelen cambiar (restablecer) las contraseñas de los usuarios de AD a través del complemento gráfico dsa.msc (Usuarios y equipos de Active Directory). Para hacerlo, debe ejecutar la consola ADUC, buscar la cuenta de usuario en el dominio AD, hacer clic derecho sobre ella y seleccionar Restablecer la contraseña. Esta es una forma simple y directa de restablecer la contraseña del usuario seleccionado actualmente.

restablecer la contraseña de usuario utilizando usuarios y computadoras del directorio activo de la consola mmc

Pero no podrá usar la consola ADUC para restablecer las contraseñas de varios usuarios o usar el procedimiento de restablecimiento de contraseña como una de las acciones del script de automatización. En este caso, puede restablecer las contraseñas de AD mediante el símbolo del sistema de PowerShell.

Contenido:

  • Uso de Set-ADAccountPassword para restablecer la contraseña del usuario en Active Directory
  • Uso de PowerShell para restablecer varias contraseñas de usuario de AD

Uso de Set-ADAccountPassword para restablecer la contraseña del usuario en Active Directory

Para restablecer una contraseña de usuario en AD, el Set-ADAccountPassword cmdlet, es parte del módulo Active Directory para Windows PowerShell (en la versión de escritorio de Windows es parte de RSAT, y en las ediciones de servidor se instala como un componente separado de Complementos de AD DS y herramientas de línea de comandos). Antes de usar los cmdlets de AD, debe importarlos a una sesión de PowerShell:

Import-module ActiveDirectory

Para restablecer una contraseña de usuario, su cuenta debe tener los privilegios correspondientes en el dominio AD. Por supuesto, de forma predeterminada, los usuarios de AD que no son administradores no pueden restablecer las contraseñas de otras cuentas. Para permitir que un usuario o un grupo de usuarios restablezca las contraseñas de otros usuarios, debe delegar los permisos para restablecer la contraseña en el contenedor de AD (unidad organizativa) o agregar una cuenta al grupo de dominio integrado Operadores de cuentas.

Para verificar que su cuenta tiene los permisos para restablecer la contraseña de un usuario de AD específico, abra sus propiedades, vaya a la pestaña Seguridad -> Avanzado -> Acceso efectivo -> especifique el nombre de su cuenta -> asegúrese de tener Restablecer la contraseña permiso.

permisos de anuncios para restablecer la contraseña del usuario

Para restablecer una contraseña para el usuario jliebert y establezca una nueva contraseña myP @ ssw0rd112, ejecute este comando:

Set-ADAccountPassword jliebert -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “myP@ssw0rd112” -Force -Verbose) –PassThru

Set-ADAccountPassword: restablece la contraseña del usuario del anuncio desde powershell

De forma predeterminada, el cmdlet devuelve el objeto y no muestra nada en la consola. Para mostrar la información sobre el objeto de usuario en AD, usamos el -Pasar a través de parámetro.

Puede especificar sAMAccountName (como en nuestro caso), objectGUID, SID del usuario o un DN (nombre distinguido, por ejemplo, CN = jliebert, OU = Users, DC = woshub, DC = com) como nombre de usuario.

Si no especifica el -Reiniciar parámetro al cambiar una contraseña de usuario, debe ingresar manualmente las contraseñas de cuenta nueva y antigua.

Nota. Al restablecer la contraseña mediante el cmdlet Set-ADAccountPassword, puede ver el siguiente error:

Set-ADAccountPassword: The password does not meet the length, complexity, or history requirement of the domain.

Significa que la contraseña del usuario tiene algunos requisitos de complejidad, longitud, etc. definidos en la política de contraseña de dominio o en la política de contraseña detallada a la que está sujeta la cuenta.

Si tiene el historial de comandos de PowerShell habilitado y no desea que las contraseñas se muestren en la consola PoSh como texto sin formato, debe convertir la contraseña en una cadena segura (puede leer más sobre la protección con contraseña en los scripts de PowerShell aquí) en el mismo como cuando se crea una nueva cuenta de usuario:

$NewPasswd=Read-Host "Enter a new user password" –AsSecureString

ingrese la contraseña como cadena de seguridad

Ahora restablezca la contraseña:

Set-ADAccountPassword jliebert -Reset –NewPassword $NewPasswd –PassThru

Al restablecer una contraseña, puede forzar el desbloqueo de la cuenta, incluso si está bloqueada (sobre cómo encontrar qué computadora bloquea la cuenta, lea el artículo Identificar el origen de los bloqueos de cuentas en Active Directory):

Unlock-ADAccount –Identity jliebert

Para que un usuario cambie una contraseña en el próximo inicio de sesión en el dominio, ejecute el siguiente comando:

Set-ADUser -Identity jliebert -ChangePasswordAtLogon $true

Puede combinar el comando de cambio de contraseña y el requisito de cambiar la contraseña (este es el atributo del objeto userAccountControl) en el resumen de PowerShell:

Set-ADAccountPassword jliebert -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

Con el cmdlet Get-ADUser, puede asegurarse de que la contraseña se haya restablecido correctamente y mostrar la última fecha del cambio de contraseña de la cuenta:

Get-ADUser jliebert -Properties * | select name, pass*

get-aduser última fecha de cambio de contraseña

Al restablecer la contraseña, el EventID 4724 se registra en el registro de seguridad del controlador de dominio (DC). Este evento puede ayudarlo a verificar quién restableció la contraseña de usuario en AD.

Uso de PowerShell para restablecer varias contraseñas de usuario de AD

Arriba hemos mostrado cómo restablecer la contraseña de un solo usuario de AD desde la consola de PowerShell. Consideremos otro escenario cuando necesite cambiar las contraseñas de varios usuarios a la vez.

El caso más fácil es cuando tiene que restablecer las contraseñas de los usuarios con las mismas propiedades de la cuenta AD. Por ejemplo, necesita cambiar las contraseñas de todos Departamento de ventas usuarios al mismo y hacer que lo cambien en el siguiente inicio de sesión:

get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

Consideremos otro caso. Supongamos que tiene un archivo CSV / Excel que contiene una lista de usuarios de los que desea restablecer las contraseñas y establecer una contraseña única para cada usuario. Este es el formato del archivo users.csv:

sAMAccountName;NewPassword
acidicjustine;Pa$$w0r1
josephomoore;N$isory01
simonecole;k@32d3!2

Con este script de PowerShell, puede restablecer una contraseña de cada cuenta en el archivo csv especificado:

Import-Csv users.csv -Delimiter ";" | Foreach {
$NewPass = ConvertTo-SecureString -AsPlainText $_.NewPassword -Force
Set-ADAccountPassword -Identity $_.sAMAccountName -NewPassword $NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $false
}

Después de que se ejecute este código, se establecerá una nueva contraseña única para todos los usuarios de AD en el archivo.

Artículos Interesantes