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 $PasswordCambiar 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 $trueCambiar 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 $PasswordCambiar 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 $truePara 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 $trueCambiar 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 $credentialCambiar 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 $trueProbar 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)