Изменить (сбросить) пароль пользователя 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).

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

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

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

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

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

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение 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

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

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

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*

При сбросе пароля на контроллере домена (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

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

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

net user a.novak /domain *

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

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

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago