В этой статье мы рассмотрим проблему нарушения доверительных отношений между рабочей станцией и доменом Active Directory, из-за которой пользователь не может авторизоваться на компьютере. Рассмотрим причину проблемы и простой способ восстановления доверительных отношений компьютера с контроллером домена по безопасному каналу без перезагрузки компьютера.
Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом
Как проявляется проблема: пользователь пытается авторизоваться на рабочей станции или сервере под своей учетной запись и после ввода пароля появляется ошибка:
The trust relationship between this workstation and the primary domain failed.
Не удалось восстановить доверительные отношения между рабочей станцией и доменом.
Также ошибка может выглядеть так:
The security database on the server does not have a computer account for this workstation trust relationship.
База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией.
Пароль учетной записи компьютера в домене Active Directory
Когда компьютер вводится в домен Active Directory, для него создается отдельная учетная запись типа computer. У каждого компьютера в домене, как и у пользователей есть свой пароль, который необходим для аутентификации компьютера в домене и установления доверенного подключения к контроллеру домена. Однако, в отличии от паролей пользователя, пароли компьютеров задаются и меняются автоматически.
Несколько важных моментов, касающихся паролей компьютеров в AD:
- Компьютеры должны регулярно (по-умолчанию раз в 30 дней) менять свои пароли в AD.Совет. Максимальный срок жизни пароля может быть настроен с помощью политики Domain member: Maximum machine account password age, которая находится в разделе: Computer Configuration-> Windows Settings-> Security Settings-> Local Policies-> Security Options. Срок действия пароля компьютера может быть от 0 до 999 (по умолчанию 30 дней).
- Срок действия пароля компьютера не истекает в отличии от паролей пользователей. Смену пароля инициирует компьютер, а не контроллер домена. На пароль компьютера не распространяется доменная политика паролей для пользователей.Даже если компьютер был выключен более 30 дней, его можно включить, он нормально аутентифицируется на DC со старым паролем, и только после этого локальная служба
Netlogon
изменит пароль компьютера в своей локальной базе (пароль хранится в ветке реестра HKLM\SECURITY\Policy\Secrets\$machine.ACC) и затем в аккаунте компьютера в Active Directory. - Пароль компьютера меняется на ближайшем DC, эти изменения не отправляются на контроллера домена с FSMO ролью эмулятора PDC (т.е. если компьютер сменил пароль на одном DC, то он не сможет авторизоваться на другом DC, до момента выполнения репликации изменений в AD).
Если хэш пароля, который компьютер отправляет контроллеру домена не совпадает с паролем учетной записи компьютера, компьютер не может установить защищённое подключение к DC и выдает ошибки о невозможности установить доверенное подключение.
Почему это может произойти:
- Самая частая проблема. Компьютер был восстановлен из старой точки восстановления или снапшота (если это виртуальная машина), созданной раньше, чем был изменен пароль компьютера в AD. Т.е. пароль в снапшоте отличается от пароля компьютера в AD. Если вы откатите такой компьютер на предыдущее состояние, это компьютер попытается аутентифицироваться на DC со старым паролем.
- В AD создан новый компьютер с тем же именем, или кто-то сбросил аккаунт компьютера в домене через консоль ADUC;
- Учетная запись компьютера в домене заблокирована администраторам (например, во время регулярной процедуры отключения неактивных объектов AD);
- Довольно редкий случай, когда сбилось системное время на компьютере.
Классический способ восстановить доверительных отношений компьютера с доменом в этом случае:
- Сбросить аккаунт компьютера в AD;
- Под локальным админом перевести компьютер из домена в рабочую группу;
- Перезагрузить компьютер;
- Перезагнать компьютер в домен;
- Еще раз перезагрузить компьютер.
Этот метод кажется простым, но слишком топорный и требует, как минимум двух перезагрузок компьютера, и 10-30 минут времени. Кроме того, могут возникнуть проблемы с использованием старых локальных профилей пользователей.
Есть более элегантный способ восстановить доверительные отношения с помощью PowerShell без перевключения в домен и без перезагрузок компьютера.
Проверка и восстановление доверительного отношения компьютера с доменом с помощью PowerShell
Если вы не можете аутентифицироваться на компьютере под доменной учетной записью с ошибкой “Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом”, вам нужно войти на компьютер под локальной учетной записью с правами администратора. Также можно отключить сетевой кабель и авторизоваться на компьютере под доменной учетной записью, которая недавно заходила на этот компьютер, с помощью кэшированных учетных данных (Cached Credentials).
Откройте консоль PowerShell и с помощью командлета Test-ComputerSecureChannel проверьте соответствует ли локальный пароль компьютера паролю, хранящемуся в AD.
Test-ComputerSecureChannel –verbose
Если пароли не совпадают и компьютер не может установить доверительные отношения с доменом, команда вернет значение False –
The Secure channel between the local computer and the domain winitpro.ru is broken
.
Чтобы принудительно сбросить пароль учётной записи данного компьютера в AD, нужно выполнить команду:
Test-ComputerSecureChannel –Repair –Credential (Get-Credential)
Для выполнения операции сброса пароля нужно указать учетную запись и пароль пользователя, у которого достаточно полномочий на сброс пароля учетной записи компьютера. Этому пользователя должны быть делегированы права на компьютеры в Active Directory (можно использовать и члена группы Domain Admins, но это не комильфо).
После этого нужно еще раз выполнить команду
Test-ComputerSecureChannel
и убедится, что она возвращает True (
The Secure channel between the local computer and the domain winitpro.ru is in good condition
).
Итак, пароль компьютера сброшен без перезагрузки и без ручного перевоода в домен. Теперь вы можете аутентифицировать на компьютере под доменной учетной записью.
Reset-ComputerMachinePassword -Server dc01.corp.winitpro.ru -Credential corp\domain_admin
dc01.corp.winitpro.ru
– имя ближайшего DC, на котором нужно сменить пароль компьютера.
Имеет смысл сбрасывать пароль компьютера каждый раз, перед тем как вы создаете снапшот виртуальной машины или точку восстановления компьютера. Это упростит вам жизнь при откате к предыдущему состоянию компьютера.
Если у вас есть среда разработки или тестирования, где приходится часто восстанавливать предыдущее состояние ВМ из снапшотов, возможно стоит с помощью GPO точечно отключить смену пароля в домене для таких компьютеров. Для этого используется политика Domain member: Disable machine account password changes из секции Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options. Можно нацелить политики на OU с тестовыми компьютерам или воспользоваться WMI фильтрами GPO.
С помощью командлета Get-ADComputer (из модуля Active Directory Windows PowerShell) можно проверить время последней смены пароля компьютера в AD:
Get-ADComputer –Identity spb-pc22121 -Properties PasswordLastSet
Также можно проверить наличие безопасного канала между компьютером и DC командой:
nltest /sc_verify:corp.winitpro.ru
Следующие строки подтверждают, что доверительные отношения были успешно восстановлены:
Trusted DC Connection Status Status = 0 0x0 NERR_Success Trust Verification Status = 0 0x0 NERR_Success
Восстановления доверия с помощью утилиты Netdom
В Windows 7/2008R2 и предыдущих версиях Windows, на которых отсутствует PowerShell 3.0, не получится использовать командлеты Test-ComputerSecureChannel и Reset-ComputerMachinePassword для сброса пароля компьютера и восстановления доверительных отношений с доменом. В этом случае для восстановления безопасного канала с контроллером домена нужно воспользоваться утилитой
netdom.exe
.
Утилита Netdom включена в состав Windows Server начиная с 2008, а на компьютерах пользователей может быть установлена из RSAT (Remote Server Administration Tools). Чтобы восстановить доверительные отношения, нужно войти в систему под локальным администратором (набрав “.\Administrator” на экране входа в систему) и выполнить такую команду:
Netdom resetpwd /Server:DomainController /UserD:Administrator /PasswordD:Password
- Server – имя любого доступного контроллера домена;
- UserD – имя пользователя с правами администратора домена или делегированными правами на компьютеры в OU с учетной записью компьютера;
- PasswordD – пароль пользователя.
Netdom resetpwd /Server:spb-dc01 /UserD:aapetrov /PasswordD:Pa@@w0rd
Послу успешного выполнения команды не нужно перезагружать компьютер, достаточно выполнить логофф и войти в систему под доменной учетной.
Как вы видите, восстановить доверительные отношения междду компьютером и доменом довольно просто.
не помогло.
Netdom отработал, но ошибка осталась.
Точно помог командлет из совета.
Который Test-ComputerSecureChannel
Спасибо большое за статью.
Похоже для древних динозавров (WinServer 2003) подойдёт только первый способ.
Название темы «Восстановление доверительных отношений без повторного ввода в домен»
одно из решений : Вывести ПК из домена и включить его в рабочую группу
странно..
Привет. Гарантировано работает. Проверял на себе. DC — winserv 2003, машина win 8.1 и что-то там побилось.
Из статьи все способы не работают. Пауэршел ругается и не дает сбросить пароль компьютера, врукопашную вывел/завел в домен все отработало штатно.
При попытке выполнить операцию неверное имя пользователя или пароль. Хотя с этими данными на контроллер домена вхожу.
Укажите, какую команду точно вы вводите для восстановления доверительных отношений.
Столкнулся с данной проблемой на виртуальном полигоне после восстановления контроллера домена из снапшота. Помог способ с утилитой netdom. Спасибо!
А удаленно командлет можно запустить, или надо обязательно ногами идти, чтобы под локальным админом залогиниться?
По идее можно через Enter-PSSession под локальной учетной с правами админа:
Enter-PSSession -ComputerName comp101 -Credential comp101\localadmin
Выполнение Enter-PSSession невозможно при потере доверительных отношений, пробовал, выходит ошибка. Подключиться по RDP невозможно, так как на удаленное подключение стоит галка проверки LNA, снять которую можно только под админом. А компьютер за 600 км от меня. Так что замкнутый круг.
Доброго дня!
Подскажите, как восстановить доверительные отношения с отключенным аккаунтом локального администратора (пароль от него есть)?
Тут наверно только загрузиться с любого загрузочного диска и включить аккаунта администратора (если другого нет).
Спасибо, Автор, за помощь! И разреши подробнее разъяснить написанное тобой:
команда для PowerShell будет
Reset-ComputerMachinePassword -Server dc-XXX -Credential YYY\PetrovAA
Имя КД Учётка админа домена
под локальным админом на команду Test-ComputerSecureChannel –verbose выдает что все нормуль
ПОДРОБНО: Выполнение операции «Test-ComputerSecureChannel» над целевым объектом «comp01».
True
ПОДРОБНО: Безопасный канал между локальным компьютером и доменом test.local находится в хорошем состоянии.
в cmd на команду C:\>Nltest /sc_verify:test.local
Ошибка в I_NetLogonControl: Status = 5 0x5 ERROR_ACCESS_DENIED
доступ запрещен, почему?
С ходу не отвечу. Пробовали перегрузить компьютер и поглядеть ошибки в логах?
Спасибо большое. Помогло
Супер, спасибо!
Сэкономил кучу времени 😉 Взял на заметку, записал в записную книжку.
Test-ComputerSecureChannel — Выдает True, однако ошибку The security database on the server does not have a computer account for this workstation trust relationship. — это не исправляет, почему?
У вас один домен или есть и другие домены в лесу?
Попробуйте принудительно сбросить пароль командой:
Reset-ComputerMachinePassword -Server dc01.corp.winitpro.ru -Credential corp\domain_admin
Ребут, и затем посмотрите что выдают команды:
Get-ADComputer –Identity tut_vash_computername -Properties PasswordLastSet
и
nltest /sc_verify:corp.winitpro.ru
Большое спасибо, помогло
Вот еще интересная ситуация, привезли ноут который в домен лет пять не смотрел. При входе под любой доменной учеткой «База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией.» Т.к. там диск был полуживой, решил переустановить винду на новый SSd. Учетную запись ноута в домене грохнул. Имя присвоил тоже. И после переустановки та же ошибка. Все шаги проделаны. Все тесты показывают, что доверительные отношения true. Ну и после переименования ноута завалил в домен без проблем. Т.е. есть где то в AD «база данных диспетчера»……
можно слегка извратиться. Большинство доменов называют типа domain.local или domain.LAN. Заходим в оснастку для переименования компьютера, вкладка «имя компьютера» -> «Изменить» -> и там, где указано полное имя домена, меняем его на NetBIOS-имя (удаляем .local или .LAN). Жмём ОК, вводим логин пароль админа, после удачного завершения операции отказываемся от немедленной перезагрузки (домен фактически тот же!)
В свойствах системы (теперь это дополнительные параметры системы), на вкладке Имя компьютера, есть кнопка Идентификация. С ее помощью можно вернуть комп в домен.
Помогло, спасибо)