В этой статье мы напомним для чего нужны контроллеры домена с ролями FSMO в Active Directory, как определить текущих владельцев FSMO ролей, как передать одну или несколько ролей хозяев операций на другой контроллер домена, а также как принудительно захватить FSMO роль в случае выхода из строя контроллера домена, которой является текущим владельцем роли.
- Для чего нужны FSMO роли в домене Active Directory?
- Определить владельцев FSMO ролей в домене
- Передача FSMO ролей с помощью PowerShell
- Передача FSMO ролей из командной строки с помощью утилиты ntdsutil
- Принудительный захват FSMO ролей Active Directory
- Передача FSMO ролей с помощью графических оснасток Active Directory
Для чего нужны FSMO роли в домене Active Directory?
Кратко напомним, для чего нужный роли FSMO (Flexible Single Master Operation, операции с одним исполнителем) в домене Active Directory.
В Active Directory большинство стандартных операций (таких как создание новых пользователей, групп безопасности, добавление компьютеров в домен) можно выполнять на любом контроллере домена. За распространение этих изменений по всему каталогу AD отвечает служба репликации AD. Различные конфликты (например, одновременное переименование пользователя на нескольких контроллерах домена) разрешаются по простому принципу — кто последний тот и прав. Однако есть ряд операций, при выполнении которых недопустимо наличие конфликта (например, добавление нового домена в лесу, изменении схемы AD, и т.д). Для выполнения операций, требующих обязательной уникальности, нужны контроллеры домена с ролями FSMO. Основная задача ролей FSMO – не допустить конфликты такого рода.
Всего в домене Active Directory может быть пять ролей FSMO (в этом случае DC с любой ролью называется хозяином операций).
Две уникальные роли для леса AD:
- Хозяин схемы (Schema master) – отвечает за внесение изменение в схему Active Directory. Например, при расширении с помощью команды adprep /forestprep, добавлении новых атрибутов (для управления ролью нужны права “Schema admins”);
- Хозяин именования домена (Domain naming master) – обеспечивает уникальность имен для всех создаваемых доменов и разделов приложений в лесу AD. Нужен для добавления/удаления доменов в лесу, установления доверительных отношений с другими доменами, для переименования доменов в AD (для управления нужны права “Enterprise admins”);
И три роли для каждого домена (для управления этими ролями нужны права Domain Admins):
- Эмулятор PDC (PDC emulator) – является основным обозревателем в сети Windows (Domain Master Browser – нужен для нормального отображения компьютеров в сетевом окружении), обрабатывает блокировку пользователей при неправильно введенном пароле (в соответствии с настройками парольной политики AD), приоритетен при смене (сбросе) пароля пользователя, является главным источником NTP времени в домене, используется для совместимости с клиентами Windows 2000/NT, используется корневыми серверами DFS для обновления информации о пространстве имён; является точкой подключения по-умолчанию для редактора доменных политик (GPMC);
- Хозяин инфраструктуры (Infrastructure Master) — отвечает за обновление междоменных объектных ссылок (например, когда пользователь одного домена добавляется в группу другого домена)
- Хозяин RID (RID Master) – этот хозяин операций сервер раздает другим DC пулы относительных идентификаторов RID (пачками по 500 штук) для создания уникальных идентификаторов новых объектов — SID.
Определить владельцев FSMO ролей в домене
Как определить какой контролер домена является хозяином/владельцем конкретной FSMO роли?
Чтобы вывести текущий владельцев FSMO ролей в AD, выполните команду:
netdom query fsmo
Schema master dc01.domain.loc Domain naming master dc01.domain.loc PDC dc01.domain.loc RID pool manager dc01.domain.loc Infrastructure master dc01.domain.loc
Можно просмотреть FSMO роли для другого домена:
netdom query fsmo /domain:contoso.com
В этом примере видно, что все FSMO роли расположены на контроллере домена DC01. При развертывании нового леса AD (домена), все FSMO роли помещаются на первый DC. Любой контроллер домена (кроме Read-only-DC (RODC) может быть хозяином любой FSMO роли. Соответственно, администратора домена может передать любую FSMO роль на любой другой контроллер домен.
Также для вывода информации о FSMO ролях можно использовать PowerShell командлет Get-ADDomainController (должен быть установлен модуль Active Directory для PowerShell из состава RSAT):
Get-ADDomainController -Filter * | Select-Object Name, Domain, Forest, OperationMasterRoles |Where-Object {$_.OperationMasterRoles}
Или можно по отдельности вывести владельцев FSMO ролей уровня леса и уровня домена:
Get-ADDomain | Select-Object InfrastructureMaster, RIDMaster, PDCEmulator
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster
Общие рекомендации Microsoft по размещении FSMO ролей на контроллерах домена:
- Роли уровня леса (Schema master и Domain naming master) нужно расположить на контроллере корневого домена;
- Все 3 доменные FSMO роли (PDC, RIDmaster, InfrMaster) можно разместить на одном DC с достаточной производительностью;
- Все DC в лесу должны быть серверами глобального каталога, т.к. это повышает надежность и производительность AD при этом роль Infrastructure Master фактически не нужна. Если у вас в домене есть DC без роли Global Catalog, нужно поместить FSMO роль Infrastructure Master именно на него;
- Не нужно постоянно перемещать FSMO между контроллерами домена без необходимости (например, не нужно передавать роль при плановой перезагрузке DC после установки обновлений). Кратковременный offline любого из владельцев FSMO никто не заметит.
Есть два сценария переноса ролей FSMO между контроллерами домена:
- Передача роли (transfer)– добровольная передача роли FSMO, при которой и предыдущий и новый хозяин операций работоспособен и доступен по сети (online). Используется в сценариях оптимизации инфраструктуры AD, выводе DC из эксплуатации, при плановом обслуживании, когда предполагается длительный (в течении всего рабочего дня или нескольких суток) офлайн текущего владельца роли FSMO
- Захват роли (seize) – принудительная передача FSMO роли, если предыдущий хозяин вышел из строя и восстановить его в разумные сроки не удастся.
В Active Directory доступно несколько инструментов для передачи (захвата) FSMO ролей:
- PowerShell
- Консольная утилита ntdsutil.exe
- Графический MMC оснастки управления AD — используются редко и только для добровольной передачи (не позволяют захватывать роль)
Передача FSMO ролей с помощью PowerShell
Проще всего для передачи FSMO ролей в домене воспользоваться PowerShell командой Move-ADDirectoryServerOperationMasterRole
Можно передать одну или несколько FSMO ролей за раз. В следующем примере мы передаем две роли на сервер DC02:
Move-ADDirectoryServerOperationMasterRole -Identity dc02 -OperationMasterRole PDCEmulator, RIDMaster
В аргументе OperationMasterRole можно указать как имя FSMO роли, так и ее индекс в соответствии с таблицей:
Роль | Индекс роли | Необходимые права (группа) для переноса |
PDCEmulator | 0 | Domain Admins |
RIDMaster | 1 | |
InfrastructureMaster | 2 | |
SchemaMaster | 3 | Schema Admins |
DomainNamingMaster | 4 | Enterprise Admins |
Например, чтобы передать сразу все FSMO роли на дополнительный контроллер домена, выполните:
Move-ADDirectoryServerOperationMasterRole -Identity dc03 -OperationMasterRole 0,1,2,3,4
Если при выполнении команды Move-ADDirectoryServerOperationMasterRole появится отказ в доступе, проверьте что ваша учетная запись добавлена в указанные группы безопасности.
Передача FSMO ролей из командной строки с помощью утилиты ntdsutil
ntdsutil
необходимо с осторожностью, четко понимая, что вы делаете, иначе можно сломать ваш домен Active Directory!- На контроллере домена откройте командную строку и введите команду:
ntdsutil
- Наберите команду:
roles
- Затем:
connections
- Затем нужно подключиться к DC, на который вы хотите передать роль:
connect to server <servername>
- Введите
q
и нажмите Enter. - Для передачи FSMO роли используется команда:
transfer role
, где <role> это роль которую вы хотите передать. Например:transfer schema master
,transfer RID
и т.д. - Подтвердите перенос FSMO роли;
- После переноса ролей нажмите
q
и Enter, чтобы завершить работу с ntdsutil.exe; - Перезагрузите контроллер домена.
Принудительный захват FSMO ролей Active Directory
Если DC с одной из FSMO ролью вышел из строя (и его не возможно восстановить) вы можете принудительно забрать любую из FSMO ролей. Но при этом крайне важно убедиться, что сервер, у которого забрали FSMO роль никогда (!!!) не должен появится в сети, если вы не хотите новых проблем с AD (даже если вы позднее восстановите DC из резервной копии).
Для принудительного захвата FSMO роли с помощью командлета Move-ADDirectoryServerOperationMasterRole, нужно добавить параметр -Force.
Например, чтобы захватить роль PDCEmulator и принудительно передать ее на DC02, выполните:
Move-ADDirectoryServerOperationMasterRole -Identity DC2 -OperationMasterRole PDCEmulator –Force
Также вы можете перенести роли FSMO на сервер DC02 с помощью утилиты ntdsutil. Используйте следующие команды:
ntdsutil
roles
connections
connect to server DC02 (на этот сервер вы перенесете роль)
quit
Для захвата различных ролей FSMO используйте команды:
seize schema master
seize naming master
seize rid master
seize pdc
seize infrastructure master
quit
Передача FSMO ролей с помощью графических оснасток Active Directory
Для переноса FSMO ролей можно использовать стандартные графические оснастки Active Directory. Операцию переноса желательно выполнять на DC с FSMO ролью. Если же консоль сервера не доступна, необходимо выполнить команду Change Domain Controller и выбрать connect to контроллер домена в mmc-оснастке.
Ролб FSMO | MMC оснастка |
RID master | Консоль Active Directory Users and Computers (
dsa.msc
) |
PDC Emulator | |
Infrastructure master | |
Domain naming master | Active Directory Domains and Trusts (
domain.msc
) |
Schema master | Active Directory Schema |
Передача ролей RID Master, PDC Emulator и Infrastructure Master
Для передачи ролей уровня домена (RID, PDC, Infrastructure Master:
- Откройте консоль Active Directory Users and Computers (
DSA.msc
); - Щелкните правой кнопкой мыши по имени вашего домена и выберите пункт Operations Master;
- Перед вами появится окно с тремя вкладками (RID, PDC, Infrastructure), на каждой из которых можно передать соответствующую роль, указав нового владельца FSMO роли и нажав кнопку Change.
Передача роли Schema Master
Для переноса FSMO уровня леса Schema Master используется оснастка Active Directory Schema.
- Сначала нужно зарегистрировать библиотеку schmmgmt.dll командой:
regsvr32 schmmgmt.dll
2. Откройте консоль MMC, набрав MMC в командной строке;
3. В меню выберите пункт File -> Add/Remove snap-in и добавьте консоль Active Directory Schema;
4. Щелкните правой кнопкой по корню консоли (Active Directory Schema) и выберите пункт Operations Master;
5. Введите имя контроллера, которому передается роль хозяина схемы, нажмите кнопку Change и OK. Если кнопка недоступна, проверьте что ваша учетная запись входит в группу Schema admins.
Передача FSMO роли Domain naming master
- Для передачи FSMO роли хозяина именования домена, откройте консоль управления доменами и доверием Active Directory Domains and Trusts;
- Щелкните правой кнопкой по имени вашего домена и выберите опцию Operations Master;
- Нажмите кнопку Change, укажите имя контроллера домена и нажмите OK.
Спасибо! Очень удобно передавать роли через командную строку. Есть небольшая очепятка: при подключении к серверу надо набирать не «connect to <servername>», a «connect to server <servername>», что в общем-то и присутствует на скриншоте.
Также для удобства можно вывести имена ролей, которые воспринимает ntdsutil:
Transfer infrastructure master
Transfer naming master
Transfer PDC
Transfer RID master
Transfer schema master
Спасибо за внимательность! Ошибку поправил
А что если в домене с двумя DC и настроенной репликации не станет Мастера. Ну вышел из строя носитель FSMO ролей, хозяин схемы и хозяин RID, что тогда? Всегда интересовал этот вопрос 🙂
Есть специальная процедура для случаев выхода из строя master-DC, которая называется принудительный захват ролей. Выполняется с помощью утилиты Ntdsutil
Вопрос. Возможно ли также само передать роли но на контроллер домена на виртуальный сервер hyper-v в этой же среде, а потом удалить DC на основном сервере?
Да, вполне можно сделать миграцию именно так. Перенос FSMO ролей на любой DC (виртуальный или физический). Если виртуальный, убедитесь что отключено синхронизация времени с хостом и при переносе PDC не забудье настроить синхронизацию с правильным ntp источником времени.
После переноса ролей понижаете первый DC до рядового сервера.
Отлично! Спасибо за дельные советы.
Добрый день. После операций в gui указано что надо перезагружать контроллер домена, а после powershell такого нет. Значит перазагрузка после powershell необязательна или про это просто пропущено?
В PowerShell действительно, после передачи роли не просит перезагрузки… Не нашел нигде инфы что нужен ребут… Значит не нужен 🙂
Добрый день!
А ничего страшного, если я при передаче ролей был только в группе Администраторов домена?
Роли вроде как успешно передались.
Но в некоторых источниках Интернета пишут, что при передаче ролей для леса — надо быть в группе Администраторов предприятия.
В оцифиальной доке пишут так:
The signed-in user should be a member of the Enterprise Administrators group to transfer Schema master or Domain naming master roles, or a member of the Domain Administrators group of the domain where the PDC emulator, RID master and the Infrastructure master roles are being transfer
У вас видимо все прошло успешно по 2 варианту
Столкнулся с «наследием» предыдущего админа: старый КД на windows server 2003, вот мучаюсь с переносом ролей. Поднял свежий КД на win server 2012 (для тестов), все роли успешно перенеслись, но сталкиваюсь с огромным количеством ошибок на КД при проверке dcdiag. Причём на оригинальном КД при проверке dcdiag ошибок нету вообще. Не понимаю, что происходит не так. Обложился всеми мануалами, всё проделывал три раза (благо, что всё на виртуалках Hyper-V и можно спокойно развернуть тестовый стенд и там пробовать, не ломая прод). Но всё равно огромное количество ошибок, связанных с репликацией.
Думаю дело в репликации SYSVOL
Нужно сперва сменить службу репликации каталога SYSVOL — FRS -> DFS
таким образом с 2003 можно переехать на 2008, сменить службу репликации каталога SYSVOL, повысить уровень домена\леса до 2008 а затем переехать на 2012, а вообще уже можно на 2016\2019
Очень дельная и ёмкая статья. Узнал больше и быстрее, чем прочтя дюжину статей у МС. Спасибо!
Перемещал FSMO роли с помощью Move-ADDirectoryServerOperationMasterRole. Все роли перенеслись, кроме мастера схемы.
Ошибка:
Move-ADDirectoryServerOperationMasterRole -Identity dc2 -OperationMasterRole SchemaMaster
Move-ADDirectoryServerOperationMasterRole : The directory service is unavailable
At line:1 char:1
+ Move-ADDirectoryServerOperationMasterRole -Identity dc2 -Operation ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (dc2:ADDirectoryServer) [Move-ADDirector...ationMasterRole], ADExceptio
n
+ FullyQualifiedErrorId : ActiveDirectoryServer:8207,Microsoft.ActiveDirectory.Management.Commands.MoveADDirectory
ServerOperationMasterRole
Проблема решилась при запуске этой же команды но с другого DC
А как быть если передавать роли в стандартной консоли Active Directory Users and Computers (DSA.msc)
где в Operations Master внизу можно нажать Change и передать второму КД роли, а если у меня 3 КД и там прописан второй, я хочу передать их третьему в граф.режиме, что тогда делать ?
Подключите коноль ADUC к третьему DC
Спасибо за статью.
Ёмко, без лишних слов, по существу, понятно.
PS C:\Users\ia> netdom query fsmo
Хозяин схемы server-01.kaskad.city
Хозяин именования домена server-02.kaskad.city
PDC server-02.kaskad.city
Диспетчер пула RID server-02.kaskad.city
Хозяин инфраструктур server-02.kaskad.city
Команда выполнена успешно
При попытке перенести мастер схемы через графический интерфейс, кнопка «Сменить» неактивна.
При попытке перенести через PS, пишет «недостаточно прав»
При попытке перенести через ntdcutil пишет недостаточно прав.
Включил себя в группы Администраторы, Администраторы домена, Администраторы схемы.
Подскажите, пожалуйста, что ещё надо сделать.
PS C:\Windows\system32> Move-ADDirectoryServerOperationMasterRole -Identity server-02 -OperationMasterRole SchemaMaster
Перемещение роли хозяина операций
Вы хотите переместить роль «SchemaMaster» на сервер «server-02.kaskad.city»?
[Y] Да — Y [A] Да для всех — A [N] Нет — N [L] Нет для всех — L [S] Приостановить — S [?] Справка
(значением по умолчанию является «Y»):Y
Move-ADDirectoryServerOperationMasterRole : Отказано в доступе
строка:1 знак:1
+ Move-ADDirectoryServerOperationMasterRole -Identity server-02 -OperationMasterRo …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (server-02:ADDirectoryServer) [Move-ADDirector…ationMasterRole], ADExcep
tion
+ FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.MoveADDirectorySer
verOperationMasterRole
Попробуй выполнить операцию переноса роли под встроенной учетной записью администратора домена.
Запустить оснастку Схема Active Directory на DC, который является хозяином схемы. В оснастке Схема Active Directory надо сначала сменить контроллер домена на тот, которому передает роль хозяина схемы. Потом обратно сменить контроллер домена на первоначальный и попробовать снова изменить хозяина схемы. Кнопка по смене должна быть активна.
Если у кого-то не выходит переместить SchemaMaster:
Вам нужны права администратора схемы, при этом группу администраторов схемы надо сделать основной (primary). Перелогиньтесь.
После этого можно переместить роль SchemaMaster командой:
Move-ADDirectoryServerOperationMasterRole -Identity your_dc -OperationMasterRole 3
Если не выходит, попробуйте с другого контроллера домена.
Консоль запускайте от имени администратора.
И не надо выдумывать всякую *** с консолями MMC. Вариантов много (зачем?), но для работы требуется всего один.
Эталонный внешний источник времени на контроллере, который возьмет роли, задавать после того, как на него перенесутся роли? Или до?
Если после, то короткое время не будет эталонного источника времени в домене. Это нормально?
Я бы просто заранее настроил DC, на который переносите PDC, на сихронизацию с тем же самым NTP источником, что и предудущий владелец. Так при переносе роли вы гарантированно не потеряете время.
Ребят подскажите как быть, было 2 сервера ДС1 и ДС2, ДС2 который выдавал сертификаты — мер без возможности восстановления. Подняли новый сервер, ДС1 сделали захват ролей, все прошло без ошибок… Но при запросе сертификата он ссылается на урл адрес — С2 и говорит что сервер RPC. Как исправить?
Роль сервера CA не относится к FSMO. Нужно переносить ее отдельно.
Добрый день.
есть два контроллера ДС1-мастер на 2008sp1 и ДС2 свежий на ws 2019
после установки компонентов и днс, с повышением до контроллера на ДС2, хочу передать все роли fsmo на него с ДС1
на ДС1, напомню он хозяин операций, мастер — кроме днс, стоит dhcp
вопрос: Если я передам роди с ДС1 на ДС2Ю как лучше мигрировать dhcp сервер
Передача ролей FSMO и перенос роли DHCP эта два отдельных процесса.
Можно выполнить в любом порядке.
Про перенос конфигурации и настроек зон DHCP между серверами смотрите тут.
https://winitpro.ru/index.php/2015/11/10/nastrojka-dhcp-servera-s-pomoshhyu-powershell/
Не забудьте перенастроить dhcp relay на сетевом оборудования на новый IP, если у вас несколько областей.
Что будет с ролью DNS сервер после миграции и понижения предыдущего контроллера домена? На новом мастер контроллере необходимо будет менять ip как был у предыдущего КД ?
Тут все зависит, от того что вы хотите получить.
Роль DNS сервера есть на всех DC. Клиентам без разницы, через что они будут резолвить. Главное чтобы на них был прописан IP DNS сервера, который доступен.
По сути вам не нужно менять IP нового DC, если вы можете просто заменить настройки DNS на клиентах на новый DC.
Столкнулся с миграцией ролей с 2008 на 2012, делал через оснастки AD.
И при миграции хозяина схемы. не было выбора сервера, был выбран по умолчанию тот же сервер где и находился хозяин хемы (и на старом и на новом сервере), хотя была активна кнопка сменить.
Для будущего, скажу как сделал. На том сервере, где находилась роль хозяина схемы, в оснастке схемы AD выбрал подключится к другому контроллеру и выбрал новый сервер. После этого зашел в хозяин операций и там уже был вписан новый сервер и активна кнопка сменить.