Восстановление доверительных отношений без повторного ввода в домен. Восстановление доверительных отношений в домене

В этой статье мы коснемся проблемы нарушения доверительных отношений между рабочей станцией и доменом, мешающей пользователю авторизоваться в системе. Рассмотрим причину проблемы и простой способ восстановления доверительных отношений по безопасному каналу.

Как проявляется проблема: пользователь пытается авторизоваться на рабочей станции или сервере под своей учетной запись и после ввода пароля появляется ошибка:

Не удалось восстановить доверительные отношения между рабочей станцией и доменом

Или такая:

The security database on the server does not have a computer account for this workstation trust relationship

Попробуем разобраться, что же означают данные ошибки и как их исправить.

Пароль компьютера в домене AD

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

Пароль учетной записи компьютера по умолчанию действует 30 дней, после чего автоматически меняется. Смена пароля инициируется самим компьютером на основании доменных политик.

Совет . Максимальный срок жизни пароля может быть настроен с помощью политики Domain member : Maximum machine account password age , которая находится в разделе: Computer Configuration-> Windows Settings-> Security Settings-> Local Policies-> Security Options . Срок действия пароля компьютера может быть от 0 до 999 (по умолчанию 30 дней).

Если пароль компьютера просрочен, он автоматически меняется при следующей регистрации в домене. Поэтом, если вы не перезагружали компьютер несколько месяцев, доверительные отношения между ПК и доменом сохраняются, а пароль компьютера будет сменен при следующей перезагрузке.

Доверительные отношения разрываются, если компьютер пытается аутентифцироваться в домене под неверным паролем. Обычно это происходит, когда компьютер или из снапшота виртуальной машины. В этом случае пароль машины, хранящийся локально, и пароль в домене могут не совпадать.

«Классический» способ восстановить доверительные отношения в этом случае::

  1. Сбросить пароль локального администратора
  2. Вывести ПК из домена и включить его в рабочую группу
  3. Перезагрузится
  4. С помощью оснастки – сбросить учёту компьютера в домене (Reset Account)
  5. Повторно включить ПК в домен
  6. Еще раз перезагрузиться

Этот метод самый простой, но слишком топорный и требует как минимум двух перезагрузок и 10-30 минут времени. Кроме того, могут возникнуть проблемы с использованием старых локальных профилей пользователей.

Есть более элегантный способ восстановить доверительные отношения без перевключения в домен и без перезагрузок.

Утилита Netdom

Утилита Netdom включена в состав Windows Server начиная с 2008 версии, а на ПК пользователей может быть установлена из RSAT (Remote Server Administration Tools). Чтобы восстанвить доверительные отношения, нужно войти в систему под локальным администратором (набрав “.\Administrator” на экране входа в систему) и выполнить такую команду:

Netdom resetpwd /Server:DomainController /UserD:Administrator /PasswordD:Password

  • Server – имя любого доступного контроллера домена
  • UserD – имя пользователя с правами администратора домена или Full control на OU с учетной записью компьютера
  • PasswordD – пароль пользователя

Netdom resetpwd /Server:sam-dc01 /UserD:aapetrov /PasswordD:Pa@@w0rd

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

Командлет Reset-ComputerMachinePassword

Командлет появился в PowerShell 3.0, и в отличии от утилиты Netdom, уже имеется в системе, начиная с Windows 8 / Windows Server 2012. На Windows 7, Server 2008 и Server 2008 R2 его можно установить вручную (http://www.microsoft.com/en-us/download/details.aspx?id=34595), также требуется наличие Net Framework 4.0 или выше.

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

Reset-ComputerMachinePassword -Server DomainController -Credential Domain\Admin

  • Server – имя контроллера домена
  • Credential – имя пользователя с правами администратора домена (или правами на OU с ПК)

Reset-ComputerMachinePassword -Server sam-dc01 -Credential corp\aapetrov

В открывшемся окне безопасности нужно указать пароль пользователя.

Совет . Эту же операцию можно выполнить с помощью другого командлета Powershell Test-ComputerSecureChannel:

Test-ComputerSecureChannel -Repair -Credential corp\aapetrov

Проверить наличие безопасного канала между ПК и DC можно командой:

nltest /sc_verify:corp.adatum.com

Следующие строки подтверждают, что доверительные отношения были успешно восстановлены:

Trusted DC Connection Status Status = 0 0x0 NERR_Success

Trust Verification Status = 0 0x0 NERR_Success

Как вы видите, восстановить доверительные отношения в домене довольно просто.

крепыш 14 января 2013 в 17:27

Нарушение доверительных отношений между рабочей станцией и контроллером домена (решение)

В сети с парком в 150 машин после обновление операционной системы до MS Windows 7 стала постоянно наблюдаться проблема со входом пользователя в систему. В один прекрасный день пользователь включив компьютер обнаруживал, что войти в систему он не может, при этом видит ошеломляющее по своей информативности сообщение:
«Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом»

Решение тут одно. Вывести машину из домена и ввести обратно. Когда в день эта ситуация стала повторятся больше одного раза, да и просто надоело, задумался о профилактике. И вот тут интернет промолчал. После некоторого времени уныния, а уныние, как известно - грех, было решено копать. В результате пыток раскопок, была получена причина 99% случаев (и я подозреваю что оставшийся 1% просто не признался в той же самой причине). Причина - это служба восстановления при загрузке, которая включается при некорректном завершении работы. На первом же экране диалога служба спрашивает пользователя восстанавливать систему или нет. В случае положительного ответа система откатывается до более раннего состояния и, возможно, бьется sid машины. Как бы то ни было, домен пускать к себе пользователей с такой машину после такой операции не станет. Надеяться на пользователя в таком вопросе бесполезно. Можно просить его отказываться, в случае возникновения такой ситуации, но пользователь с очень большой вероятностью нажмет кнопку «восстановить» а потом разведет руками, мол бес попутал. В общем надо пакетно отключить службу восстановления при загрузке на n-машинах.

Локально решение выглядит, как консольная команда:

Reagentc.exe /disable

Для сети потребуется утилита PsExec из пакета Microsoft Sysinternals PsTools, описание утилиты и сам пакет лежат

Psexec.exe кладем в одну папку с нашим командным файлом (назовем его broff.cmd)
внутри broff.cmd пишем:

::Получаем список компьютеров в сети, чистим от мусора и кладем в net.lst net.exe view /domain:megafon >>net.tmp for /f "tokens=1,2 delims= " %%i in (net.tmp) do (Echo %%i>>net1.tmp) for /f "tokens=1,2 delims=\" %%i in (net1.tmp) do (Echo %%i>>net.lst) DEL *.TMP::Проходимся по списку и отключаем boot recovery for /f "tokens=1,2 delims= " %%F in (net.lst) do (start psexec \\%%F reagentc.exe /disable)

Вот и все. Пользователь больше нам не враг.

Теги: Доверительные отношения, DC, ИТ, администрирование сетей, сети, развертывание

Здравствуйте Уважаемые читатели Хабрахабра! В просторах интернета каждый из нас может найти много отдельных статей о не прохождении аутентификации компьютера через домен-контроллер, если точнее сказать, компьютер подключенный к домену теряет связь с ним.

Итак, приступим к изучению этой проблемы.

У многих IT – инженеров, которые работают в больших и малых компаниях, имеются компьютеры с операционной системой Windows 7, 8.1 и т.п. и все эти компьютеры подключены к доменной сети (DC).

Данная проблема происходит из-за того, что сетевой протокол Kerberos не может синхронизироваться и пройти аутентификацию с компьютером (The trust relationship between this workstation and the primary domain failed), который подключен к домену. Тогда мы можем увидеть такую ошибку (см. фото ниже).

После чего мы ищем стороннюю программу, скачиваем ее, создаем загрузочную флешку и локального админа, далее логируемся через него и выходим с домена, добавляем компьютер в Workgroup-у и потом обратно подключаем этот компьютер к домену.

Используя Windows Batch scripting, я хочу создать bat file и автоматизировать процесс создания и добавления локального админа. Единственное, что нам будет необходимо, так это после создания данного файла запустить его.

Открываем наш текстовой редактор, вписываем команду, которая показана внизу.

Net user admin Ww123456 /add /active:yes WMIC USERACCOUNT WHERE "Name="admin"" SET PasswordExpires=FALSE net localgroup Administrators admin /add net localgroup Users admin /delete netsh advfirewall set allprofiles state off
Пройдем все команды по пунктам для устранения неясных моментов.

Net user admin (вместо слова админ Вы можете добавить любое имя, которое Вас устраивает, по умолчанию ставится administrator, в моем случае это admin).
Далее мы видем пароль, который я там поставил Ww123456(Вы можете поставить любой запоминающийся для Вас пароль).

После мы видем /add /active:yes –добавить и активировать: ДА

WMIC USERACCOUNT WHERE «Name="admin"» SET PasswordExpires=FALSE – данная команда означает, что админ, который добавляется, имел постоянный пароль без срока действия (см. картинку ниже).

Третий и четвертый пункт связаны между собой тем, что по умолчанию, когда создается локальный админ в пункте Member Of стоит Users (см. фото). Нам он не нужен (Users), потому что мы создаем полноправного администратора для нашей ОС. Поэтому четвертая команда — net localgroup Users admin /delete – удаляет Users, а предыдущая команда — net localgroup Administrators admin /add, добавляет администратора (см. фото).

Последняя команда- netsh advfirewall set allprofiles state off, отключает брандмаузер Windows-a.
Иногда, чтобы установить какую-либо программу или дать какую-либо команду в Windows-e необходимо отключить firewall (После запуска скрипта Вы можете ввести команду- netsh advfirewall set allprofiles state on и включить его заново. У меня по умолчанию стоит off, так как я использую сторонний брандмаузер. Данный момент на усмотрение каждого лично).

Далее идем к нашему блокноту, нажимаем File, save as… (сохранить как...) вводим имя нашего скрипта(в моем случае: localadmin).Затем ставим точку (.) и пишем формат скрипта bat. Выбираем место, где сохранить данную запись и нажимаем save. Более детально показано на картинке.

Получается вот такой скрипт (см. фото).

Данный скрипт при запуске необходимо открывать от имени администратора:

Нажимаем правую кнопку мыши и Run as administrator (см. фото).

После запуска скрипта у Вас должно появиться вот такое окошко (см. фото).

Если по каким-либо причинам выйдет ошибка, то в 90% таких случаев это связано с тем, что у Вас образ с которого Вы установили Windows, имеет нелицензионный характер, какие-либо repack или т.п. Скачивайте и используйте лицензионный и проверенный софт.

После удачного добавления локального админа, Вы можете этот скрипт запустить на всех рабочих машинах в Вашем офисе, в которых установлена ОС Windows.

Если у Вас когда-нибудь появится такая ошибка: The trust relationship between this workstation and the primary domain failed- Вам нужно будет только сделать switch user и где логин написать.\admin (запомните! В начале до слеша ставится точка!), далее внизу вводите пароль, который Вы добавили в Ваш скрипт (в моем случае: Ww123456). После этого Вы заходите на рабочую ОС.

Осталось снять наш компьютер с домена и добавить в Workgroup-у. Вместо Workgroup-а вписываем любую букву (см. фото).

Далее вводится пароль администратора домена и компьютер просит нас о перезагрузке.
После перезагрузки ещё раз заходим под нашим локальным админом и дальше уже добавляем компьютер к нашему домену. Система в очередной раз требует перезагрузиться и Вуаля! Наш User опять может подключиться к домену без всяких проблем!

P.S – Данная система работает также для серверной части Windows, однако если Вы будете писать такой скрипт для серверов после отключения брандмаузера необходимо будет включить его еще раз (до — netsh advfirewall set allprofiles state off, после netsh advfirewall set allprofiles state on).

Благодарю за внимание!

Рано или поздно, но администраторам доменной сети на базе продуктов Microsoft приходится сталкиваться с двумя похожими ошибками: «Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом» и «База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией» . Помимо данных сообщений также наблюдается невозможность зайти в компьютер под доменными учетными записями.

Разберем причины появления ошибок и методы их лечения.

В доменных сетях Windows всем компьютерам и учетным записям пользователей присваиваются свои идентификаторы безопасности (SID). В сущности, можно сказать, что каждый компьютер в домене также обладает своей учетной записью типа «компьютер». По аналогии с учетной записью пользователя, такая учетная запись тоже будет иметь пароль. Данный пароль создается и предъявляется компьютером контроллеру домена автоматически. Таким образом между рабочими станциями и контроллером домена и формируются те доверительные отношения, о которых упоминается в тексте ошибок.

Каждые 30 дней или при первом включении после длительного перерыва компьютер автоматически изменяет свой пароль. В теории всё красиво, и машина вроде бы не может ошибиться и «ввести» неправильный пароль. Однако иногда такое происходит по нескольким причинам.


Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом

Самой распространенной причиной является откат операционной системы Windows на более ранее состояние. Естественно, чем раньше была создана точка восстановления, тем больше вероятность появления ошибки. В данном случае после восстановления компьютер примется предъявлять контроллеру домена устаревший пароль, а контроллер уже содержит новый.

Ошибка может возникнуть и в случае нахождения в домене двух станций с одинаковыми именами. Такая ситуация может возникнуть, например, если дать новому компьютеру имя выведенной из эксплуатации машины, а затем снова включить старый компьютер, забыв его переименовать.

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

Первый способ заключается в переустановке учетной записи в .

После этого необходимо зайти на компьютер под локальным администратором и вывести рабочую станцию из домена в рабочую группу (компьютер → свойства → дополнительные параметры системы → имя компьютера → изменить).

Вторым способом является сброс пароля через . Оговоримся однако, что нам потребуется PowerShell версии 3.0 и выше. Также заходим на компьютер локальным администратором и вводим следующий командлет:

Reset-ComputerMachinePassword -Server DomainController -Credential Domain\Admin

В данном случае -Server это имя контроллера домена, а -Credential это учетная запись администратора домена.

Командлет не выведет никаких сообщений в случае своего успешного завершения. Данный способ привлекателен тем, что перезагрузка не требуется — достаточно сменить пользователя и войти в машину под доменной учетной записью.

Третий способ сброса пароля компьютера заключается в использовании утилиты Netdom , которая появилась в серверных ОС Microsoft начиная с Windows Server 2008. В клиентских операционных системах её можно добавить с помощью пакета RSAT (Средства удаленного администрирования сервера).

Как и в предыдущих способах, этот тоже выполняется из-под локального администратора. Введите в командной строке:

Netdom resetpwd /Server:DomainController /UserD:Admin /PasswordD:Password /SecurePasswordPrompt

Принцип схож с тем, что мы видели в примере с PowerShell. /Server это контроллер домена, /UserD — учетная запись администратора домена, /PasswordD — пароль от учетной записи администратора домена. Вы также можете использовать параметр /SecurePasswordPrompt , чтобы скрыть пароль за звездочками. Перезагрузка также не требуется.

Способ четвертый и последний в нашей статье заключается в использовании утилиты Nltest , которая по умолчанию есть на любой рабочей станции.

Запустим утилиту в командной строке и для начала проверим безопасное соединение с доменом:

Nltest /query

Затем сбросим учетную запись компьютера в домене:

Nltest /sc_reset:Domain

И, наконец, сбросим пароль компьютера:

Nltest /sc_change_pwd:Domain

К сожалению, у такой прекрасной утилиты есть свои минусы. В первую очередь, утилита не спрашивает логин/пароль администратора домена и, соответственно, исполняется из-под запустившего его пользователя, что может привести к ошибке доступа.

Есть и еще одна ошибка, связанная с доверительными отношениями внутри домена и вынесенная в начало этой статьи. Выглядит она следующим образом:

В данном случае нам опять же поможет утилита Nltest . Снова проверяем безопасное соединение с доменом:

Nltest /query

Если появится сообщение об ошибке, то для исправления ошибки достаточно установить этот патч . Если же статус подключения будет NERR_Success , то выполняем следующие действия:

netdom reset /d:Domain ComputerName netdom reset /d:Domain ComputerName /server:DomainController /uo:Admin /po:Password

Во втором случае мы явно указываем контроллер домена, с которым хотим установить доверительные отношения.

Утилита порадует нас сообщением о том, что безопасный канал был сброшен и новое соединение установлено.

Итак, вот несколько способов восстановить доверительные отношения в домене. Надеюсь, что применять их вам придется как можно реже. 🙂

Как и учетные записи пользователей, учетные записи компьютеров в домене имеют свой пароль. Пароль этот нужен для установления так называемых «доверительных отношений» между рабочей станцией и доменом. Пароли для компьютеров генерируются автоматически и также автоматически каждые 30 дней изменяются.

Домен хранит текущий пароль компьютера, а также предыдущий, на всякий случай 🙂 . Если пароль изменится дважды, то компьютер, использующий старый пароль, не сможет пройти проверку подлинности в домене и установить безопасное соединение. Рассинхронизация паролей может произойти по разным причинам, например компьютер был восстановлен из резервной копии, на нем была произведена переустановка ОС или он просто был долгое время выключен. В результате при попытке входа в домен нам будет выдано сообщение о том, что не удается установить доверительные отношения с доменом.

Для восстановления доверительных отношений существует несколько способов. Рассмотрим их все по порядку.

Способ первый

Открываем оснастку «Active Directory Users and Computers» и находим в ней нужный компьютер. Кликаем на нем правой клавишей мыши и в контекстном меню выбираем пункт «Reset Account». Затем заходим на компьютер под локальной учетной записью и заново вводим его в домен.

Способ этот довольно громоздкий и небыстрый, т.к. требует перезагрузки, однако работает в 100% случаев.

Способ второй

Заходим на компьютер, которому требуется сбросить пароль, открываем командную консоль обязательно от имени администратора и вводим команду:

Netdom Resetpwd /Server:SRV1 /UserD:Administrator /PasswordD:*

где SRV1 - контролер домена, Administrator - административная учетная запись в домене. Дополнительно можно указать параметр /SecurePasswordPrompt, который указывает выводить запрос пароля в специальной форме.

В открывшемся окне вводим учетные данные пользователя и жмем OK. Пароль сброшен и теперь можно зайти на компьютер под доменной учетной записью. Перезагрузка при этом не требуется.

Что интересно, в рекомендациях по использованию и в справке написано, что команду Netdom Resetpwd можно использовать только для сброса пароля на контролере домена, другие варианты использования не поддерживаются. Однако это не так, и команда также успешно сбрасывает пароль на рядовых серверах и рабочих станциях.

Еще с помощью Netdom можно проверить наличие безопасного соединения с доменом:

Netdom Verify WKS1 /Domain:Contoso.com /UserO:Administrator /PasswordO:*

Или сбросить учетную запись компьютера:

Netdom Reset WKS1 /Domain:Contoso.com /UserO:Administrator /PasswordO:*

где WKS1 - рабочая станция, которой сбрасываем учетку.

Способ достаточно быстрый и действенный, однако есть одно но: по умолчанию утилита Netdom есть только на серверах с установленной ролью Active Directory Domain Services (AD DS). На клиентских машинах она доступна как часть пакета удаленного администрирования Remote Server Administration Tools (RSAT).

Способ третий

Еще одна утилита командной строки - Nltest. На компьютере, который потерял доверие, выполняем следующие команды:

Nltest /query - проверить безопасное соединение с доменом;

Nltest /sc_reset:Contoso.com - сбросить учетную запись компьютера в домене;

Nltest /sc_change_pwd:Contoso.com - изменить пароль компьютера.

Самый быстрый и доступный способ, ведь утилита Nltest по умолчению есть на любой рабочей станции или сервере. Однако, в отличие от Netdom, в которой предусмотрен ввод учетных данных, Nltest работает в контексте запустившего ее пользователя. Соответственно, зайдя на компьютер под локальной учетной записью и попытавшись выполнить команду можем получить ошибку доступа.

Способ четвертый

PowerShell тоже умеет сбрасывать пароль копьютера и восстанавливать безопасное соеднение с доменом. Для этого существует командлет Test-ComputerSecureChannel . Запущенный без параметров он выдаст состояние защищенного канала - True или False.

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

Test-ComputerSecureChannel -Server SRV1 -Credential Contoso\Administrator -Repair

где SRV1 - контролер домена (указывать не обязательно).

Для сброса пароля также можно также воспользоваться такой командой:

Reset-ComputerMachineChannel -Server SRV1 -Credential Contoso\Administrator

Способ быстрый и удобный, не требующий перезагрузки. Но и здесь есть свои особенности. Ключ -Credential впервые появился в PowerShell 3.0. Без этого параметра командлет, запущенный из под локального пользователя, выдает ошибку доступа. Получается что данный метод можно использовать только на Windows 8 и Server 2012, ведь для остальных ОС PowerShell 3.0 пока недоступен.

Как видите, способов восстановления доверительных отношений более чем достаточно. Однако если проблема приобретает постоянный характер, то проще подойти к ее решению с другой стороны.

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

Смена пароля в домене происходит следующим образом:

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

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

Если настройки необходимо применить к группе компьютеров, то проще всего использовать групповую политику. Настройки, отвечающие за смену паролей, находятся в разделе Computer Configuration - Policies - Windows Settings - Security Settings - Local Policies - Security Options. Нас интересуют следующие параметры:

Disable machine account password change - отключает на локальной машине запрос на изменение пароля;

Maximum machine account password age - определяет максимальный срок действия пароля компьютера. Этот параметр определяет частоту, с которой член домена будет пытаться изменить пароль. По умолчанию срок составляет 30 дней, максимально можно задать 999 дней;

Refuse machine account password changes - запрещает изменение пароля на контролерах домена. Если этот параметр активировать, то контролеры будут отвергать запросы компьютеров на изменение пароля.

Для одиночной машины можно воспользоваться настройками реестра. Для этого в разделе есть два параметра:

DisablePasswordChange - если равен 1, то запрос на обновление пароля компьютера отключен, 0 - включен.

MaximumPasswordAge - определяет максимальный срок действия пароля компьютера в днях. При желании можно задать более 1 миллиона дней!!!

И в разделе HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters , только у контролеров домена, параметр:

RefusePasswordChange - если равен 1, то запрещает контролеру домена принимать запрос на изменение пароля. Этот параметр надо задать на всех контролерах в домене.

Вот вроде и все про доверительные отношения. Как видите, доверие в домене - штука тонкая, так что старайтесь его не терять.