Что такое роли FSMO
Active Directory использует мультимастерную модель репликации: большинство изменений каталога можно выполнять на разных контроллерах домена.
Однако существуют операции, для которых одновременное выполнение на нескольких DC могло бы привести к конфликтам. Для таких задач используются роли FSMO.
Всего существует пять типов ролей:
- Schema Master — одна на лес;
- Domain Naming Master — одна на лес;
- RID Master — одна на каждый домен;
- PDC Emulator — одна на каждый домен;
- Infrastructure Master — одна на каждый домен.
Schema Master
Schema Master — роль уровня леса. Во всём лесу Active Directory существует только один её владелец.
За что отвечает Schema Master
Schema Master является владельцем операций изменения схемы Active Directory.
Схема определяет классы и атрибуты объектов, которые могут существовать в каталоге.
Изменение схемы может потребоваться, например, при:
- установке Microsoft Exchange Server;
- развёртывании некоторых корпоративных продуктов;
- добавлении собственных классов или атрибутов AD;
- других операциях, требующих расширения схемы.
Что произойдёт при недоступности Schema Master
Обычная работа пользователей и компьютеров домена, как правило, продолжится.
Но выполнить операции, требующие изменения схемы Active Directory, не получится до восстановления доступности владельца роли или переноса/захвата Schema Master.
Domain Naming Master
Domain Naming Master — вторая роль уровня леса.
За что отвечает Domain Naming Master
Эта роль участвует в операциях изменения пространства доменов и разделов каталога в лесу.
В частности, она необходима при добавлении и удалении доменов Active Directory.
Что произойдёт при недоступности Domain Naming Master
Повседневная работа существующих доменов обычно продолжится, однако операции, для которых требуется Domain Naming Master, выполнить не получится до восстановления роли.
RID Master
RID Master — роль уровня домена. В каждом домене Active Directory существует собственный RID Master.
За что отвечает RID Master
Каждому объекту безопасности Active Directory назначается уникальный SID.
Контроллеры домена получают от RID Master диапазоны RID (Relative Identifier) и используют их при создании новых объектов безопасности.
Например:
- пользователей;
- групп;
- компьютеров.
Что произойдёт при недоступности RID Master
Создание объектов не прекращается мгновенно. Контроллеры домена продолжают использовать уже полученные диапазоны RID.
Проблемы возникнут, если доступные контроллерам RID-пулы будут исчерпаны, а получить новые у RID Master они не смогут.
PDC Emulator
PDC Emulator — одна из наиболее важных в повседневной работе ролей FSMO.
В каждом домене существует собственный PDC Emulator.
За что отвечает PDC Emulator
У роли несколько важных функций.
- участие в обработке изменений паролей и ошибок аутентификации после недавней смены пароля;
- участие в обработке блокировок учётных записей;
- важная роль в иерархии синхронизации времени домена;
- предпочтительный DC для ряда административных операций и инструментов;
- участие в обеспечении совместимости с историческими механизмами Windows-доменов.
PDC Emulator и синхронизация времени
Особое значение имеет роль PDC Emulator в службе Windows Time.
В доменной иерархии компьютеры обычно синхронизируют время через Active Directory. PDC Emulator корневого домена леса находится на вершине этой доменной иерархии времени и обычно настраивается на получение времени от надёжного внешнего NTP-источника.
Проверить текущий источник времени можно командой:
w32tm /query /source
Что произойдёт при недоступности PDC Emulator
Кратковременная недоступность PDC Emulator обычно не означает остановку всего домена, однако может повлиять на операции, для которых эта роль имеет особое значение.
Возможны проблемы или задержки, связанные с:
- недавно изменёнными паролями;
- обработкой блокировок учётных записей;
- синхронизацией времени;
- некоторыми административными операциями.
Infrastructure Master
Infrastructure Master — третья роль уровня домена.
За что отвечает Infrastructure Master
Роль участвует в поддержании актуальности ссылок на объекты из других доменов.
Это особенно актуально для многодоменных лесов, где объекты одного домена могут использовать ссылки на объекты другого.
Infrastructure Master и Global Catalog
С этой ролью связано классическое правило размещения: в многодоменном лесу Infrastructure Master традиционно не размещают на контроллере Global Catalog, если существуют DC, которые не являются GC.
Однако здесь есть важные исключения.
- Если все контроллеры домена являются Global Catalog, роль можно размещать на любом из них.
- В однодоменном лесу это ограничение практического значения не имеет.
Как быстро проверить все роли FSMO через CMD
Самый простой способ посмотреть владельцев всех ролей FSMO — команда:
netdom query fsmo
Её можно выполнить как в обычной командной строке, так и в PowerShell.
Пример:
PS C:\> netdom query fsmo
Schema master DC01-2019.exoip.local
Domain naming master DC01-2019.exoip.local
PDC DC01-2019.exoip.local
RID pool manager DC01-2019.exoip.local
Infrastructure master DC01-2019.exoip.local
The command completed successfully.
В нашем примере все пять ролей находятся на контроллере:
DC01-2019.exoip.local
Проверка ролей FSMO через PowerShell
PowerShell позволяет отдельно получить роли уровня леса и роли текущего домена.
Для работы потребуется модуль ActiveDirectory.
Проверяем роли уровня леса
Чтобы посмотреть владельцев Schema Master и Domain Naming Master, выполняем:
Get-ADForest | Format-List SchemaMaster,DomainNamingMaster
Пример результата:
SchemaMaster : DC01-2019.exoip.local
DomainNamingMaster : DC01-2019.exoip.local
Проверяем роли уровня домена
Для RID Master, PDC Emulator и Infrastructure Master выполняем:
Get-ADDomain | Format-List RIDMaster,PDCEmulator,InfrastructureMaster
Получаем:
RIDMaster : DC01-2019.exoip.local
PDCEmulator : DC01-2019.exoip.local
InfrastructureMaster : DC01-2019.exoip.local
Выводим все FSMO одним PowerShell-скриптом
Если необходимо получить все пять ролей в одном результате, можно использовать небольшой PowerShell-скрипт:
$forestInfo = Get-ADForest |
Select-Object SchemaMaster, DomainNamingMaster
$domainInfo = Get-ADDomain |
Select-Object RIDMaster, PDCEmulator, InfrastructureMaster
$AllFSMO = [PSCustomObject]@{
SchemaMaster = $forestInfo.SchemaMaster
DomainNamingMaster = $forestInfo.DomainNamingMaster
RIDMaster = $domainInfo.RIDMaster
PDCEmulator = $domainInfo.PDCEmulator
InfrastructureMaster = $domainInfo.InfrastructureMaster
}
$AllFSMO | Format-List
В результате получим удобный список всех ролей:
SchemaMaster : DC01-2019.exoip.local
DomainNamingMaster : DC01-2019.exoip.local
RIDMaster : DC01-2019.exoip.local
PDCEmulator : DC01-2019.exoip.local
InfrastructureMaster : DC01-2019.exoip.local
Получаем информацию через Get-ADInfo.ps1
Для быстрой диагностики можно использовать наш PowerShell-скрипт:
Например, если скрипт находится в каталоге:
C:\scripts
запустить его можно:
C:\scripts\Get-ADInfo.ps1
Скрипт показывает не только владельцев FSMO, но и дополнительную информацию об Active Directory.
Пример части вывода:
Active Directory Info
Computers = 5
Workstions = 1
Servers = 4
Users = 74
Groups = 88
Active Directory Forest Name = exoip.local
Active Directory Forest Mode = Windows2016Forest
Active Directory Domain Mode = Windows2016Domain
FSMO Role Owners
Schema Master = DC01-2019.exoip.local
Domain Naming Master = DC01-2019.exoip.local
RID Master = DC01-2019.exoip.local
PDC Emulator = DC01-2019.exoip.local
Infrastructure Master = DC01-2019.exoip.local
Проверка ролей FSMO через GUI
Через графический интерфейс все пять ролей также можно посмотреть, но для этого используются три разные оснастки.
- Active Directory Users and Computers — RID Master, PDC Emulator и Infrastructure Master;
- Active Directory Domains and Trusts — Domain Naming Master;
- Active Directory Schema — Schema Master.
Как посмотреть Schema Master через GUI
Оснастка Active Directory Schema может быть не зарегистрирована в системе по умолчанию.
Открываем Command Prompt с повышенными правами и выполняем:
regsvr32 schmmgmt.dll
При успешной регистрации появится сообщение:
DllRegisterServer in schmmgmt.dll succeeded.
Теперь запускаем окно Run.
Вводим:
mmc.exe
В консоли выбираем:
File → Add/Remove Snap-in
Выбираем Active Directory Schema, нажимаем Add, затем OK.
После загрузки оснастки щёлкаем правой кнопкой мыши по Active Directory Schema и выбираем:
Operations Master
В открывшемся окне будет указан текущий владелец роли Schema Master.
Как посмотреть Domain Naming Master через GUI
Запускаем оснастку:
Active Directory Domains and Trusts
Щёлкаем правой кнопкой мыши по Active Directory Domains and Trusts и выбираем:
Operations Master
В открывшемся окне будет указан контроллер домена, являющийся владельцем Domain Naming Master.
Как посмотреть RID Master, PDC Emulator и Infrastructure Master
Для оставшихся трёх ролей открываем:
Active Directory Users and Computers
Щёлкаем правой кнопкой мыши по домену и выбираем:
Operations Masters
В открывшемся окне доступны три вкладки:
- RID — RID Master;
- PDC — PDC Emulator;
- Infrastructure — Infrastructure Master.
На каждой вкладке отображается текущий владелец соответствующей роли.
Что ещё проверить вместе с FSMO
Знать расположение FSMO полезно, но этого недостаточно для оценки состояния Active Directory.
Если вы проводите диагностику домена или планируете перенос ролей, дополнительно проверьте репликацию:
repadmin /replsummary
Более подробную информацию можно получить:
repadmin /showrepl
Для диагностики контроллера домена используйте:
dcdiag
А для PDC Emulator дополнительно имеет смысл проверить источник времени:
w32tm /query /source
FAQ
Сколько ролей FSMO существует в Active Directory?
Существует пять типов ролей FSMO: Schema Master, Domain Naming Master, RID Master, PDC Emulator и Infrastructure Master. Первые две относятся к лесу, последние три существуют отдельно в каждом домене.
Какой командой быстрее всего посмотреть все FSMO?
Самый простой вариант — выполнить netdom query fsmo. Команда покажет владельцев всех пяти типов ролей для соответствующего леса и домена.
Как проверить FSMO через PowerShell?
Роли уровня леса можно получить через Get-ADForest, а роли текущего домена — через Get-ADDomain.
Можно ли разместить все пять FSMO на одном контроллере домена?
В однодоменном лесу все пять ролей могут находиться на одном контроллере домена. Такая конфигурация технически допустима, хотя при проектировании инфраструктуры необходимо учитывать отказоустойчивость и наличие других исправных DC.
Можно ли разместить Infrastructure Master на Global Catalog?
Да, в частности если все контроллеры соответствующего домена являются Global Catalog или если речь идёт об однодоменном лесу. Классическое ограничение имеет значение прежде всего в определённых конфигурациях многодоменного леса.
Какая роль FSMO отвечает за время?
Особую роль в доменной иерархии времени играет PDC Emulator. PDC Emulator корневого домена леса находится на вершине доменной иерархии Windows Time и обычно синхронизируется с надёжным внешним источником времени.
Как перенести FSMO на другой контроллер домена?
Для штатного переноса можно использовать PowerShell-командлет Move-ADDirectoryServerOperationMasterRole или соответствующие графические оснастки Active Directory.
Заключение
В Active Directory существует пять типов ролей FSMO. Schema Master и Domain Naming Master работают на уровне леса, а RID Master, PDC Emulator и Infrastructure Master существуют отдельно в каждом домене.
Для быстрой проверки владельцев всех ролей проще всего использовать команду netdom query fsmo. PowerShell удобнее для автоматизации и получения структурированных данных, а графические оснастки позволяют посмотреть те же сведения через GUI.
Особое внимание стоит уделять PDC Emulator, поскольку эта роль участвует сразу в нескольких важных механизмах домена, включая обработку паролей и доменную иерархию синхронизации времени.
При диагностике Active Directory не ограничивайтесь только проверкой владельцев FSMO. Дополнительно контролируйте репликацию, DNS и общее состояние контроллеров домена.
Если роли необходимо перенести на новый сервер, смотрите следующую инструкцию: Как перенести роли FSMO в Active Directory.