Изменить (сбросить) пароль пользователя Active Directory из ADUC и PowerShell

В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или нескольких пользователей Active Directory с помощью графической оснастки Active Directory Users and Computers, из командной строки, а также с помощью PowerShell командлета Set-ADAccountPassword .

Изменить пароль пользователя домена из графической консоли Active Directory

Для сброса пароля пользователя Active Directory можно использовать графическую оснастку dsa.msc (Active Directory Users & Computers — ADUC ). Воспользуйтесь поиском в консоли ADUC и найдите учетную запись пользователя, которому нужно изменить пароль. Щелкните по нему правой кнопкой и выберите пункт “Смена пароля” (Reset password).

консоль active directory users and computers изменить пароль пользователя

Укажите новый пароль (дважды). Здесь можно включить две опции:

  • User must change password at next logon – если вы хотите, чтобы пользователь сам задал себе новый пароль при следующем входе;
  • Unlock user’ s account – включите эту опцию, если вы хотите разблокировать пользователя (если учетная запись заблокирована политикой безопасности AD из-за многократных попыток входа с неверным паролем).

задать новый пароль для пользователя домена

Это самый просто и интуитивно понятный способ сброса пароля пользователя домена.

Также в свойствах пользователя на вкладке редактора атрибутов AD вы можете найти информацию о дате последней смены пароля. Это значение хранится в атрибуте пользователя pwdLastSet .

атрибут pwdLastSet пользователя AD

Для сброса пароля ваша учетной запись должна обладать соответствующими правами. По-умолчанию обычные пользователи AD не могут сбросить пароль других аккаунтов. Такие права есть только у учетных записей с правами администратора домена (Domain Admins), или Account Operators. Вы можете предоставить другим группам пользователям право на сброс паролей в определенных OU с помощью делегирования. По ссылке доступен пример делегирования прав на сброс паролей и разблокировку пользователей группе HelpDesk.

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.

Active Directory эффективные разрешения на сброс пароля пользователяeffektivnie_rasresheniya_reset_password

Как сбросить пароль пользователю Active Directory с помощью PowerShell?

Вы можете использовать команды PowerShell для сброса пароля пользователя в AD. Для этого можно использовать используется командлет Set-ADAccountPassword , входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT , а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:

Import-module ActiveDirectory

Чтобы сбросить пароль для пользователя dakimov и установить новый пароль SuperStr0n@p1, выполните команду:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “SuperStr0n@p1” -Force -Verbose) –PassThru

Set-ADAccountPassword сброс пароля в Active Directory из Powershell

alert]Для автоматической генерации сложный паролей пользователям вы можете использовать метод GeneratePassword, описанный в статье Генерация случайных паролей с помощью PowerShell . [/alert]

По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в AD мы используем параметр –PassThru .

В качестве имени пользователя можно указать sAMAccountName (как в нашем случае), objectGUID, SID пользователя , или его DN (Distinguished Name, например CN=Akimov,OU=Users,DC=remontka,DC=ru).

Если при смене пароля пользователя не указывать параметр –Reset , необходимо указать старый и новый пароль учетной записи.

Примечание . Если при сбросе пароля с помощью командлета Set-ADAccountPassword появляется ошибка:

Set-ADAccountPassword : The password does not meet the length, complexity, or history requirement of the domain.

Это означает что, новый пароль не соответствует требования сложности, длины и т.д., заданным в доменной политике паролей или гранулированной политике паролей , действующей на учетную запись пользователя.

Результирующие настройки парольной политики пользователя в домене можно вывести так:

Get-ADUserResultantPasswordPolicy -Identity a.novak

Если у вас включено ведение истории PowerShell команд , и вы не хотите, чтобы пароли в открытом виде сохранялись в сессии PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь ):

$NewPasswd=Read-Host "Введите новый пароль пользователя" –AsSecureString

задать новый пароль пользователя в ad из powershell

Теперь можно задать новый пароль пользователю:

Set-ADAccountPassword dakimov -Reset –NewPassword $NewPasswd –PassThru

При сбросе пароля можно принудительно снять блокировку ученой записи , если она была заблокирована ранее (как найти с какого компьютера блокируется учетная запись, смотрите в статье Поиск источника блокировки пользователя в Active Directory ):

Unlock-ADAccount –Identity dakimov

Чтобы пользователь при следующем входе в домен самостоятельно сменил данный пароль на новый, нужно изменить его свойства в AD , выполнив команду:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $true

Вы можете совместить в одной строке команду смены пароля и включение требования сменить пароль ( атрибут userAccountControl ):

Set-ADAccountPassword dakimov -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

С помощью командлета Get-ADUser вы можете убедиться, что пароль сброшен успешно. Выведите время последней смены пароля аккаунта:

Get-ADUser dakimov -Properties * | select name, pass*

Get-ADUser время последней смены пароля

При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя .

Вы можете узнать, когда истекает срок действия пароля пользователя согласно текущим настройкам политики паролей с помощью PowerShell команды:

Get-ADUser -Identity avivanov -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

PowerShell скрипт для сброса пароля нескольких пользователей AD

Выше мы показали, как из PowerShell сбросить пароль одного пользователя в AD. Рассмотрим теперь другой сценарий – когда вам нужно сменить пароли сразу нескольких пользователей.

Например, вы хотите сбросить пароль всем сотрудникам департамента Sales на одинаковый и заставить сменить его при следующем входе. Вы можете использовать параметр –Filter для выбора пользователей с определенным значением в одном из атрибутов:

get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

Рассмотрим еще один пример. Допустим, у вас есть CSV/Excel файл, в котором содержится список пользователей, которым нужно сбросить пароли и уникальный пароль для каждого пользователя. Формат файла users.csv:

sAMAccountName;NewPassword_x000D_aivanov;PaSSde0r1_x000D_bpetrov;New$isde01_x000D_ssidorov;k@nndj!223

С помощью следующего скрипта PowerShell можно сбросить пароль для каждой учетной записи пользователя из CSV файла:

Import-Csv users.csv -Delimiter ";" | Foreach {
$NewPass = ConvertTo-SecureString -AsPlainText $_.NewPassword -Force
Set-ADAccountPassword -Identity $_.sAMAccountName -NewPassword $NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $false
}

После выполнения данного кода всем пользователям в файле будет установлен новый уникальный пароль.

Изменить пароль пользователя в домене из командной строки

Если на компьютере не установлена консоль ADUC, или модуль RSAT-AD-PowerShell, вы можете использовать консольную команду net use для сброса пароля. Чтобы получить информацию о пользователе в домене, выполните команду:

net user a.novak /domain

В командной строке показана базовая информацию о пароле пользователя в домене:

Password last set            4/20/2022 2:10:05 AM_x000D_Password expires             Never_x000D_Password changeable          4/21/2022 2:10:05 AM_x000D_Password required            Yes_x000D_User may change password     Yes_x000D_Last logon                   4/20/2022 2:58:47 AM_x000D_Logon hours allowed   All

net user: команда просмотр информация о пользователе домена и его пароле

Из значения Last Logon можно узнать, когда пользователь входит в домен последний раз. Чтобы получить более подробную информацию об истории входа пользователя в домен, смотри статью .

Чтобы сбросит пароль этого пользователя, выполните команду:

net user a.novak /domain *

net user domain сбросить пароль пользователя

Укажите новый пароль и подтвердите его:

Type a password for the user: xx_x000D_Retype the password to confirm: xx_x000D_The command completed successfully.
EnglishRussianUkrainian