Búsqueda de sitios web

Cómo crear, cambiar y probar contraseñas usando PowerShell


La automatización es la clave para optimizar las tareas de administración de Active Directory. En este artículo, le mostraré cómo crear, cambiar y probar contraseñas de usuario con scripts de PowerShell.

Instalación del módulo AD PowerShell

Antes de poder usar PowerShell para administrar Active Directory, debe instalar el módulo Active Directory PowerShell. Si está utilizando Windows 10 para administrar AD, primero instale las herramientas de administración remota del servidor (RSAT).

Windows 10 versión 1809

Si está utilizando Windows 10 versión 1809, RSAT se incluye como característica bajo demanda, por lo que no necesita descargar el paquete RSAT. Para habilitar RSAT en Windows 10 versión 1809, ejecute el siguiente comando en una consola PowerShell elevada:

$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password
  • Cambiar la contraseña de un usuario de AD

Para crear una nueva contraseña de usuario de AD usando PowerShell, use el siguiente script. Se le pedirá que especifique el nombre de usuario de una cuenta AD existente y luego una nueva contraseña, que debe cumplir con los requisitos de complejidad de la contraseña del dominio.

$User = (Read-Host -Prompt "Username")
$Usrstring = "WinNT://localhost/"+$User  
$usr=[ADSI] $Usrstring  
$usr.passwordExpired = 1  
$usr.setinfo()

Pero puedes obligar a los usuarios a cambiar las contraseñas de sus cuentas AD usando Set-ADAccountPassword:

$User = (Read-Host -Prompt "Username")
Set-Aduser -Identity $User -ChangePasswordAtLogon $true
  • Cambiar una contraseña de administrador

Para cambiar la contraseña del administrador de AD, escriba administrador cuando se le solicite un nombre de usuario utilizando el siguiente código:

$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password
  • Cambiar el atributo "la contraseña nunca caduca"

Para configurar el atributo "la contraseña nunca caduca" en una cuenta de usuario local, use Set-LocalUser:

$User = (Read-Host -Prompt "Username")
Set-LocalUser -Name $User -PasswordNeverExpires $true

Para configurar el atributo "la contraseña nunca caduca" en una cuenta de usuario de Active Directory, use Set-ADUser:

$User = (Read-Host -Prompt "Username")
Set-ADUser -Identity $User -PasswordNeverExpires $true
  • Cambiar la contraseña de la cuenta de servicio

Para cambiar las propiedades de inicio de sesión de un servicio, utilice los cmdlets Get-Credential y Set-Service. El siguiente código cambia el servicio AppReadiness de usar la cuenta del sistema local a usar el nombre de usuario y la contraseña que se ingresan cuando se le solicita. Tenga en cuenta que el parámetro Set-Service -Credential solo se admite en PowerShell 6 y versiones posteriores.

$credential = Get-Credential
Set-Service -Name "AppReadiness" -Credential $credential
  • Cambiar la fecha de vencimiento de una contraseña en Active Directory

Si necesita extender el tiempo que un usuario puede conservar su contraseña actual, establezca el atributo pwsLastSet en la fecha actual, dándole tiempo adicional hasta que Active Directory lo obligue a cambiar su contraseña. Si borra el atributo y luego lo establece en -1, se establecerá en la fecha y hora actuales.

Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Accounts,DC=ad,DC=contoso,DC=com" | 
Set-ADUser -ChangePasswordAtLogon $true

Probar las credenciales de un usuario

Si desea probar si las credenciales de un usuario funcionan, todo lo que necesita hacer es iniciar un proceso utilizando su nombre de usuario y contraseña. El siguiente código inicia cmd.exe usando las credenciales ingresadas cuando se le solicita.

Proceso de inicio -FilePath cmd.exe /c -Credential (Obtener-Credencial)

Artículos relacionados