Мне нужно выполнить массовый сброс паролей на локальной машине (без сети или домена, только на машине) к одному паролю; такой как% 1Percent. Мне было интересно, если это вообще было возможно с пакетной или Power Shell или какой-то сценарий.

2 ответа2

5

С Powershell (требуются права администратора):

  • получить новый пароль от ввода пользователя как SecureString
  • Get-Localuser перечисляет всех локальных пользователей и передает их
  • где пункт, который проверяет против пользователей, чтобы исключить
  • Остальные пользователи отправляются в Set-Localuser, который устанавливает пароль, введенный в первой команде.

#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
0

Создайте текстовый файл с расширением cmd например nuke_users_passwords.cmd

со следующим содержанием (замените имя пользователя и пароль, как вам нужно) и запустите его

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

Другое решение - использовать WMI для автоматического перечисления локальных пользователей и изменения их паролей.

Ниже приведен сценарий VBS с возможностью исключения некоторых учетных записей, которые необходимо пропустить. Сохраните его как FileName.vbs и запустите "как администратор".

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."

PS Запускаю эти скрипты "как администратор"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .