Работа с checkrepl

Скрипт checkrepl (полный путь после установки пакета inno-samba: /app/inno-samba/scripts/checkrepl) предназначен для диагностирования проблем репликации на контроллерах домена Эллес.

Некоторые из операций, доступных при работе со скриптом, являются потенциально деструктивными. Их выполнение может привести к некорректной работе процесса репликации.

Описания таких операций в тексте раздела сопровождаются предупреждением.

См. также:

Предварительные требования

Скрипт должен запускаться с правами суперпользователя.

Запуск любых потенциально деструктивных операций возможен только локально. При запуске с указанием удаленного сервера выполнение таких операций недоступно.

Формат вызова

Общий формат вызова:

checkrepl [-h] [--server SERVER] {info, rootdse, showreplmeta, ntdsconnection, basedn, configdn, schemadn, forestdn, domaindn}

Общие параметры

Общие параметры вызова:

  • -h — вывод справочной информации;

  • --server HOSTNAME|FQDN — имя хоста или полное доменное имя диагностируемого контроллера домена.

    При задании параметра недоступны потенциально деструктивные операции.

Подкоманды

Для выполнения операций при вызове скрипта указываются подкоманды. Каждая подкоманда имеет свой набор параметров.

info

Подкоманда info позволяет получить информацию об участвующих в репликации контроллерах домена для использования в дальнейшем при выполнении других операций с помощью скрипта или сравнения с выводом иных инструментов (например, samba-tool drs showrepl).

Параметры

Подкоманда принимает параметры:

  • --dsa-table — запрос информации для идентификации участвующих в процессе репликации агентов Directory System Agent (DSA), работающих на контроллерах в домене, по LDAP с выводом результатов в виде таблицы со следующими столбцами:

    • FQDN — полное доменное имя контроллера;

    • Site — сайт, в котором находится контроллер;

    • DSA objectGUID — уникальный идентификатор агента DSA, работающего на контроллере домена;

      Данный идентификатор формируется при развертывании контроллера домена и не изменяется в течение всего периода его эксплуатации.

    • DSA invocationId — версия базы данных контроллера домена.

      Атрибут объекта nTDSDSA. Значение обновляется при добавлении или удалении раздела каталога (контекста именования, NC) и восстановлении контроллера домена. Передается при репликации в запросе набора изменений (DsGetNCChanges).

Примеры

Пример запроса и возвращаемого значения:

sudo /app/inno-samba/scripts/checkrepl info --dsa-table
Establishing local connection
FQDN              |Site                   |DSA objectGUID                      |DSA invocationId
smb-dc03.inno.tech|Default-First-Site-Name|7737e10c-03aa-40fe-9fd8-f3c9b3cf598d|04a3d3ec-5dff-4149-b7e1-91ce94c7e435
win-dc01.inno.tech|Default-First-Site-Name|62430164-702b-4673-b09a-50e1c3416d14|62430164-702b-4673-b09a-50e1c3416d14
smb-dc02.inno.tech|Default-First-Site-Name|350efbad-9994-418d-94bd-f67ebc2f093a|5d6827b5-7383-4e63-a95c-bfceb2a27bab

rootdse

Подкоманда rootdse предназначена для работы с объектом RootDSE, представляющим собой логический корень дерева данных каталога на сервере каталогов.

Параметры

