FSMO роли (Flexible Single Master Operations) — это специальные роли доменных служб Active Directory, которые выполняются одним доменным контроллером в пределах домена или леса. Эти роли критически важны для функционирования всей инфраструктуры, поскольку предотвращают конфликты при репликации данных между контроллерами домена.
Что такое FSMO роли и зачем они нужены?
В Active Directory используется многомастерная модель репликации, где изменения можно вносить на любом доменном контроллере. Однако для определенных операций такой подход недопустим, поскольку может привести к конфликтам. Для таких операций Microsoft реализовала одномастерную модель, где только один специально назначенный доменный контроллер имеет право выполнять определенные операции.
Всего существует пять ролей FSMO, которые делятся на две категории:
Роли уровня леса:
-
Хранитель схемы (Schema Master) — управляет всеми обновлениями и изменениями схемы Active Directory. В лесу может быть только один хранитель схемы.
-
Хранитель имен доменов (Domain Naming Master) — управляет добавлением и удалением доменов в лесу. Гарантирует уникальность имен доменов в пределах леса.
Роли уровня домена (есть в каждом домене):
-
Хранитель RID (RID Master) — предоставляет пулы относительных идентификаторов (RID) другим доменным контроллерам для создания объектов безопасности (пользователей, групп, компьютеров).
-
Эмулятор PDC (PDC Emulator) — обеспечивает обратную совместимость, обрабатывает изменения паролей, блокировки учетных записей и синхронизацию времени в домене.
-
Хранитель инфраструктуры (Infrastructure Master) — обновляет ссылки на объекты между разными доменами, обеспечивая корректность отображения членства в группах.
Как определить текущих владельцев ролей FSMO
Использование PowerShell (рекомендуемый способ)
Самый быстрый и эффективный способ проверки — использование команд PowerShell:
# Для получения ролей уровня домена Get-ADDomain | Select-Object RIDMaster, PDCEmulator, InfrastructureMaster # Для получения ролей уровня леса Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster # Одной командой для всех ролей Get-ADDomainController -Filter * | Select-Object Name, Domain, Forest, OperationMasterRoles | Where-Object {$_.OperationMasterRoles}
Использование командной строки
Быстрый просмотр всех ролей FSMO возможен с помощью одной команды:
netdom query fsmo
Графический интерфейс
-
RID, PDC, Infrastructure Master: Оснастка «Active Directory — пользователи и компьютеры» → ПКМ на домене → «Операционные мастера».
-
Domain Naming Master: Оснастка «Active Directory — домены и отношения доверия» → ПКМ на корневом элементе → «Операционный мастер».
-
Schema Master: Требуется предварительная регистрация библиотеки
regsvr32 schmmgmt.dll, затем добавление оснастки «Схема Active Directory» в MMC.
Подробное руководство по передаче ролей FSMO
Подготовка к передаче ролей
Перед передачей ролей убедитесь, что:
-
Исходный доменный контроллер доступен и функционирует нормально
-
Сетевое соединение между контроллерами стабильно
-
Репликация Active Directory работает корректно
-
Вы вошли под учетной записью с необходимыми правами (для Schema Master требуется членство в группе Schema Admins)
Способ 1: Передача с помощью PowerShell
Это наиболее эффективный метод передачи ролей. Выполняйте команды на целевом доменном контроллере, который должен принять роли:
# Передача отдельных ролей Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole PDCEmulator Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole RIDMaster Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole InfrastructureMaster Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole SchemaMaster Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole DomainNamingMaster # Или передача всех ролей одной командой Move-ADDirectoryServerOperationMasterRole -Identity "Имя_Целевого_ДС" -OperationMasterRole DomainNamingMaster,PDCEmulator,RIDMaster,SchemaMaster,InfrastructureMaster
Способ 2: Передача через графический интерфейс
Для RID, PDC Emulator и Infrastructure Master:
-
Откройте «Active Directory — пользователи и компьютеры»
-
Щелкните правой кнопкой на домене → «Подключиться к контроллеру домена»
-
Выберите целевой контроллер
-
Снова щелкните правой кнопкой на домене → «Все задачи» → «Операционные мастера»
-
На соответствующей вкладке нажмите «Изменить»
Для Domain Naming Master:
-
Откройте «Active Directory — домены и отношения доверия»
-
Щелкните правой кнопкой на корневом элементе → «Подключиться к контроллеру домена»
-
Выберите целевой контроллер
-
Снова щелкните правой кнопкой → «Операционный мастер»
-
Нажмите «Изменить»
Для Schema Master:
-
Зарегистрируйте библиотеку:
regsvr32 schmmgmt.dll -
Откройте MMC и добавьте оснастку «Схема Active Directory»
-
Щелкните правой кнопкой на «Схема Active Directory» → «Изменить контроллер домена»
-
Выберите целевой контроллер
-
Щелкните правой кнопкой → «Операционный мастер»
-
Нажмите «Изменить»
Рекомендации по размещению ролей FSMO
В домене с одним контроллером
Все пять ролей размещаются на единственном доменном контроллере.
В домене с двумя контроллерами
-
DC1: RID Master, PDC Emulator, Infrastructure Master
-
DC2: Schema Master, Domain Naming Master
В многодоменных лесах
-
Forest-wide роли размещайте на PDC эмуляторе корневого домена леса
-
Domain-wide роли размещайте на одном контроллере с достаточной производительностью
-
PDC Emulator должен быть на наиболее производительном оборудовании
-
Infrastructure Master не должен находиться на глобальном каталоге (кроме случая, когда все контроллеры домена являются глобальными каталогами)
Что делать при сбое контроллера с ролями FSMO?
Когда текущий владелец доступен
Всегда используйте передачу (transfer) ролей через описанные выше методы.
Когда текущий владелец недоступен
Требуется захват (seize) ролей с помощью утилиты ntdsutil:
ntdsutil roles connections connect to server Имя_Целевого_ДС quit seize Schema master seize Domain naming master seize RID master seize PDC seize Infrastructure master quit quit
Внимание! Захват ролей выполняется только в крайних случаях, когда исходный контроллер невозможно восстановить. После захвата ролей исходный контроллер никогда не должен снова подключаться к сети.
Мониторинг и диагностика ролей FSMO
Для проверки состояния ролей FSMO используйте команду:
dcdiag /test:FSMOCheck /v
Для мониторинга конкретной роли, например RID Master:
dcdiag /test:RidManager /v
Заключение
Правильное управление ролями FSMO — критически важный аспект администрирования Active Directory. Регулярная проверка владельцев ролей, их оптимальное размещение и корректная процедура передачи обеспечат стабильную работу вашей инфраструктуры. PowerShell предоставляет наиболее эффективные инструменты для выполнения этих задач, позволяя автоматизировать процессы и минимизировать человеческие ошибки.
Помните, что наиболее критичной ролью является PDC Emulator, чья недоступность сразу отразится на работе пользователей, тогда как остальные роли могут быть недоступны в течение некоторого времени без немедленного воздействия на функциональность домена.