Usuarios: ¿Restablecer las contraseñas de todos los usuarios mediante lotes o powershell?

Usuarios: ¿Restablecer las contraseñas de todos los usuarios mediante lotes o powershell?

Necesito restablecer contraseñas de forma masiva en una máquina local (sin red o dominio, solo la máquina) a una sola contraseña; como %1Porcentaje. Me preguntaba si esto era posible con lotes o Power Shell o algún tipo de script.

Respuesta1

Con Powershell (se requieren privilegios de administrador):

  • obtener una nueva contraseña a partir de la entrada del usuario como SecureString
  • Get-Localuser enumera todos los usuarios locales y los canaliza al
  • cláusula donde se compara con los usuarios para excluir
  • Los usuarios restantes se canalizan a Set-Localuser, que establece la contraseña ingresada en el primer comando.

#Requires -RunAsAdministrator
$SecurePassword = Read-Host -Prompt "Enter password for all users" -AsSecureString 
$Exclude = "Administrator","Guest","DefaultAccount"
Get-LocalUser |
  Where {$Exclude -notcontains $_.Name} |
    Set-Localuser -Password $SecurePassword

Respuesta2

Cree un archivo de texto con una extensión cmdcomonuke_users_passwords.cmd

con el siguiente contenido (sustituya el nombre de usuario y la contraseña según sea necesario) y ejecútelo

@echo off
net user username1  new_password
net user username2  new_password
...
net user usernameN  new_password

Otra solución es utilizarWMIpara enumerar automáticamente los usuarios locales y cambiar sus contraseñas.

A continuación se muestra el script VBS con la capacidad de excluir algunas cuentas que deben omitirse. Guárdalo como FileName.vbsy ejecútalo "como administrador"

On Error Resume Next 

strPasswd = "SuperPassword"
strComputer = "." 

Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colItems = objWMIService.ExecQuery _ 
    ("Select * from Win32_UserAccount Where LocalAccount = True") 

For Each objItem in colItems 
    Do While True
        if objItem.Name = "Guest" then Exit Do ' Skip some account
        if objItem.Name = "Administrator" then Exit Do ' Skip some account
        if objItem.PasswordChangeable = False then Exit Do ' 

        objItem.SetPassword strPasswd
        objItem.SetInfo 

        Exit Do
    Loop
Next 

Wscript.Echo "Done."

PD Ejecute estos scripts "como administrador"

información relacionada