Подкоманда принимает параметры:

  • --show-rootdse — вывод значений следующих атрибутов:

    • msDS-ReplQueueStatistics — информация о текущем состоянии очереди репликации в виде структуры DS_REPL_QUEUE_STATISTICS в XML:

      <DS_REPL_QUEUE_STATISTICS>
      	<ftimeCurrentOpStarted>ftimeCurrentOpStartedValue</ftimeCurrentOpStarted>
      	<cNumPendingOps>cNumPendingOpsValue</cNumPendingOps>
      	<ftimeOldestSync>ftimeOldestSyncValue</ftimeOldestSync>
      	<ftimeOldestAdd>ftimeOldestAddValue</ftimeOldestAdd>
      	<ftimeOldestDel>ftimeOldestModValue</ftimeOldestDel>
      	<ftimeOldestMod>ftimeOldestDelValue</ftimeOldestMod>
      	<ftimeOldestUpdRefs>ftimeOldestUpdRefsValue</ftimeOldestUpdRefs>
      </DS_REPL_QUEUE_STATISTICS>

      Элементы структуры:

      • ftimeCurrentOpStartedValue — дата и время начала обработки последнего покинувшего очередь запроса IDL_DRSReplicaSync, IDL_DRSReplicaAdd, IDL_DRSReplicaModify, IDL_DRSReplicaDel или IDL_DRSUpdateRefs;

      • cNumPendingOpsValue — количество находящихся в очереди запросов IDL_DRSReplicaSync, IDL_DRSReplicaAdd, IDL_DRSReplicaModify, IDL_DRSReplicaDel, IDL_DRSUpdateRefs;

      • ftimeOldestSyncValue — дата и время добавления в очередь запроса IDL_DRSReplicaSync, находящегося в ней наибольшее время;

      • ftimeOldestAddValue — дата и время добавления в очередь запроса IDL_DRSReplicaAdd, находящегося в ней наибольшее время;

      • ftimeOldestModValue — дата и время добавления в очередь запроса IDL_DRSReplicaModify, находящегося в ней наибольшее время;

      • ftimeOldestDelValue — дата и время добавления в очередь запроса IDL_DRSReplicaDel, находящегося в ней наибольшее время;

      • ftimeOldestUpdRefsValue — дата и время добавления в очередь запроса IDL_DRSUpdateRefs, находящегося в ней наибольшее время;

    • msDS-ReplAllOutboundNeighbors/msDS-ReplAllInboundNeighbors — информация о текущем состоянии исходящей/входящей репликации для определенного раздела каталога в рамках взаимодействия пары серверов в виде набора структур DS_REPL_NEIGHBOR в XML:

      <DS_REPL_NEIGHBOR>
      	<pszNamingContext>pszNamingContextValue</pszNamingContext>
      	<pszSourceDsaDN>pszSourceDsaDNValue</pszSourceDsaDN>
      	<pszSourceDsaAddress>pszSourceDsaAddressValue</pszSourceDsaAddress>
      	<pszAsyncIntersiteTransportDN>pszAsyncIntersiteTransportDNValue</pszAsyncIntersiteTransportDN>
      	<dwReplicaFlags>dwReplicaFlagsValue</dwReplicaFlags>
      	<uuidNamingContextObjGuid>uuidNamingContextObjGuidValue</uuidNamingContextObjGuid>
      	<uuidSourceDsaObjGuid>uuidSourceDsaObjGuidValue</uuidSourceDsaObjGuid>
      	<uuidSourceDsaInvocationID>uuidSourceDsaInvocationIDValue</uuidSourceDsaInvocationID>
      	<uuidAsyncIntersiteTransportObjGuid>uuidAsyncIntersiteTransportObjGuidValue</uuidAsyncIntersiteTransportObjGuid>
      	<usnLastObjChangeSynced>usnLastObjChangeSyncedValue</usnLastObjChangeSynced>
      	<usnAttributeFilter>usnAttributeFilterValue</usnAttributeFilter>
      	<ftimeLastSyncSuccess>ftimeLastSyncSuccessValue</ftimeLastSyncSuccess>
      	<ftimeLastSyncAttempt>ftimeLastSyncAttemptValue</ftimeLastSyncAttempt>
      	<dwLastSyncResult>dwLastSyncResultValue</dwLastSyncResult>
      	<cNumConsecutiveSyncFailures>cNumConsecutiveSyncFailuresValue</cNumConsecutiveSyncFailures>
      </DS_REPL_NEIGHBOR>

      Элементы структуры:

      • pszNamingContext — раздел каталога, к которому относятся данные о состоянии репликации;

        Каждый раздел реплицируется независимо и имеет свой собственный набор данных о партнерах по репликации, даже если все разделы реплицируются с одного контроллера-источника.

      • pszSourceDsaDN — DN агента DSA контроллера-источника, к которому относятся данные о репликации;

        Каждый контроллер-источник имеет свой набор данных.

      • pszSourceDsaAddress — сетевой адрес контроллера-источника с учетом специфики используемого для репликации транспорта;

      • pszAsyncIntersiteTransportDN — DN объекта interSiteTransport, соответствующего транспорту, посредством которого выполняется репликация (NULL для RPC/IP-репликации);

      • dwReplicaFlags — флаги, описывающие различные атрибуты и опции в рамках репликации;

      • uuidNamingContextObjGuid — значение objectGuid раздела каталога;

      • uuidSourceDsaObjGuid — значение objectGuid агента DSA контроллера-источника;

      • uuidSourceDsaInvocationID — версия базы данных каталога контроллера-источника (значение invocationId агента DSA контроллера-источника);

      • uuidAsyncIntersiteTransportObjGuid — значение objectGuid объекта межсайтового транспорта;

      • usnLastObjChangeSynced — порядковый номер (USN) последнего полученного обновления;

      • usnAttributeFilter — значение usnLastObjChangeSynced по состоянию на конец последнего завершенного успешного цикла репликации;

      • ftimeLastSyncSuccess — дата и время завершения последнего успешного цикла репликации с контроллера-источника;

      • ftimeLastSyncAttempt — дата и время последней попытки репликации с контроллера-источника;

      • dwLastSyncResult — код ошибки, полученный при последней попытке репликации с контроллера-источника; содержит ERROR_SUCCESS, если последняя попытка была успешной;

      • cNumConsecutiveSyncFailures — количество неуспешных попыток репликации с контроллера-источника с момента последней успешной репликации или с момента добавления контроллера-источника в список партнеров по репликации.

    • msDS-ReplConnectionFailures/msDSReplLinkFailures — информация о неуспешных попытках установить соединение с контроллером-источником для репликации / репликации с контроллера-источника в виде набора структур DS_REPL_KCC_DSA_FAILURE в XML:

      <DS_REPL_KCC_DSA_FAILURE>
      	<pszDsaDN>pszDsaDNValue</pszDsaDN>
      	<uuidDsaObjGuid>uuidDsaObjGuidValue</uuidDsaObjGuid>
      	<ftimeFirstFailure>ftimeFirstFailureValue</ftimeFirstFailure>
      	<cNumFailures>cNumFailuresValue</cNumFailures>
      	<dwLastResult>dwLastResultValue</dwLastResult>
      </DS_REPL_KCC_DSA_FAILURE>

      Элементы структуры:

      • pszDsaDN — DN объекта DSA контроллера-источника;

      • uuidDsaObjGuid — значение objectGuid агента DSA контроллера-источника;

      • ftimeFirstFailure — дата и время первой неуспешной попытки репликации с контроллера-источника либо дата и время последней успешной репликации;

      • cNumFailures — количество идущих подряд неуспешных попыток с момента последней успешной репликации;

      • dwLastResult — код ошибки, возникшей при последней неуспешной попытке репликации.

    • msDS-ReplPendingOps — информация об исполняемых или ожидающих исполнения задачах репликации в виде набора структур DS_REPL_OP в XML:

      <DS_REPL_OP>
      	<ftimeEnqueued>ftimeEnqueuedValue</ftimeEnqueued>
      	<ulSerialNumber>ulSerialNumberValue</ulSerialNumber>
      	<ulPriority>ulPriorityValue</ulPriority>
      	<OpType>OpTypeValue</OpType>
      	<ulOptions>ulOptionsValue</ulOptions>
      	<pszNamingContext>pszNamingContextValue</pszNamingContext>
      	<pszDsaDN>pszDsaDNValue</pszDsaDN>
      	<pszDsaAddress>pszDsaAddressValue</pszDsaAddress>
      	<uuidNamingContextObjGuid>uuidNamingContextObjGuidValue</uuidNamingContextObjGuid>
      	<uuidDsaObjGuid>uuidDsaObjGuidValue</uuidDsaObjGuid>
      </DS_REPL_OP>

      Элементы структуры:

      • ftimeEnqueued — дата и время добавления операции в очередь репликации;

      • ulSerialNumber — идентификатор операции;

      • ulPriority — приоритет операции;

      • OpType — тип операции;

      • ulOptions — набор флагов, содержащих дополнительную информацию об операции;

      • pszNamingContext — DN раздела каталога, с которым связана операция;

      • pszDsaDN — DN объекта DSA, связанного с удаленным сервером, которому соответствует операция;

      • pszDsaAddress — сетевой адрес удаленного сервера, связанного с операцией;

      • uuidNamingContextObjGuid — значение objectGuid раздела каталога, с которым связана операция;

      • uuidDsaObjGuid — значение objectGuid объекта DSA, связанного с удаленным сервером, которому соответствует операция.

    • highestCommittedUSN — наибольшее значение порядкового номера обновления (USN), зафиксированное на контроллере домена;

  • --show-replchanged — вывод содержимого записи @REPLCHANGED (запись доступна только на контроллерах домена Эллес):

    • uSNHighest — максимальное значение порядкового номера обновления (USN);

    • uSNUrgent — значение USN для изменений, которые должны быть реплицированы в приоритетном порядке;

  • --show-baseinfo — содержимое записи @BASEINFO (запись доступна только на контроллерах домена Эллес):

    • sequenceNumber — порядковый номер изменения;

    • whenChanged — дата и время изменения

    • distinguishedName — DN записи.

Примеры

Примеры запросов и возвращаемых значений:

  • пример запроса с параметром --show-rootdse и возвращаемого значения:

    sudo /app/inno-samba/scripts/checkrepl --server win-dc01.inno.tech rootdse --show-rootdse
    Connecting to ldap://win-dc01.inno.tech
    msDS-ReplQueueStatistics:
    <DS_REPL_QUEUE_STATISTICS>
    	<ftimeCurrentOpStarted>2024-09-27T06:55:42Z</ftimeCurrentOpStarted>
    	<cNumPendingOps>2</cNumPendingOps>
    	<ftimeOldestSync>2024-09-27T06:54:26Z</ftimeOldestSync>
    	<ftimeOldestAdd>1601-01-01T00:00:00Z</ftimeOldestAdd>
    	<ftimeOldestDel>1601-01-01T00:00:00Z</ftimeOldestDel>
    	<ftimeOldestMod>1601-01-01T00:00:00Z</ftimeOldestMod>
    	<ftimeOldestUpdRefs>1601-01-01T00:00:00Z</ftimeOldestUpdRefs>
    </DS_REPL_QUEUE_STATISTICS>
    
    msDS-ReplAllOutboundNeighbors:
    <DS_REPL_NEIGHBOR>
    	<pszNamingContext>DC=inno,DC=tech</pszNamingContext>
    	<pszSourceDsaDN>CN=NTDS Settings,CN=SMB-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech</pszSourceDsaDN>
    	<pszSourceDsaAddress>350efbad-9994-418d-94bd-f67ebc2f093a._msdcs.inno.tech</pszSourceDsaAddress>
    	<pszAsyncIntersiteTransportDN></pszAsyncIntersiteTransportDN>
    	<dwReplicaFlags>16</dwReplicaFlags>
    	<uuidNamingContextObjGuid>1235cb51-9668-4e27-ac82-9cfd2f10867d</uuidNamingContextObjGuid>
    	<uuidSourceDsaObjGuid>350efbad-9994-418d-94bd-f67ebc2f093a</uuidSourceDsaObjGuid>
    	<uuidSourceDsaInvocationID>00000000-0000-0000-0000-000000000000</uuidSourceDsaInvocationID>
    	<uuidAsyncIntersiteTransportObjGuid>00000000-0000-0000-0000-000000000000</uuidAsyncIntersiteTransportObjGuid>
    	<usnLastObjChangeSynced>0</usnLastObjChangeSynced>
    	<usnAttributeFilter>0</usnAttributeFilter>
    	<ftimeLastSyncSuccess>2024-09-27T05:46:34Z</ftimeLastSyncSuccess>
    	<ftimeLastSyncAttempt>2024-09-27T06:47:45Z</ftimeLastSyncAttempt>
    	<dwLastSyncResult>1722</dwLastSyncResult>
    	<cNumConsecutiveSyncFailures>1</cNumConsecutiveSyncFailures>
    </DS_REPL_NEIGHBOR>
    ...
    
    msDS-ReplAllInboundNeighbors:
    <DS_REPL_NEIGHBOR>
    	<pszNamingContext>DC=inno,DC=tech</pszNamingContext>
    	<pszSourceDsaDN>CN=NTDS Settings,CN=SMB-DC03,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech</pszSourceDsaDN>
    	<pszSourceDsaAddress>7737e10c-03aa-40fe-9fd8-f3c9b3cf598d._msdcs.inno.tech</pszSourceDsaAddress>
    	<pszAsyncIntersiteTransportDN></pszAsyncIntersiteTransportDN>
    	<dwReplicaFlags>112</dwReplicaFlags>
    	<uuidNamingContextObjGuid>1235cb51-9668-4e27-ac82-9cfd2f10867d</uuidNamingContextObjGuid>
    	<uuidSourceDsaObjGuid>7737e10c-03aa-40fe-9fd8-f3c9b3cf598d</uuidSourceDsaObjGuid>
    	<uuidSourceDsaInvocationID>04a3d3ec-5dff-4149-b7e1-91ce94c7e435</uuidSourceDsaInvocationID>
    	<uuidAsyncIntersiteTransportObjGuid>00000000-0000-0000-0000-000000000000</uuidAsyncIntersiteTransportObjGuid>
    	<usnLastObjChangeSynced>16925</usnLastObjChangeSynced>
    	<usnAttributeFilter>16925</usnAttributeFilter>
    	<ftimeLastSyncSuccess>2024-09-26T11:54:40Z</ftimeLastSyncSuccess>
    	<ftimeLastSyncAttempt>2024-09-27T06:30:39Z</ftimeLastSyncAttempt>
    	<dwLastSyncResult>1727</dwLastSyncResult>
    	<cNumConsecutiveSyncFailures>19</cNumConsecutiveSyncFailures>
    </DS_REPL_NEIGHBOR>
    ...
    
    Attribute msDS-ReplConnectionFailures is not present on rootDSE
    Attribute msDSReplLinkFailures is not present on rootDSE
    msDS-ReplPendingOps:
    <DS_REPL_OP>
    	<ftimeEnqueued>2024-09-27T06:54:26Z</ftimeEnqueued>
    	<ulSerialNumber>18821</ulSerialNumber>
    	<ulPriority>330</ulPriority>
    	<OpType>0</OpType>
    	<ulOptions>519</ulOptions>
    	<pszNamingContext>CN=Schema,CN=Configuration,DC=inno,DC=tech</pszNamingContext>
    	<pszDsaDN>CN=NTDS Settings,CN=SMB-DC03,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech</pszDsaDN>
    	<pszDsaAddress>7737e10c-03aa-40fe-9fd8-f3c9b3cf598d._msdcs.inno.tech</pszDsaAddress>
    	<uuidNamingContextObjGuid>32cb115a-2aaa-430b-940f-1b23956ff94e</uuidNamingContextObjGuid>
    	<uuidDsaObjGuid>7737e10c-03aa-40fe-9fd8-f3c9b3cf598d</uuidDsaObjGuid>
    </DS_REPL_OP>
    ...
    
    highestCommittedUSN:
    403240
  • пример запроса с параметром --show-baseinfo и возвращаемого значения:

    sudo /app/inno-samba/scripts/checkrepl rootdse --show-baseinfo
    Establishing local connection
    sequenceNumber:
    15
    
    whenChanged:
    20240627125032.0Z
    
    distinguishedName:
    @BASEINFO
  • пример запроса с параметром --show-replchanged и возвращаемого значения:

    sudo /app/inno-samba/scripts/checkrepl rootdse --show-replchanged
    Establishing local connection
    uSNHighest:
    18885
    
    uSNUrgent:
    18728

