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

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

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

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

image

После чего мы ищем стороннюю программу, скачиваем ее, создаем загрузочную флешку и локального админа, далее логируемся через него и выходим с домена, добавляем компьютер в 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 – данная команда означает, что админ, который добавляется, имел постоянный пароль без срока действия (см. картинку ниже).

image

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

image

image

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

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

image

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

image

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

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

image

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

image

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

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

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

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

image

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

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

Благодарю за внимание!
Поделиться с друзьями
-->

Комментарии (36)


  1. k3NGuru
    24.01.2017 18:54
    +1

    Вместо того чтоб найти причину проблемы, приходится делать костыль.
    У нас тоже такая проблема, решается путём отключения интернет кабеля/адаптера wifi (если он выключается физически). После пользователь заходит под своей учётной записью.
    Тогда уже выводишь / вводишь обратно в домен- ребут и все проблема решена.
    Но все же хочется узнать почему такое происходит и как вылечить данную проблему


    1. rub_ak
      24.01.2017 19:49

      У нас такое бывало, после восстановления системы.


    1. cagami
      24.01.2017 19:54

      очень часто такое происходит из-за долго отсутствия клиента offline (восстановление системы как пример) если я правильно помню 60ть дней


    1. shadiman
      24.01.2017 20:20

      Это происходит из-за истечения срока Kerberos ticket-a. Shaz правильно написал об этом. И еще можно восстанавливат, через PowerShell как показано далее по ссылке — https://m.youtube.com/watch?v=3M-UwCWUPdw



    1. sviato_slav
      25.01.2017 19:36

      Мое видение причины проблемы.
      Каждый компьютер в домене имеет пароль(пароль есть не только у пользователя), который переодически меняется(это происходит автоматически). Если пароль на компьютере по какой либо причине не совпадает с паролем в базе Active Directory, наблюдается сбой доверительных отношений. Чаще всего это происходит при восстановлении системы. Видимо при восстановлении системы пароль компьютера откатывается к предыдущему значению, которое не совпадает с текущем паролем в Active Directory, что и обуславливает проблему.


  1. AcidVenom
    24.01.2017 19:36

    Вместо вывода из/ввода в домен используйте Идентификацию (Network ID на картинке). То же самое, но быстрее.


  1. Shaz
    24.01.2017 20:03

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


  1. shadiman
    24.01.2017 20:25

    Восстанавление связи рабочей машины с доменом возможно также через PowerShell, посмотрите далее по ссылке https://m.youtube.com/watch?v=3M-UwCWUPdw.


    1. Taciturn
      24.01.2017 21:43
      +4

      Есть что-то ужасное в том, чтобы снимать видео про ввод «Test-ComputerSecureChannel -Repair» в консоли PowerShell.


      1. shadiman
        24.01.2017 21:54

        Если человек тратит свое время, чтобы поделиться знаниями с кем-нибудь, то в этом нет ничего зазорного и ужасного, знания лишними не бывают! А для тех кто знает, повторение-мать учения.


        1. Taciturn
          24.01.2017 21:57
          +2

          Я к тому что в виде текста такая информация намного удобнее чем видео на две минуты.


  1. navion
    24.01.2017 21:05
    +2

    Откройте для себя LAPS и Test-ComputerSecureChannel -Repair.


  1. osipov_dv
    24.01.2017 21:06
    +1

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


    1. shadiman
      24.01.2017 21:27

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


      1. Focushift
        24.01.2017 22:19

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


        1. 4mz
          25.01.2017 12:03

          Вообще да, builtin Администратор залочен, но что мешает групповыми политиками добавлять локальную учетку, к пример Admin и добавлять её в группу локальных администраторов и, таким образом, иметь локальную учетку с админскими правами даже на случай вылета компа из домена?

          P.S. Хотя то, что я описал — тоже костыль, LAPS в данном случае самое верное решение.


        1. LoadRunner
          25.01.2017 13:12

          Вообще-то, с восьмёрки и выше первая учётная запись во время установки ОС создаётся с админскими правами.


          1. navion
            25.01.2017 13:15

            Поэтому при ручной установке её надо убивать сразу после ввода в домен.


            1. LoadRunner
              25.01.2017 13:50

              А есть причина это делать? Администратор сам задаёт как имя, так и пароль для этой учётной записи.


              1. navion
                25.01.2017 14:12

                Чтобы не оставалось административной учётки с одинаковым паролем (или вообще без него) на куче компьютеров.

                Даже если случится чудо и хелпдеск начнёт придумывать сложный пароль для каждой установки, то их учёт превратится в ад с неминуемыми ошибками. Зачем рисковать при наличии простого и удобного решения?


                1. osipov_dv
                  25.01.2017 17:35

                  Ставить систему руками и придумывать пароль вообще моветон. Создал образ и задал админу сложный пароль, и никаких проблем. А вся эта шизофрения с LAPS, отключением локальных учеток и прочее, к безопасности не имеет никакого отношения, если нет шифрования жесткого диска. 99% компаний это не нужно, а оставшийся процент умеет и знает что делать.


                  1. navion
                    25.01.2017 19:25

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


                    1. osipov_dv
                      25.01.2017 20:25

                      А если зайти под доменным админом, этого не произойдет? ну-ну


                      1. navion
                        26.01.2017 00:00

                        nltest обычно не нужны нужны доменные реквизиты, а для включения в домен не обязательно быть админом домена.


                        1. osipov_dv
                          26.01.2017 13:57

                          а причем здесь вообще nltest?


                          1. navion
                            26.01.2017 23:02

                            nltest /sc_reset аналогичен Test-ComputerSecureChannel -Repair.


  1. yarosroman
    25.01.2017 02:06
    +2

    В домене локального админа через командный файл создавать? Это как гланды колоноскопом смотреть. Учите групповые политики


  1. xSeries
    25.01.2017 10:48
    +1

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

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


    1. shadiman
      25.01.2017 10:53

      xSeries Спасибо за коммент. Не хочу повторяться, но выше в комментариях написано возникновение этой проблемы.


  1. klavis
    25.01.2017 10:48

    Так в чём корень проблемы и как её устранить?


  1. varnav
    25.01.2017 12:34

    Домен-контроллер это такая особенная разновидность домена?


  1. sviato_slav
    25.01.2017 19:10
    +1

    Тоже частовато встечаюсь с этой проблеммой. Есть простой способ восстановить учетную запись компьютера. Если на компьютере, который вылетел с домена, есть незаблокированный локальный администратор, то можно запустить следующую команду на произвольном компьютере:
    wmic /NODE:ip_address/user:"ip_address\local_admin" /password:"local_admin_password" process call create "cmd.exe /C Netdom resetpwd /Server:domaincontroller /UserD:domain_admin /PasswordD:domain_password"

    где ip_address — ip адресс компьютера, который вылетел с домена,
    local_admin — локальный администратор,
    local_admin_password — пароль локального администратора,
    domaincontroller — fqdn контроллера домена
    domain_admin — администратор домена,
    domain_password — пароль администратора домена.
    При этом не требуется даже перезагрузка компьютера.


    1. shadiman
      25.01.2017 19:30

      Спасибо Вам большое, вот это классный солушн! Well Done!


  1. Tante
    28.01.2017 14:55

    А вот прекрасная статья на технете, как ввести\вернуть рабочую станцию в домен, если сам домен недоступен.
    https://technet.microsoft.com/en-us/library/offline-domain-join-djoin-step-by-step(v=ws.10).aspx


    1. shadiman
      30.01.2017 13:05

      Great staff, Thanks!