El administrador puede cambiar la contraseña de los usuarios locales en la computadora mediante el complemento gráfico Usuarios y grupos locales (lusrmgr.msc). Para cambiar la contraseña de un usuario de dominio de AD, los usuarios y la computadora de Active Directory (ADUC) La consola GUI se utiliza principalmente. Sin embargo, en algunos casos, el administrador puede necesitar cambiar la contraseña del usuario desde el símbolo del sistema o dentro de algún script. En este artículo mostraremos cómo administrar las contraseñas de los usuarios (tanto locales como de dominio) usando PowerShell.

¿Cómo cambiar la contraseña de usuario de Active Directory con PowerShell?

Para cambiar una contraseña de usuario de Active Directory, use el Establecer ADAccountPassword cmdlet de la Módulo de Active Directory para Windows PowerShell. Por supuesto, el usuario que ejecuta el cmdlet debe tener privilegios de administrador de dominio o debe ser delegado para restablecer las contraseñas de los usuarios de AD.

Antes de usar el cmdlet Set-ADAccountPassword, debe importar este módulo a una sesión de PowerShell:

Import-Module ActiveDirectory

La contraseña en la memoria de la computadora debe almacenarse preferiblemente de forma protegida, por lo que puede solicitar al administrador que especifique la contraseña de la siguiente manera:

$newPass=Read-Host "Enter the new user password" -AsSecureString

Ingrese la nueva contraseña en la consola de PowerShell.

powershell cambiar contraseña de usuario local

Es mejor especificar el nombre de la cuenta de AD en forma de samAccountname. Por ejemplo, para cambiar la contraseña del usuario jkelly, ejecute el comando:

Set-ADAccountPassword jkelly -NewPassword $newPass

powershell cambiar contraseña de usuario

Puede establecer una nueva contraseña de usuario directamente dentro del código del script:

Set-ADAccountPassword jkelly–NewPassword (ConvertTo-SecureString -AsPlainText –String "St0ngPwd@d" -force)

Si desea que el usuario cambie la contraseña en el próximo inicio de sesión, ejecute el comando:

Set-ADUser jkelly -ChangePasswordAtLogon $True

powershell cambiar contraseña

Puede restablecer la contraseña de varios usuarios a la vez (suponga que los nombres de cuenta se almacenan en un archivo de texto sin formato user_to_reset.txt). Utilice este guión:

Get-Content C:PSuser_to_reset.txt | Set-ADAccountPassword -NewPassword $newPass -Reset

¿Cómo cambiar la contraseña de una cuenta local de Windows?

Para cambiar las contraseñas de los usuarios locales de Windows, puede utilizar el ADSI (Interfaz de servicios de Active Directory), que se puede usar para interactuar con Active Directory o con computadoras independientes.

Abra el símbolo del sistema de PowerShell y enumere las cuentas de usuario locales en la computadora actual:

get-wmiobject win32_useraccount

powershell cambiar contraseña usuario local

También puede mostrar una lista de usuarios locales como esta:

[adsi]$localPC = "WinNT://."

$localPC.Children | where {$_.Class -eq "user"} | ft name, description –auto

Para restablecer una contraseña de usuario local, primero seleccione el usuario (en este ejemplo, el nombre de la cuenta local es ConfRoom):

[adsi]$user = "WinNT://./ConfRoom,user"

Establecer la contraseña:

$user.SetPassword("newP@s32w02rd")

Además, puede solicitar un cambio de contraseña en el próximo inicio de sesión:

$user.Put("PasswordExpired",1)

Queda por guardar los cambios en la cuenta de usuario:

$user.SetInfo()

powershell cambiar contraseña de usuario directorio activo

Los mismos comandos se pueden utilizar para cambiar la contraseña del usuario en equipos remotos. Es suficiente para reemplazar [adsi]$usuario = ″WinNT://./ConfRoom,usuario″ con el comando [adsi]$usuario = ″WinNT://RemotePCName/ConfRoom,usuario″.

Para establecer la misma contraseña para todos los usuarios locales, utilice el siguiente script:

$NewPass = "ThisIsNewP@33"

$localusers = Get-WmiObject -Class Win32_UserAccount -ComputerName $env:COMPUTERNAME -Filter LocalAccount="true" | select -ExpandProperty name

foreach ($user in $localusers)

{

$user

([adsi]"WinNT://$env:COMPUTERNAME/$user").SetPassword("$NewPass ")

}

Recomendado para ti