showreplmeta

Подкоманда showreplmeta предназначена для получения относящейся к репликации метаинформации для объектов каталога.

Для указания объекта при вызове подкоманды могут использоваться его DN и/или LDAP-фильтр.

Для каждого атрибута попавшего в выборку объекта каталога подкоманда выводит следующий набор данных:

  • Attribute — наименование атрибута объекта;

  • cur. value — текущее значение атрибута;

  • Repl. meta — относящаяся к репликации метаинформация:

    • version — версия значения атрибута;

    • orig. change time — дата и время последнего изменения значения атрибута на контроллере-источнике;

    • orig. inv. id — версия базы данных контроллера-источника (значение invocationId);

      • DC info by invocation ID — значения DN и GUID контроллера-источника;

    • orig. usn — значение порядкового номера обновления (USN) на контроллере-источнике;

    • local usn — локальное значение USN.

Пример набора данных, выводимого подкомандой для отдельного атрибута объекта каталога:

...
	Attribute: [name]
		cur. value: [TestUser]
		Repl. meta:
			version: [3]
			orig. change time: [Fri Sep 27 12:54:56 2024]
			orig. inv. id: [62430164-702b-4673-b09a-50e1c3416d14]
				DC info by invocation ID:
					DN: CN=WIN-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech
					GUID: 62430164-702b-4673-b09a-50e1c3416d14
			orig. usn: [403905]
			local usn: [18770]
...

Параметры

Подкоманда принимает параметры:

  • --dn — DN объекта каталога для вывода относящейся к репликации метаинформации;

  • --filter — LDAP-фильтр для отбора объектов каталога для вывода относящейся к репликации метаинформации.

Примеры

Примеры запросов:

sudo /app/inno-samba/scripts/checkrepl showreplmeta --dn 'CN=TestUser,CN=Users,DC=inno,DC=tech'
sudo /app/inno-samba/scripts/checkrepl showreplmeta --filter '(&(objectCategory=Person)(objectClass=user))'

ntdsconnection

Подкоманда ntdsconnection предназначена для работы с объектами nTDSConnection, задающими параметры соединений для репликации между контроллерами домена.

Объект nTDSConnection является дочерним по отношению к объекту nTDSDSA целевого контроллера домена, участвующего в репликации.

Подкоманда позволяет просматривать текущие объекты nTDSConnection локального или указанного контроллера домена, а также устанавливать значения опций, управляющих параметрами соединения.

Параметры

Подкоманда принимает параметры:

  • --connections — вывод списка объектов nTDSConnection локального или указанного контроллера домена со следующим набором атрибутов:

    • DN — уникальное имя (DN) объекта nTDSConnection;

    • cn — общее имя (CN) объекта nTDSConnection;

    • objectGUID — уникальный идентификатор объекта nTDSConnection;

    • fromServer — объект nTDSDSA контроллера-источника;

    • systemFlags — значения системных флагов;

    • options — опции, управляющие параметрами соединения между контроллерами домена для репликации:

      • NTDSCONN_OPT_IS_GENERATED (значение для изменения флага — 1) — признак того, что соединение (объект nTDSConnection) сформировано KCC (по умолчанию — YES);

      • NTDSCONN_OPT_TWOWAY_SYNC (значение для изменения флага — 2) — признак того, что по завершении цикла репликации с использованием данного соединения должен быть начат цикл репликации в противоположном направлении (по умолчанию — NO);

      • NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT (значение для изменения флага — 4) — признак отказа от использования значений по умолчанию при определении нотификации (по умолчанию — NO);

      • NTDSCONN_OPT_USE_NOTIFY (значение для изменения флага — 8) — признак того, что контроллер-источник уведомляет целевой контроллер домена об изменениях, вносимых на контроллере-источнике (по умолчанию — NO);

      • NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION (значение для изменения флага — 16) — признак отключения сжатия передаваемых данных при межсайтовой репликации (по умолчанию — NO);

      • NTDSCONN_OPT_USER_OWNED_SCHEDULE (значение для изменения флага — 32) — признак того, что используется пользовательское значение атрибута, задающего расписание репликации, для соединения, сформированного KCC, и KCC не должен изменять его (по умолчанию — NO);

    • enabledConnection — признак того, что соединение активно (возможные значения: TRUE|FALSE);

  • --set-ntds-option — установка флагов для соединения (объекта nTDSConnection) с указанным значением objectGUID.

    Формат задания значения параметра:

    --set-ntds-option <nTDSConnection-GUID>=<value>

    Элементы значения:

    • nTDSConnection-GUID — значение objectGUID для требуемого объекта nTDSConnection (может быть получено с помощью параметра --connections);

    • value — сумма десятичных значений, соответствующих устанавливаемым флагам (например, для установки всех флагов необходимо передать значение 63; для сброса всех опций — 0; для установки флагов NTDSCONN_OPT_TWOWAY_SYNC и NTDSCONN_OPT_USE_NOTIFY — 10 и т. п.).

Примеры

Пример вывода списка соединений, используемых для репликации, на локальном контроллере домена:

sudo /app/inno-samba/scripts/checkrepl ntdsconnection --connections
Establishing local connection
Available nTDSConnections:
DN: CN=8a7d05f1-0460-4f4c-9272-9f1d766bfc92,CN=NTDS Settings,CN=SMB-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech
cn: 8a7d05f1-0460-4f4c-9272-9f1d766bfc92
objectGUID: 89022593-14e6-46a5-bfa4-7a82b962791c
fromServer: CN=NTDS Settings,CN=SMB-DC03,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech
systemFlags: 1610612736
options: 1
NTDSCONN_OPT_IS_GENERATED: YES
NTDSCONN_OPT_TWOWAY_SYNC: NO
NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT: NO
NTDSCONN_OPT_USE_NOTIFY: NO
NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION: NO
NTDSCONN_OPT_USER_OWNED_SCHEDULE: NO
enabledConnection: TRUE

DN: CN=e3da4fce-89f8-4608-8393-219225cdff1c,CN=NTDS Settings,CN=SMB-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech
cn: e3da4fce-89f8-4608-8393-219225cdff1c
objectGUID: 20f47ae6-1faf-4ce2-ba3c-4d6367a9f902
fromServer: CN=NTDS Settings,CN=WIN-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech
systemFlags: 1610612736
options: 1
NTDSCONN_OPT_IS_GENERATED: YES
NTDSCONN_OPT_TWOWAY_SYNC: NO
NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT: NO
NTDSCONN_OPT_USE_NOTIFY: NO
NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION: NO
NTDSCONN_OPT_USER_OWNED_SCHEDULE: NO
enabledConnection: TRUE

Пример установки значения YES для опций NTDSCONN_OPT_TWOWAY_SYNC и NTDSCONN_OPT_USE_NOTIFY для первого соединения из списка:

  1. Получите значения objectGUID и для удобства дальнейшей работы присвойте его переменной:

    guid=`sudo /app/inno-samba/scripts/checkrepl ntdsconnection --connections | grep -m 1 'objectGUID' | cut -c13-`
  2. Вызовите скрипт с параметром --set-ntds-option, переменной ${guid} и значением, соответствующем установке двух требуемых опций:

    sudo /app/inno-samba/scripts/checkrepl ntdsconnection --set-ntds-option ${guid}=10

basedn, configdn, schemadn, forestdn, domaindn

Скрипт предоставляет следующие подкоманды для работы с разделами каталога:

  • basedn — корень дерева каталогов (DC=domain,DC=name);

  • configdn — раздел конфигурации (CN=Configuration,DC=domain,DC=name);

  • schemadn — раздел схемы (CN=Schema,CN=Configuration,DC=domain,DC=name);

  • domaindn — раздел зон DNS уровня домена (DC=DomainDnsZones,DC=domain,DC=name);

  • forestdn — раздел зон DNS уровня леса (DC=ForestDnsZones,DC=domain,DC=name).

Параметры

