Какие роли FSMO существуют в Active Directory
В Active Directory существует пять ролей FSMO (Flexible Single Master Operations).
Три роли существуют отдельно в каждом домене:
- PDC Emulator — одна роль на домен;
- RID Master — одна роль на домен;
- Infrastructure Master — одна роль на домен.
Ещё две роли существуют в единственном экземпляре на весь лес:
- Schema Master — одна роль на лес;
- Domain Naming Master — одна роль на лес.
Посмотреть текущих владельцев всех пяти ролей можно через PowerShell или команду:
netdom query fsmo
Более подробно назначение каждой роли мы разбирали в статье Проверка ролей FSMO в Active Directory.
Когда нужно переносить роли FSMO
Перенос ролей FSMO требуется прежде всего тогда, когда текущий владелец ролей планируется вывести из эксплуатации или его доступность в дальнейшем не гарантируется.
Типичные ситуации:
- планируется понижение контроллера домена (demote);
- старый DC выводится из эксплуатации;
- контроллер заменяется новым сервером;
- планируется переустановка контроллера домена;
- выполняется миграция Active Directory на новые версии Windows Server;
- необходимо изменить архитектуру размещения FSMO в домене или лесу.
Если текущий владелец ролей исправен и остаётся в инфраструктуре, переносить FSMO только ради переноса обычно нет необходимости.
Что проверить перед переносом FSMO
Перед передачей ролей убедитесь, что новый контроллер домена работает корректно и нормально реплицируется с остальными DC.
Для общей диагностики можно выполнить:
dcdiag /v
Проверяем репликацию:
repadmin /replsummary
И более подробное состояние репликации:
repadmin /showrepl
Также желательно проверить DNS и убедиться, что новый DC действительно доступен другим контроллерам домена.
Перенос ролей FSMO через PowerShell
PowerShell — один из самых быстрых способов посмотреть текущих владельцев FSMO и перенести необходимые роли на другой контроллер домена.
Для работы используются командлеты модуля ActiveDirectory.
Проверяем текущих владельцев FSMO
Для просмотра ролей уровня домена выполняем:
Get-ADDomain | Format-List PDCEmulator,RIDMaster,InfrastructureMaster
Пример:
PDCEmulator : DC01-2019.exoip.local
RIDMaster : DC01-2019.exoip.local
InfrastructureMaster : DC01-2019.exoip.local
Для просмотра ролей уровня леса:
Get-ADForest | Format-List SchemaMaster,DomainNamingMaster
Пример:
SchemaMaster : DC01-2019.exoip.local
DomainNamingMaster : DC01-2019.exoip.local
Либо можно сразу вывести все пять ролей:
netdom query fsmo
Переносим PDC Emulator
В нашем примере новым владельцем будет контроллер:
DC02-2019
Переносим роль PDC Emulator:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole PDCEmulator -Confirm:$false
Переносим RID Master
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole RIDMaster -Confirm:$false
Переносим Infrastructure Master
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole InfrastructureMaster -Confirm:$false
Переносим Schema Master
Для переноса Schema Master выполняем:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole SchemaMaster -Confirm:$false
Переносим Domain Naming Master
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole DomainNamingMaster -Confirm:$false
Как перенести все роли FSMO одной командой
Если необходимо передать новому контроллеру сразу все пять ролей, необязательно выполнять пять отдельных команд.
Можно перечислить роли по именам:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster,SchemaMaster,DomainNamingMaster -Confirm:$false
Или использовать числовые идентификаторы ролей:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole 0,1,2,3,4 -Confirm:$false
Идентификаторы соответствуют ролям:
- 0 — PDC Emulator;
- 1 — RID Master;
- 2 — Infrastructure Master;
- 3 — Schema Master;
- 4 — Domain Naming Master.
Проверяем FSMO после переноса
После выполнения команд обязательно проверяем результат:
netdom query fsmo
Также можно повторно выполнить:
Get-ADDomain | Format-List PDCEmulator,RIDMaster,InfrastructureMaster
Get-ADForest | Format-List SchemaMaster,DomainNamingMaster
Новым владельцем перенесённых ролей должен отображаться DC02-2019.
После этого ещё раз проверяем состояние репликации:
repadmin /replsummary
Перенос FSMO через графический интерфейс
Все пять ролей можно перенести и через графические оснастки Windows Server. Но здесь есть особенность: для разных ролей используются разные инструменты.
Перенос PDC Emulator, RID Master и Infrastructure Master
Три роли уровня домена можно перенести через Active Directory Users and Computers.
Открываем оснастку и перед переносом убеждаемся, что она подключена к тому контроллеру домена, который должен стать новым владельцем роли.
После этого щёлкаем правой кнопкой мыши по домену и выбираем:
Operations Masters
В окне доступны три вкладки:
- RID;
- PDC;
- Infrastructure.
На каждой вкладке отображается текущий владелец соответствующей роли.
Для передачи роли новому контроллеру нажимаем Change и подтверждаем операцию.
Перенос Schema Master через GUI
Для роли Schema Master используется отдельная оснастка Active Directory Schema.
Если оснастка ещё не зарегистрирована, запускаем командную строку с повышенными правами и выполняем:
regsvr32 schmmgmt.dll
После успешной регистрации появится сообщение:
DllRegisterServer in schmmgmt.dll succeeded.
Теперь запускаем:
mmc.exe
В консоли выбираем:
File → Add/Remove Snap-in
Добавляем:
Active Directory Schema
Перед переносом подключаем оснастку к контроллеру домена, который должен стать новым владельцем Schema Master.
Затем щёлкаем правой кнопкой мыши по Active Directory Schema и выбираем:
Operations Master
Проверяем текущего и целевого владельца роли и нажимаем Change.
Перенос Domain Naming Master через GUI
Для переноса Domain Naming Master открываем оснастку:
Active Directory Domains and Trusts
Также предварительно убеждаемся, что оснастка подключена к нужному контроллеру домена.
Щёлкаем правой кнопкой мыши по Active Directory Domains and Trusts и выбираем:
Operations Master
В окне будет показан текущий владелец роли Domain Naming Master.
Нажимаем Change и подтверждаем перенос.
Захват ролей FSMO — Seize
Совсем другой сценарий возникает, если контроллер домена, на котором находились FSMO, вышел из строя и выполнить обычный transfer уже невозможно.
Например:
- сервер физически вышел из строя;
- повреждена операционная система;
- произошла невосстановимая потеря дисков;
- контроллер невозможно загрузить;
- принято решение окончательно вывести неисправный DC из домена.
В таком случае выполняется seize — принудительный захват FSMO другим контроллером домена.
Захват FSMO через PowerShell
Для аварийного переноса всех пяти ролей на DC02-2019 можно использовать:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster,SchemaMaster,DomainNamingMaster -Force -Confirm:$false
Либо вариант с числовыми идентификаторами:
Move-ADDirectoryServerOperationMasterRole "DC02-2019" -OperationMasterRole 0,1,2,3,4 -Force -Confirm:$false
Параметр:
-Force
позволяет выполнить принудительный захват роли, если её невозможно штатно передать от прежнего владельца.
Что проверить после переноса FSMO
После обычного transfer или аварийного восстановления ещё раз проверяем владельцев ролей:
netdom query fsmo
Затем состояние репликации:
repadmin /replsummary
И диагностику контроллера:
dcdiag
Для PDC Emulator дополнительно стоит проверить источник времени:
w32tm /query /source
Это особенно важно, если роль PDC Emulator была перенесена на новый контроллер.
FAQ
Сколько ролей FSMO существует в Active Directory?
Всего существует пять ролей: PDC Emulator, RID Master, Infrastructure Master, Schema Master и Domain Naming Master. Первые три существуют отдельно в каждом домене, последние две — на уровне леса.
Как быстро посмотреть текущих владельцев FSMO?
Один из самых простых способов — выполнить команду netdom query fsmo. Также владельцев можно получить через командлеты Get-ADDomain и Get-ADForest.
Можно ли перенести все пять FSMO одной командой?
Да. Командлет Move-ADDirectoryServerOperationMasterRole позволяет передать сразу несколько или все пять ролей новому контроллеру домена.
Нужно ли переносить FSMO перед удалением контроллера домена?
Если удаляемый контроллер является владельцем FSMO, роли должны оказаться на другом рабочем DC. При штатном выводе контроллера лучше заранее выполнить контролируемый transfer и проверить результат.
Чем Transfer FSMO отличается от Seize?
Transfer — штатная передача роли между работающими контроллерами домена. Seize — аварийный захват роли, применяемый при недоступности прежнего владельца, когда штатная передача невозможна.
Нужно ли переносить FSMO при изменении IP-адреса контроллера?
Само изменение IP-адреса не требует переноса FSMO. Важнее корректно изменить сетевую конфигурацию, DNS и проверить репликацию Active Directory.
Что проверить после переноса PDC Emulator?
Помимо владельцев FSMO и репликации, проверьте Windows Time Service и источник времени нового PDC Emulator. Если старый PDC был вручную настроен на внешние NTP-серверы, эта локальная конфигурация автоматически вместе с ролью не переносится.
Заключение
Перенос FSMO — штатная административная операция Active Directory. Если старый и новый контроллеры доступны, проще всего выполнить transfer через PowerShell с помощью Move-ADDirectoryServerOperationMasterRole. Все пять ролей при необходимости можно перенести одной командой.
Перед переносом важно проверить здоровье нового DC и репликацию, а после операции — убедиться, что владельцы ролей действительно изменились и Active Directory продолжает работать без ошибок.
Отдельное внимание требуется роли PDC Emulator: после её переноса необходимо проверить источник времени и конфигурацию Windows Time Service на новом контроллере.
Seize следует оставить для аварийных ситуаций. Если прежний владелец FSMO доступен, всегда предпочтительнее штатная передача ролей.
Если вы только добавляете новый контроллер домена, рекомендую сначала посмотреть статью Как добавить дополнительный контроллер домена в существующий домен.