Задача: Я поставил себе задачу, разобрать как имея домен уровня Server 2012 R2 повысить его до уровня Server 2016, т. е. Я не только хочу перевести все инфраструктуру Windows на Server 2016 но и его доменную часть, а именно контроллеры домена.
Потому, как я уже практически делал с 2003 на 2008 R2 и после до 2012 R2 и как в тестовых условиях, так и боевых что меня очень порадовало, т. к. я не зря потратил время на разбор. Я знаю одну компанию где начальник самодур не любит ничего тестировать, а все подводит под вот прям сейчас и сею секунду нужно делать, а когда у него что-то спрашивает его любимый ответ — разберитесь, я что буду помогать Вам, я нанял Вас это делать, а не делать сам. Или другая фраза: – «Давай я расскажу тебе свою «видение». Если Вы столкнетесь с таким, то мой Вам совет смените работу, он Вас обязательно будет подставлять, а перед начальством показывать какой он хороший, а Вы плохой.
Ну да ладно, вернусь к задаче.
[stextbox id=’alert’ color=’000000′]На заметку: Мой Вам совет на рабочем месте всегда и везде использовать только англоязычный дистрибутив, он стабильнее, проще искать ошибки в гугле и можно на форумах разговаривать со знающими людьми об одном и том же, а не русском переводе.[/stextbox]
Предварительные действия:
Домен контроллер под управлением Windows Server 2012 R2 Eng развернут по заметке.
- Hostname: srv-dc1.polygon.local
- IP Addr: 10.90.90.2
- Netmask: 255.255.255.0
- Gateway: 10.90.90.1 (В роли шлюза выступит Mikrotik или система pfSense если компания не может выделить Вам деньги на покупку железа под шлюз)
Еще одна система под управлением Windows Server 2016 развернута в той же сети что и домен.
- Hostname: Srv-dc2.polygon.local
- IP Addr: 10.90.90.3
- Netmask: 255.255.255.0
- Gateway: 10.90.90.1
Вам понадобится доменная учетная запись, в моем случае это ее логин ekzorchik, а пароль присвоенный ей это 712mbddr@
Шаг №1: Авторизуюсь на системе srv-dc2 пока под локальным администратором и ввожу в домен polygon.local
Шаг №2: Поднимаю введенную в домен систему с осью Windows Server 2016 до уровня контроллер домена, но перед этим авторизуюсь на ней под доменной учетной записью логина ekzorchik.
Win + X — Панель управления — Администрирование — Диспетчер серверов — Управление — Добавить роли и компоненты — Установка ролей или компонентов — отмечаю галочкой роль «Доменные службы Active Directory» и проследовав по шагам мастера нажимаю «Установить». После перехожу все еще в запущенной оснастке «Диспетчер серверов» – на элемент AD DS в левой части, затем нажимаю «Подробнее» – «Повысить роль этого сервера до уровня контроллера домена» и следую по шагам за мастером который и проведет меня по всем этапам:
- Выберите операцию развертывания: Добавить контроллер домена в существующий домен
- Домен: polygon.local
- Учетные данные: POLYGON\ekzorchik (текущий пользователь)
и нажимаю кнопку «Далее», затем в шаге «Параметры контроллера домена» оставляю все как есть за исключение, что нужно указать пароль для режима восстановления служб каталогов (DSRM):
- Пароль: 712mbddr@
- Подтверждение пароля: 712mbddr@
и нажимаю «Далее» – «Далее» – в роли источника репликации указываю хост srv-dc1.polygon.local и нажимаю «Далее» – «Далее» – «Далее» – «Далее», тут важно чтобы все проверки мастера завершились надписью «Все проверки готовности к установке выполнены успешно» и только после этого нажимаю «Установить». После окончания установки сервер будет перезагружен.
Шаг №3: Проверяю сколько сейчас контроллеров домена в лесу:
К примеру через оснастку Win + X – «Панель управления» – «Администрирование» – «Пользователи и компьютеры Active Directory» – polygon.local — Domain Controllers и вижу две записи: srv-dc1 & srv-dc2 = значит шаг №2 выполнен корректно.
Или через консоль командной строки:
Win + X - Командная строка (администратор)
C:\Windows\system32>netdom query dc
Список контроллеров домена с учетными записями в домене:
SRV-DC1
SRV-DC2
Команда выполнена успешно.
Шаг №4:
Чтобы отобразить какой функциональный уровень леса:
C:\Windows\system32>dsquery * "CN=Partitions,CN=Configuration,DC=polygon,DC=local" -scope base -attr msDS-Behavior-Version
msDS-Behavior-Version 6
— где данное значение расшифровывается, как Windows Server 2012 R2
Чтобы отобразить какой функциональный уровень домена:
C:\Windows\system32>dsquery * "dc=polygon,dc=local" -scope base -attr msDS-Behavior-Version ntMixedDomain
msDS-Behavior-Version ntMixedDomain
6 0
— где данное значение расшифровывается, как Windows Server 2012 R2
Чтобы отобразить версию схемы Active Directory Schema:
C:\Windows\system32>dsquery * "CN=Schema,CN=Configuration,dc=polygon,dc=local" -scope base -attr objectVersion
objectVersion
87
– где данное значение расшифровывается, как Windows Server 2016, а все из-за того, что я в текущем домене сделал контроллером домена новую систему, а значит и могу поднять функциональный уровень домена и уровень леса.
Шаг №5: Начинаю модернизацию уровня домена и уровня леса, дабы ввести после еще один контроллер домена на базе Windows Server 2016, а текущий srv-dc1 (на базе Windows Server 2012 R2) понизить, тем самым я буду использовать в домене все самое последнее и новое.
[stextbox id=’alert’ color=’000000′]На заметку: Первым делом следует проверить через команду dcdiag, что в текущем домене нет ошибок и только после этого приступать к действиям ниже, а также не забыть проверить логи системы Windows.[/stextbox]
Авторизуюсь на домен контроллере srv-dc2 под учетной записью ekzorchik (она состоит в следующих группах: Domain Admins, Enterprise Admins, Schema Admins)
Смотрю какие роли FSMO у какого контроллера домена сейчас:
Win + X — Командная строка (Администратор)
C:\Windows\system32>netdom query fsmo
Хозяин схемы srv-dc1.polygon.local
Хозяин именования доменов srv-dc1.polygon.local
PDC srv-dc1.polygon.local
Диспетчер пула RID srv-dc1.polygon.local
Хозяин инфраструктуры srv-dc1.polygon.local
Команда выполнена успешно.
[stextbox id=’alert’]
На заметку: Обозначение ролей FSMO
- Schema Master (Владелей схемы) – Отвечает за внесение изменений в схему Active Directory. Эта роль необходима для предотвращения противоречивых изменений с двух серверов.
- Domain Naming Master (Владелец доменных имен) – Отвечает за состав леса, принимает и удаляет домены.
- RID Master (Владелец относительных идентификаторов) – Выдает и удаляет относительные идентификаторы любых объектов (пользователей, компьютеров, принтеров) в домене.
- PDC Emulator (Эмулятор основного контроллера домена) – Эмулирует основной контроллер домена для приложений, работающих с возможностями домена Windows NT.
- Infrastructure Master (Владелец инфраструктуры домена) – Поддерживает идентификаторы удаляемых или перемещаемых объектов на время репликации изменений (с удалением или перемещением) между контроллерами домена.
[/stextbox]
Забирать роли можно как через GUI-оснастки, как делалось при миграции с Server 2003, 2008/R2, 2012/R2 так и через консоль командной строки. Я буду рассматривать второй вариант, т. к. это быстрее и чуть больше буду знать в последствии, также следует учесть что захват ролей можно сделать не только через powershell, но и через команду ntdsutil.
roles
connections
connect to server <имя сервера>
quit
Затем применительно к каждой роли FSMO производим захват/миграцию:
seize schema master
seize domain naming master
seize pdc
seize rid master
seize infrastructure master
После не забывает выйти из консоли команды ntdsutil вводом quit.
C:\Windows\system32>powershell
Windows PowerShell
(C) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.
PS C:\Windows\system32>
Вы можете ввести имя каждого – OperationMasterRole или числа используются для указания роли, где 0,1,2,3,4 — это эквивалент набранного: SchemaMaster, DomainNamingMaster, PDCEmulator, RIDaster, InfrastructureMaster
PS C:\Windows\system32> Move-ADDirectoryServerOperationMasterRole -Identity "srv-dc2" -OperationMasterRole 0,1,2,3,4
[stextbox id=’alert’]
Для справки:
PDCEmulator 0
RIDMaster 1
InfrastructureMaster 2
SchemaMaster 3
DomainNamingMaster 4
[/stextbox]
Перемещение роли хозяина операций
Вы хотите переместить роль "PDCEmulator" на сервер "srv-dc2.polygon.local"?
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
Move-ADDirectoryServerOperationMasterRole : Служба каталогов недоступна
строка:1 знак:1
+ Move-ADDirectoryServerOperationMasterRole -Identity "srv-dc2" -Operat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (srv-dc2:ADDirectoryServer) [Move-ADDirector...ationMasterRole], ADExcepti
on
+ FullyQualifiedErrorId : ActiveDirectoryServer:8207,Microsoft.ActiveDirectory.Management.Commands.MoveADDirectory
ServerOperationMasterRole
Так почему-то вываливается в ошибку, разбираюсь почему и как это исправить. Смотрю, какие роли FSMO сейчас у кого в подчинении:
PS C:\Windows\system32> netdom query fsmo
Хозяин схемы srv-dc1.polygon.local
Хозяин именования доменов srv-dc1.polygon.local
PDC srv-dc2.polygon.local
Диспетчер пула RID srv-dc2.polygon.local
Хозяин инфраструктуры srv-dc2.polygon.local
Команда выполнена успешно.
Так осталось разобраться с ошибкой и перевести роль «Хозяина схемы» и «Хозяина именования доменов»:
PS C:\Windows\system32>> Move-ADDirectoryServerOperationMasterRole -Identity "srv-dc2" -OperationMasterRole 4
Перемещение роли хозяина операций
Вы хотите переместить роль "DomainNamingMaster" на сервер "srv-dc2.polygon.local"?
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
Команда отработала без ошибок, а вот с ролью «Хозяин схемы» все также ошибка, применил ключ форсировки переноса роли:
PS C:\Windows\system32>> Move-ADDirectoryServerOperationMasterRole -Identity "srv-dc2" -OperationMasterRole 3 -force
Перемещение роли хозяина операций
Вы хотите переместить роль "SchemaMaster" на сервер "srv-dc2.polygon.local"?
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
PS C:\Windows\system32>> netdom query fsmo
Хозяин схемы srv-dc2.polygon.local
Хозяин именования доменов srv-dc2.polygon.local
PDC srv-dc2.polygon.local
Диспетчер пула RID srv-dc2.polygon.local
Хозяин инфраструктуры srv-dc2.polygon.local
Команда выполнена успешно.
PS C:\Windows\system32>> exit
Перемещение роли хозяина операций
Вы хотите переместить роль "PDCEmulator" на сервер "srv-dc2.polygon.local"?
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
PS C:\Windows\system32> exit
C:\Windows\system32>
Шаг №6: Удаляю контроллер домена под управлением Windows Server 2012 R2 из глобального каталога. На Server 2016 (srv-dc2) открываю оснастку:
Win + X — Панель управления — Администрирование — Active Directory Сайты и Службы и выделяю левой кнопкой мыши сервере srv-dc1 который являлся контроллером домена ранее в текущей сайте «Default-First-Site-Name» на NTDS Settings снимаю в свойствах галочку с настройки «Глобальный каталог»
Шаг №7: Понижаю уровень и удаляю контроллер домена под управлением Windows Server 2012 R2. Авторизуюсь на системе srv-dc1, запускаю командную строку с правами администратора и через powershell:
PS C:\Windows\system32> Uninstall-ADDSDomainController -DemoteOperationMasterRole -RemoveApplicationPartition
LocalAdministratorPassword: ********* → здесь указываю пароль который задавал для режима восстановлена контроллера домена, он у меня такой же как и для локального администратора
Confirm LocalAdministratorPassword: ********* → здесь указываю пароль который задавал для режима восстановлена контроллера домена, он у меня такой же как и для локального администратора
The server will be automatically restarted when this operation is complete. The
domain will no longer exist after you uninstall Active Directory Domain
Services from the last domain controller in the domain.
Do you want to continue with this operation?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):
A после ожидаю…все отработало как надо и система автоматически отправится в перезагрузку. Так и должно быть.
Шаг №8: Теперь можно повысить функциональный уровень домена и леса. Авторизуюсь на srv-dc2 (Windows Server 2016) и через Powershell:
Win + X — Командная строка (Администратор)
C:\Windows\system32>powershell
PS C:\Windows\system32> Set-ADDomainMode -identity polygon.local -DomainMode Windows2016Domain
Подтверждение
Вы действительно хотите выполнить это действие?
Выполнение операции "Set" над целевым объектом "DC=polygon,DC=local".
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
PS C:\Windows\system32> Set-ADForestMode -identity polygon.local -ForestMode Windows2016Forest
Подтверждение
Вы действительно хотите выполнить это действие?
Выполнение операции "Set" над целевым объектом "CN=Partitions,CN=Configuration,DC=polygon,DC=local".
[Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка
(значением по умолчанию является "Y"):
A
Шаг №9: Проверяю текущий функциональный уровень домена и леса:
PS C:\Windows\system32> get-addomain | fl Name,DomainMode ;get-adforest | fl Name,ForestMode
Name : polygon
DomainMode : Windows2016Domain
Name : polygon.local
ForestMode : Windows2016Forest
Как видно модернизация домена с Windows Server 2012R2 на Windows Server 2016 прошла успешно и я могу пользоваться новыми возможностями и строить доменную структуру на новом, самом последнем релизе что не может не радовать. Это же замечательно, когда все действия отрепетированы и для тебя нет ничего страшного если вдруг что-то пойдет не так.
Задача данной заметки выполнена и я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.