Подкоманды принимают параметры:

  • --show-repsfrom — вывод содержимого атрибута repsFrom, представляющего собой список контроллеров-источников для репликации изменений по определенному разделу каталога (соответствующему используемой подкоманде);

    Для каждого контроллера домена, являющегося партнером по репликации, выводится следующий набор данных:

    • Source DSA objectGUID — значение objectGUID и сетевой адрес агента DSA контроллера-источника;

    • Schedule — расписание периодической репликации для раздела каталога;

    • значения флагов, управляющих вызовами методов DRSUAPI при выполнении задач репликации для раздела каталога (возможные значения: YES|NO):

      • DRSUAPI_DRS_WRIT_REP — признак репликации доступной для записи реплики;

      • DRSUAPI_DRS_INIT_SYNC — признак необходимости репликации раздела с контроллера-источника при его запуске;

      • DRSUAPI_DRS_PER_SYNC — признак необходимости периодической репликации раздела с контроллера-источника в соответствии с расписанием;

      • DRSUAPI_DRS_MAIL_REP — признак необходимости репликации по протоколу SMTP;

      • DRSUAPI_DRS_DISABLE_AUTO_SYNC — признак отключения репликации раздела по уведомлению с контроллера-источника;

      • DRSUAPI_DRS_DISABLE_PERIODIC_SYNC — признак отключения периодической репликации раздела с контроллера-источника;

      • DRSUAPI_DRS_USE_COMPRESSION — признак сжатия ответных сообщений в процессе репликации по каналу взаимодействия;

      • DRSUAPI_DRS_TWOWAY_SYNC — признак необходимости запуска репликации в противоположном направлении по завершении цикла репликации;

      • DRSUAPI_DRS_NONGC_RO_REP — признак репликации полной доступной для чтения копии раздела, но не доступной для записи или частичной копии раздела.

      • DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS — признак наличия незавершенного цикла репликации;

      • DRSUAPI_DRS_FULL_SYNC_PACKET — признак необходимости репликации всех изменений при выполнении запроса на репликацию, включая те, которые обычно исключаются из репликации в результате фильтрации;

      • DRSUAPI_DRS_REF_GCSPN — признак необходимости добавления сервером отдельной записи в repsTo на корневом объекте реплицируемой копии раздела записи, указывающей контроллеру-клиенту о том, что при обращении к контроллеру-серверу необходимо использовать SPN-имя, начинающееся с "GC";

      • DRSUAPI_DRS_NEVER_SYNCED — признак отсутствия успешно завершенной попытки репликации с контроллера-источника;

      • DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING — признак запрета репликации значений атрибутов, содержащих секреты;

      • DRSUAPI_DRS_PREEMPTED — признак того, что попытке репликации должен предшествовать запрос репликации с более высоким приоритетом;

      • DRSUAPI_DRS_NEVER_NOTIFY — признак запрета отправки уведомлений об изменениях;

      • DRSUAPI_DRS_SYNC_PAS — признак необходимости расширения набора атрибутов частичной реплики;

    • Transport GUID — значение objectGUID транспорта, используемого при взаимодействии в рамках репликации;

    • source DSA invocationId — версия базы данных каталога контроллера-источника (значение invocationId агента DSA контроллера-источника);

    • Consecutive sync failures — количество идущих подряд неуспешных попыток репликации;

    • Last success — дата и время последней успешной попытки репликации (в формате 18-значных временных меток);

    • Last attempt — дата и время последней попытки репликации (в формате 18-значных временных меток);

    • HWM highestUSN — максимальное значение порядкового номера обновления (USN) для раздела каталога, используемое в качестве High Water Mark (обновляется после завершения полного цикла репликации);

    • HWM TMP highestUSN — максимальное зафиксированное значение USN для раздела каталога, используемое в качестве High Water Mark (обновляется после репликации изменений для каждого отдельного объекта);

    • HWM reservedUSN — зарезервированное значение USN для раздела каталога, используемое в качестве High Water Mark;

  • --show-repsto — вывод содержимого атрибута repsTo, представляющего собой список контроллеров домена, которые текущий контроллер уведомляет об изменениях и которым по запросу отправляет изменения по определенному разделу каталога (соответствующему используемой подкоманде) в процессе репликации;

    Для каждого контроллера домена, являющегося партнером по репликации, выводится набор данных, аналогичный набору для параметра --show-repsfrom.

  • --show-udv — вывод содержимого атрибута replUpToDateVector для раздела каталога;

    Для каждого контроллера домена, являющегося партнером по репликации, выводится следующий набор данных:

    • DSA invoication ID — версия базы данных каталога партнера по репликации (значение invocationId агента DSA);

    • DSA objectGUID — значение objectGUID агента DSA партнера по репликации;

    • highestUSN — максимальное значение порядкового номера обновления (USN), полученное при последней успешной попытке репликации изменений;

    • Sync latency — промежуток времени (в секундах) между фиксацией изменения в раздел каталога на контроллере-источнике и отражением этого изменения на целевом контроллере домена в результате репликации;

  • --drop-repsfrom — удаление текущего содержимого атрибута repsFrom для раздела каталога;

    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --drop-repsto — удаление текущего содержимого атрибута repsTo для раздела каталога;

    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --drop-udn — удаление текущего содержимого атрибута replUpToDateVector для раздела каталога;

    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --set-repsfrom-usn — установка максимального значения (USN) для атрибута repsFrom раздела каталога;

    Формат задания значения параметра:

    --set-repsfrom-usn <invocationId>=<uSNHighest> [<invocationId>=<uSNHighest>]...

    Чтобы изменить USN для нескольких партнеров по репликации, перечислите требуемые пары значений invocationId и uSNHighest через пробел. Для получения значений invocationId используйте, например, скрипт:

    sudo /app/inno-samba/scripts/checkrepl info --dsa-table
    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --set-repsto-usn — установка максимального значения (USN) для атрибута repsTo раздела каталога;

    Формат задания значения параметра:

    --set-repsto-usn <invocationId>=<uSNHighest> [<invocationId>=<uSNHighest>]...

    Чтобы изменить USN для нескольких партнеров по репликации, перечислите требуемые пары значений invocationId и uSNHighest через пробел. Для получения значений invocationId используйте, например, скрипт:

    sudo /app/inno-samba/scripts/checkrepl info --dsa-table
    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --set-udv-usn — установка максимального значения атрибута replUpToDateVector для раздела каталога;

    Формат задания значения параметра:

    --set-udv-usn <invocationId>=<uSNHighest> [<invocationId>=<uSNHighest>]...

    Чтобы изменить USN для нескольких партнеров по репликации, перечислите требуемые пары значений invocationId и uSNHighest через пробел. Для получения значений invocationId используйте, например, скрипт:

    sudo /app/inno-samba/scripts/checkrepl info --dsa-table
    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.
  • --syncto — DCE/RPC-вызов функции IDL_DRSReplicaSync на указанном контроллере домена;

    Формат задания значения параметра:

    --syncto <objectGUID> [<objectGUID>]...

    Чтобы вызвать функцию IDL_DRSReplicaSync на нескольких контроллерах домена, перечислите значения атрибутов objectGUID агентов DSA через пробел. Для получения значений objectGUID используйте, например, скрипт:

    sudo /app/inno-samba/scripts/checkrepl info --dsa-table
    При использовании данного параметра выполняется потенциально деструктивная операция. Вызов скрипта с ним возможен только локально.
  • --syncfrom — получение изменений в разделе каталога путем отправки DCE/RPC-вызовов функции IDL_DRSReplicaSync на указанный контроллер домена;

    Формат задания значения параметра:

    --syncto <objectGUID> [<objectGUID>]...

    Чтобы вызвать функцию IDL_DRSReplicaSync на нескольких контроллерах домена, перечислите значения атрибутов objectGUID агентов DSA через пробел. Для получения значений objectGUID используйте, например, скрипт:

    sudo /app/inno-samba/scripts/checkrepl info --dsa-table
    При использовании данного параметра выполняется потенциально деструктивная операция. Вызов скрипта с ним возможен только локально.

Примеры

Пример вывода значения атрибута repsFrom:

sudo /app/inno-samba/scripts/checkrepl --server=win-dc01.inno.tech basedn --show-repsfrom
Connecting to ldap://win-dc01.inno.tech

--- Checking DC=domain,DC=name

