Работа с repadmin
repadmin — утилита командной строки, предназначенная для диагностики и исправления проблем с репликацией в Active Directory. Она входит в состав Windows Server и доступна через набор инструментов Remote Server Administration Tools (RSAT), что позволяет использовать ее на клиентских версиях Windows (Windows 10, Windows 11).
Поскольку контроллер домена Эллес может вводиться в домен Active Directory и включаться в контур репликации, он обеспечивает совместимость с утилитой repadmin для оперативного выявления и устранения проблем репликации.
В разделе описываются некоторые из доступных подкоманд repadmin с примерами их использования для диагностики участия контроллера домена Эллес в процессе репликации в Active Directory.
См. описание синтаксиса, параметров и подкоманд repadmin, а также инструкции по использованию repadmin для диагностики и устранения проблем репликации в официальной документации Microsoft.
|
Предварительные требования
repadmin является утилитой Windows и не может быть запущена на сервере с контроллером домена Эллес.
Возможные варианты запуска:
-
контроллер домена Windows Server;
-
клиентская система Windows (Windows 10/11 Pro, Enterprise) с установленным набором инструментов RSAT.
Файл утилиты обычно расположен по пути:
C:\Windows\System32\repadmin.exe
Для клиентских систем требуется установка следующих компонентов RSAT:
-
RSAT: Active Directory Domain Services and Lightweight Directory Services Tools;
-
RSAT: Active Directory Administrative Center;
-
RSAT: Active Directory PowerShell.
После установки RSAT repadmin становится доступна без дополнительной настройки.
Для полноценной диагностики репликации требуются расширенные права:
-
рекомендуется: членство в группе
Domain Admins; -
минимально допустимо: права, позволяющие читать конфигурационный и доменный разделы каталога.
Подкоманды, анализирующие метаданные объектов (/showobjmeta, /showchanges), требуют административных прав и не работают под обычным пользователем домена.
Общий синтаксис
repadmin <подкоманда> <аргументы> [/u:{домен\пользователь}] [/pw:{пароль | *}] [/retry[:<повторы>][:<задержка>]] [/csv]
Параметры:
-
подкоманда— выполняемая операция; -
/u— домен и имя пользователя с правами для выполнения вызываемой операции (домен и имя пользователя разделяются косой чертой);Параметр не поддерживает использование UPN для выполнения аутентификации в домене.
-
/pw— пароль для пользователя, указанного в параметре/u; -
/retry— попытки подключения при ошибках RPC-вызовов; -
/csv/— вывод в CSV-формате.
Для многих подкоманд первым аргументом должен быть список контроллеров домена (DC_LIST) в формате:
{<имя_КД> | * |<частичное_имя_сервера>* | site:<имя_сайта> |gc: |fsmo_<тип>:[<имя> | <имя_сайта>]}
Список может содержать:
-
имя контроллера домена (DNS-имя, NetBIOS-имя или IP-адрес);
-
*— все контроллеры домена в лесу; -
маска имени контроллера домена;
-
site:<имя_сайта>— все контроллеры домена в конкретном сайте; -
gc— все серверы глобального каталога; -
fsmo_<тип>— контроллеры домена с указанной FSMO-ролью (например:fsmo_pdc:[раздел_каталога],fsmo_rid:[раздел_каталога],fsmo_im:[раздел_каталога],fsmo_istg:[<имя_сайта>],fsmo_dnm:,fsmo_schema:).
Общие параметры
Ряд параметров может использоваться практически во всех сценариях диагностики:
-
/verbose— расширенный вывод, который может быть полезен для анализа сложных ситуаций; -
/latency— показывает задержки репликации; -
/errorsonly— выводит только ошибки; -
/homeserver:<имя_КД>— выполняет операцию от имени указанного контроллера домена; -
/nocache— игнорирует локальный RPC-кэш.
/showutdvec
Подкоманда отображает наибольший поддерживаемый последовательный номер обновления (Update Sequence Number, USN), зарегистрированный на указанном контроллере домена для заданного раздела каталога, а также время последнего обновления USN. В данном случае подкоманда возвращает содержимое вектора up-to-dateness (UTDVEC) для указанного доменного контроллера.
Синтаксис
repadmin /showutdvec <DC_LIST> <раздел_каталога> [/nocache] [/latency]
Параметры:
-
DC_LIST— список контроллеров домена через пробел; -
раздел_каталога— DN раздела каталога.
Примеры
Пример получения максимального значения USN на контроллере домена Эллес EllesDC1 для доменного раздела:
repadmin /showutdvec ellesdc1 dc=elles,dc=inno,dc=tech
В списке для каждого контролера указывается:
-
USN— целое число; -
Time — время в формате
YYYY-MM-DD hh:mm:ss.
Например:
Default-First-Site-Name\ELLESDC1 @ USN 21881 @ Time 2025-12-23 13:23:26
/showchanges
Подкоманда отображает изменения по репликации для указанного раздела каталога или указанного объекта.
Она может использоваться для определения изменений, которые еще не были реплицированы между двумя контроллерами домена — партнерами по репликации, или для отслеживания статистики изменений, которые были реплицированы между этими партнерами.
Поддерживается два варианта работы.
Вариант 1
Подкоманда показывает:
-
изменения, полученные для указанного раздела каталога;
-
при указании ключа
/statistics— статистику по количеству изменений объектов.
Синтаксис
repadmin/showchanges <имя_или_GUID_КД> <раздел_каталога> [/cookie: <файл>] [/atts: <атрибут1>,<атрибут2>,...] [/statistics]
Параметры:
-
имя_или_GUID_КД— имя хоста или значениеDSA object GUIDконтроллера домена, где размещается раздел каталога, информацию по изменениям в котором требуется получить; -
раздел_каталога— DN раздела каталога, информацию по изменениям в котором требуется получить; -
/cookie— имя файла для сохранения списка изменений; -
/atts— список атрибутов (через запятую без пробелов), информацию по которым требуется получить; -
/statistics— отображать сводную информацию по изменениям вместо списка отдельных изменений.
Примеры
Пример получения изменений для указанного раздела каталога:
repadmin /showchanges ellesdc1 dc=elles,dc=inno,dc=tech
Подкоманда отображает список изменений объектов. Для каждого объекта представлен список изменений атрибутов. Для каждого атрибута также указано количество значений в формате <количество> > <имя атрибута>: <значения атрибута>.
Пример получения сводной информации по количеству изменений:
repadmin /showchanges ellesdc1 dc=elles,dc=inno,dc=tech /statistics
Подкоманда возвращает статистику изменений объектов.
Например:
Using empty cookie (full sync). ==== SOURCE DSA: ellesdc1 ==== ********* Cumulative packet totals ************ Packets: 1 Objects: 2 Object Additions: 0 Object Modifications: 2 Object Deletions: 0 Object Moves: 0 Attributes: 6 Values: 6 Dn-valued Attributes: 2 MaxDnVals on any attr:1 ObjectDn with maxattr:C Attrname with maxattr:i #dnvals 1-250 251-500 501-750 751-1000 1000+ add 0 0 0 0 0 mod 2 0 0 0 0 *********************************************** ********* Grand total ************************* Packets: 1 Objects: 2 Object Additions: 0 Object Modifications: 2 Object Deletions: 0 Object Moves: 0 Attributes: 6 Values: 6 Dn-valued Attributes: 2 MaxDnVals on any attr:1 ObjectDn with maxattr:C Attrname with maxattr:i #dnvals 1-250 251-500 501-750 751-1000 1000+ add 0 0 0 0 0 mod 2 0 0 0 0 ***********************************************
Вариант 2
Подкоманда показывает состояние репликации для контроллера домена с указанного источника для заданного раздела каталога.
Синтаксис
repadmin /showchanges <имя_КД> <DSA_GUID_источника> <раздел_каталога> [/verbose] [/statistics] [/noincremental] [/objectsecurity] [/ancestors] [/atts: <атрибут1>,<атрибут2>,...] [/filter: <ldap_фильтр>]
Параметры:
-
имя_КД— имя контроллера домена (DNS-имя, NetBIOS-имя или IP-адрес); -
DSA_GUID_источника— значениеDSA object GUIDконтроллера домена — источника изменений;Для получения значения DSA object GUIDможет использоваться подкомандаsamba-tool drs showreplна контроллере домена Эллес илиrepadmin /showrepsна контроллере домена Windows Server. -
раздел_каталога— DN раздела каталога, информацию по изменениям в котором требуется получить; -
/statistics— отобразить статистику изменений объектов; -
/noincremental— выполнить полную (неинкрементальную) синхронизацию для получения списка изменений вместо использования стандартного векторного обновления (USN); -
/objectsecurity— включать в вывод информацию об изменениях в дескрипторе безопасности; -
/ancestors— отображать изменения не только для указанного объекта, но и для всех его родительских контейнеров вплоть до корня раздела; -
/atts— отображаться изменения только для указанных атрибутов; -
/filter— отображать изменения, соответствующие заданному LDAP-фильтру.
Примеры
Пример получения информации о состоянии репликации с одного контроллера Эллес (EllesDC2), для которого в вызове указано значение DSA object GUID, на другой контроллер Эллес (EllesDC1):
repadmin /showchanges ellesdc1 db8c0efe-5d46-4819-8ebd-29a5c7791e7c dc=elles,dc=inno,dc=tech
Подкоманда возвращает значения USN для указанного источника, время и статус последней попытки репликации, список ожидающих репликации изменений (при наличии) и т. д.
Например:
Building starting position from destination server ellesdc1
Source Neighbor:
dc=elles,dc=inno,dc=tech
pszDsa = db8c0efe-5d46-4819-8ebd-29a5c7791e7c._msdcs.testk.lan
==== INBOUND NEIGHBORS ======================================
dc=elles,dc=inno,dc=tech
Default-First-Site-Name\ELLESDC2 via RPC
DSA object GUID: db8c0efe-5d46-4819-8ebd-29a5c7791e7c
Address: db8c0efe-5d46-4819-8ebd-29a5c7791e7c._msdcs.testk.lan
DSA invocationID: a55289e4-b93d-4a82-b972-c48b8c74f9e8
SYNC_ON_STARTUP DO_SCHEDULED_SYNCS
USNs: 15026/OU, 15026/PU
Last attempt @ 2025-12-24 10:50:51 was successful.
Destination's up-to-date vector:
0fc73512-6361-47fd-ad91-f8593eb9a907 @ USN 482775
3481f529-2333-4192-8ec2-65834d5857c5 @ USN 181131
3e1a5834-ae6e-4854-b441-73644a65af52 @ USN 16839
4473f025-cc86-4275-96d0-f520aece21c4 @ USN 21883
a55289e4-b93d-4a82-b972-c48b8c74f9e8 @ USN 15113
==== SOURCE DSA: (null) ====
No Changes
/addrepsto
Подкоманда добавляет для контроллера домена партнера, которому будут отсылаться исходящие уведомления об изменениях для указанного раздела каталога. В результате работы подкоманды на контроллере домена устанавливается атрибут repsTo для объекта соответствующего раздела каталога.
В условиях обычной эксплуатации нет необходимости выполнять эту команду, так как KCC автоматически создает атрибуты repsTo на целевых контроллерах домена (DSA) на основе записей repsFrom других контроллеров домена (DSA).
|
Синтаксис
repadmin/addrepsto <раздел_каталога> <имя_КД_источника> <имя_партнера_repsTo> <DSA_GUID_партнера_repsTo>
Параметры:
-
раздел_каталога— раздел каталога, для которого требуется установить атрибутrepsTo; -
имя_КД_источника— имя контроллера домена (DNS-имя, NetBIOS-имя или IP-адрес); -
имя_партнера_repsTo— имя контроллера домена — партнера по репликации, которому должны отсылаться исходящие уведомления об изменения в указанном разделе каталога; -
DSA_GUID_партнера_repsTo— значениеDSA object GUIDконтроллера домена — партнера по репликации, которому должны отсылаться исходящие уведомления об изменениях в указанном разделе каталога.Для получения значения DSA object GUIDможет использоваться подкомандаsamba-tool drs showreplна контроллере домена Эллес илиrepadmin /showrepsна контроллере домена Windows Server.
Примеры
Пример добавления партнера для отправки уведомлений об изменениях:
repadmin /addrepsto dc=elles,dc=inno,dc=tech ellesdc1 ellesdc2 db8c0efe-5d46-4819-8ebd-29a5c7791e7c
Если атрибут repsTo раздела каталога, переданного в качестве аргумента при вызове, изначально не был заполнен, то в результате выполнения подкоманды он заполняется и указывает на партнера.
Ели атрибут repsTo уже заполнен, подкоманда завершается ошибкой.
/showvalue
Подкоманда отображает параметры репликации для исходящей стороны (forward link) связанных атрибутов (linked attributes) объектов.
Синтаксис
repadmin/showvalue [DC_LIST] <DN_объекта> [имя_атрибута] [DN_атрибута] [/nocache]
Параметры:
-
DC_LIST— список контроллеров домена через пробел; -
DN_объекта— DN объекта каталога; -
имя_атрибута— CN атрибута; -
DN_атрибута— DN атрибута.
Примеры
Пример отображения данных по репликации для связанного атрибута member в объекте группы:
repadmin /showvalue ellesdc2 "CN=group1,CN=Users,DC=ELLES,DC=INNO,DC=TECH" member
Результат — список результирующих изменений исходящих связей связанных атрибутов объекта.
Для каждой исходящей связи отображаются:
-
присутствует или отсутствует (была удалена) связь в атрибуте (PRESENT/ABSENT);
-
имя связанного атрибута;
-
время последнего изменения атрибута;
-
контроллер домена, на котором произошло изменение (Originating DSA);
-
локальный USN для атрибута (Loc.USN);
-
оригинальный USN для атрибута (Org.USN );
-
версия исходящей связи;
-
DN объекта, на который указывает связь в связанном атрибуте.
Например:
2 entries.
Type Attribute Last Mod Time Originating DSA Loc.USN Org.USN Ver
======= ============ ============= ================= ======= ======= ===
Distinguished Name
=============================
PRESENT member 2025-12-24 16:10:18 Default-First-Site-Name\ELLESDC2 483368 483368 1
CN=user10,CN=Users,DC=elles,DC=inno,DC=tech
ABSENT member 2025-12-24 16:10:46 Default-First-Site-Name\ELLESDC2 483372 483372 2
CN=user11,CN=Users,DC=elles,DC=inno,DC=tech
/showobjmeta
Подкоманда отображает метаданные репликации для указанного объекта, в том числе для объекта, перемещенного в корзину.
Синтаксис
repadmin /showobjmeta [DC_LIST] <DN_объекта> [/nocache] [/linked]
Параметры:
-
DC_LIST— список контроллеров домена через пробел; -
DN_объекта— DN объекта каталога; -
/linked— отображать метаданные, которые связаны с указанным объектом, но не хранятся с ним.
Примеры
Пример получения метаданных репликации для объекта, помещенного в корзину:
repadmin /showobjmeta ellesdc1 "CN=user1\0ADEL:2901481d-86ba-4889-b0a3-481ba5bdbca4,CN=Deleted Objects,DC=elles,DC=inno,DC=tech"
Пример получения метаданных репликации для обычного объекта:
repadmin /showobjmeta ellesdc2 "CN=group1,DC=elles,DC=inno,DC=tech"
Подкоманда возвращает список метаданных репликации для атрибутов объекта:
-
локальный USN для атрибута (Loc.USN);
-
контроллер домена, на котором произошло изменение (Originating DSA);
-
оригинальный USN для атрибута (Org.USN );
-
время и дата изменения;
-
версия атрибута;
-
имя атрибута.
Например:
11 entries.
Loc.USN Originating DSA Org.USN Org.Time/Date Ver Attribute
======= =============== ========= ============= === =========
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 objectClass
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 cn
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 instanceType
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 whenCreated
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 nTSecurityDescriptor
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 name
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 objectSid
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 sAMAccountName
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 sAMAccountType
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 groupType
483357 Default-First-Site-Name\ELLESDC2 483357 2025-12-24 16:09:24 1 objectCategory
2 entries.
Type Attribute Last Mod Time Originating DSA Loc.USN Org.USN Ver
======= ============ ============= ================= ======= ======= ===
Distinguished Name
=============================
PRESENT member 2025-12-24 16:10:18 Default-First-Site-Name\ELLESDC2 483368 483368 1
CN=user10,CN=Users,DC=DC=elles,DC=inno,DC=tech
ABSENT member 2025-12-24 16:10:46 Default-First-Site-Name\ELLESDC2 483372 483372 2
CN=user11,CN=Users,DC=DC=elles,DC=inno,DC=tech