Причин, по которым может понадобиться сброс пароля администратора домена Active Directory возможно придумать массу – начиная от обычного разгильдяйства, заканчивая вариантами умышленных действий. В любом случае, есть задача и в данной статье будет представлено ее техническое решение.
Пару слов о методе решения. Его суть сводится к офлайн модификации базы данных Active Directory. Модифицировать будем учетную запись администратора (Administrator) средствами PowerShell модуля DSInternals. Модуль инсталлируется на отдельно стоящий сервер, к которому будет подключен системный диск контроллера домена.
DSInternals обладает внушительными возможностями, в том числе по сбросу паролей учетных записей Active Directory, их включению и модификации основной группы. Все действия возможно выполнять на самой базе ndts.dit имея в распоряжении копии каталога NTDS и реестра контроллера домена. В случае наличия конфигурации нескольких контроллеров домена, сделанные изменения будут штатно реплицированы.
Сброс пароля администратора домена Active Directory
Выполнение описанных ниже действий подразумевает обязательное наличие резервных копий (бекапов)
Мой лабораторный стенд будет состоять из 3-х виртуальных машин:
dc01.corp.ait.in.ua и dc02.corp.ait.in.ua – контроллеры домена
Some Host – не доменный хост с установленным модулем DSInternals
Первым шагом будет выключение контроллера dc02.corp.ait.in.ua и подключение его системного диска к серверу Some Host.
После подключения диска к серверу Some Host, в диспетчере дисков переводим его в состояние Online.
Устанавливаем модуль DSInternals
1 | Install-Module DSInternals -Force |
Первым делом необходимо получить загрузочный ключ (boot key). С его помощью шифруются все хранимые хеши паролей Active Directory в базе ntds.dit. Добывается он с файлов реестра, которые доступны по пути “E:\Windows\System32\config\SYSTEM” Воспользуемся коммандлетом Get-BootKey:
1 | Get-BootKey -SystemHiveFilePath "E:\Windows\System32\config\SYSTEM" |
Далее, получим сведения об аккаунте Administrator. Для этого выполняем:
1 | Get-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey a2d2082ad0aed16cdb6a678303b96b99 |
Будет интересовать активирован ли аккаунт или нет.
как показано на скриншоте, аккаунт деактивирован. Включаем учетную запись коммандлетом Enable-ADDBAccount:
1 | Enable-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit" |
В завершение, осталось установить новый пароль. Для этого выполняем:
1 | Set-ADDBAccountPassword -SamAccountName 'administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey a2d2082ad0aed16cdb6a678303b96b99 |
Отключаем диск от виртуального сервера Some Host и включаем контроллер домена dc02.corp.ait.in.ua. Стоит заметить, что dc01.corp.ait.in.ua все это время работал. После включения второго он примет входящую репликацию сделанных изменений.
Обязательно выполняем проверку репликации! Для быстрой диагностики ее статуса я использую проверенную годами тулу – Active Directory Replication Status Tool. Конечно она уже устарела и любит “жить своей жизнью” на последних версиях Windows Server, но задачу свою выполняет. Скачать ее можно по следующей ссылке.
Выводы
Начатое в предыдущей статье знакомство с функционалом PowerShell модуля DSInternals было продолжено весьма интересным кейсом – “Сброс пароля администратора домена Active Directory”. В рамках его были продемонстрированы практические шаги по включению и сбросу пароля аккаунта администратор (Administrator) средствами PowerShell модуля DSInternals.
В случае если контроллер домена не виртуальная машина и его диск невозможно подключить к другому серверу, необходимо создавать загрузочный диск с модулем DSInternals. Шаги по подготовке такого диска можно найти в статье – “Создание загрузочного диска WinPE с модулем DSInternals”
Если у вас возникли какие-либо вопросы, пожалуйста, пишите в комментарии.