Found repsFrom blob:
Source DSA objectGUID 350efbad-9994-418d-94bd-f67ebc2f093a
350efbad-9994-418d-94bd-f67ebc2f093a._msdcs.inno.tech
350efbad-9994-418d-94bd-f67ebc2f093a._msdcs.inno.tech
Schedule [17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17]
DRSUAPI_DRS_WRIT_REP: YES
DRSUAPI_DRS_INIT_SYNC: YES
DRSUAPI_DRS_PER_SYNC: YES
DRSUAPI_DRS_MAIL_REP: NO
DRSUAPI_DRS_DISABLE_AUTO_SYNC: NO
DRSUAPI_DRS_DISABLE_PERIODIC_SYNC: NO
DRSUAPI_DRS_USE_COMPRESSION: NO
DRSUAPI_DRS_TWOWAY_SYNC: NO
DRSUAPI_DRS_NONGC_RO_REP: NO
DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS: NO
DRSUAPI_DRS_FULL_SYNC_PACKET: NO
DRSUAPI_DRS_REF_GCSPN: NO
DRSUAPI_DRS_NEVER_SYNCED: NO
DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING: NO
DRSUAPI_DRS_PREEMPTED: NO
DRSUAPI_DRS_NEVER_NOTIFY: NO
DRSUAPI_DRS_SYNC_PAS: NO
Transport GUID 00000000-0000-0000-0000-000000000000
source DSA invocationId 5d6827b5-7383-4e63-a95c-bfceb2a27bab
Consecutive sync failures 0
Last success 133721636900000000
Last attempt 133721636900000000
HWM highestUSN 20012
HWM TMP highestUSN 20012
HWM reservedUSN 0
Found repsFrom blob:
Source DSA objectGUID 7737e10c-03aa-40fe-9fd8-f3c9b3cf598d
7737e10c-03aa-40fe-9fd8-f3c9b3cf598d._msdcs.inno.tech
7737e10c-03aa-40fe-9fd8-f3c9b3cf598d._msdcs.inno.tech
Schedule [17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17]
DRSUAPI_DRS_WRIT_REP: YES
DRSUAPI_DRS_INIT_SYNC: YES
DRSUAPI_DRS_PER_SYNC: YES
DRSUAPI_DRS_MAIL_REP: NO
DRSUAPI_DRS_DISABLE_AUTO_SYNC: NO
DRSUAPI_DRS_DISABLE_PERIODIC_SYNC: NO
DRSUAPI_DRS_USE_COMPRESSION: NO
DRSUAPI_DRS_TWOWAY_SYNC: NO
DRSUAPI_DRS_NONGC_RO_REP: NO
DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS: NO
DRSUAPI_DRS_FULL_SYNC_PACKET: NO
DRSUAPI_DRS_REF_GCSPN: NO
DRSUAPI_DRS_NEVER_SYNCED: NO
DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING: NO
DRSUAPI_DRS_PREEMPTED: NO
DRSUAPI_DRS_NEVER_NOTIFY: NO
DRSUAPI_DRS_SYNC_PAS: NO
Transport GUID 00000000-0000-0000-0000-000000000000
source DSA invocationId 04a3d3ec-5dff-4149-b7e1-91ce94c7e435
Consecutive sync failures 0
Last success 133721636860000000
Last attempt 133721636860000000
HWM highestUSN 21829
HWM TMP highestUSN 21829
HWM reservedUSN 0

Пример вывода содержимого атрибута replUpToDateVector для раздела схемы:

sudo /app/inno-samba/scripts/checkrepl --server=smb-dc03.inno.tech schemadn --show-udv
Connecting to ldap://smb-dc03.inno.tech

--- Checking CN=Schema,CN=Configuration,DC=inno,DC=tech

DSA invocation ID: 5d6827b5-7383-4e63-a95c-bfceb2a27bab
DSA objectGUID: 350efbad-9994-418d-94bd-f67ebc2f093a (CN=NTDS Settings,CN=SMB-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech)
highestUSN: 20057
Time from last sync success: NEVER

DSA invocation ID: 62430164-702b-4673-b09a-50e1c3416d14
DSA objectGUID: 62430164-702b-4673-b09a-50e1c3416d14 (CN=NTDS Settings,CN=WIN-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=inno,DC=tech)
highestUSN: 418584
Sync latency (seconds): 1337.2172197

Пример удаления текущего содержимого атрибута repsFrom для раздела каталога:

sudo /app/inno-samba/scripts/checkrepl basedn --drop-repsfrom
При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.

Пример установки значения USN для раздела каталога:

  1. Получите значения invocationId для требуемого контроллера домена и для удобства дальнейшей работы присвойте его переменной:

    invocationid=`sudo /app/inno-samba/scripts/checkrepl info --dsa-table | grep -m 1 'smb-dc03' | cut -d '|' -f4`
  2. Вызовите скрипт с параметром --set-udv-usn, переменной ${invocationid} и новым значением uSNHighest:

    sudo /app/inno-samba/scripts/checkrepl basedn --set-udv-usn ${invocationid}=0
    При использовании данного параметра выполняется потенциально деструктивная операция, которая может привести к непредвиденным проблемам с репликацией. Вызов скрипта с ним возможен только локально.

Пример вызова функции IDL_DRSReplicaSync:

  1. Получите значения objectGUID и для удобства дальнейшей работы присвойте его переменной:

    guid=`sudo /app/inno-samba/scripts/checkrepl info --dsa-table | grep -m 1 'smb-dc03' | cut -d '|' -f3`
  2. Вызовите скрипт с подкомандой для требуемого раздела каталога, дополнительным параметром --syncto и переменной ${guid}:

    sudo /app/inno-samba/scripts/checkrepl basedn --syncto=${guid}
    Establishing local connection
    
    --- Checking DC=inno,DC=tech
    
    uSNHighest: 18885
    uSNUrgent: 18728
    Synchronizing DC=inno,DC=tech to 7737e10c-03aa-40fe-9fd8-f3c9b3cf598d
    Connecting to: ncacn_ip_tcp:7737e10c-03aa-40fe-9fd8-f3c9b3cf598d._msdcs.inno.tech[seal,print]
    При использовании данного параметра выполняется потенциально деструктивная операция. Вызов скрипта с ним возможен только локально.