Categories: Windows

Failed to bind to Domain Naming Op Master

Доброго времени суток. Сегодня расскажу как расследовал предупреждения Failed to bind to Domain Naming Op Master и Failed to ping Schema Op Master, которые создавал агент SCOM на контроллере домена (RODC 2012 R2) в филиале.

  • Description: AD Op Master Response : Failed to bind to Domain Naming Op Master
  • Log Name: Operations Manager
  • Source: Health Service Script
  • Event ID: 3
  • Level: Warning

И

  • Description: AD Op Master Response : Failed to bind to Schema Op Master
  • Log Name: Operations Manager
  • Source: Health Service Script
  • Event ID: 19
  • Level: Warning

В консоли SCOM было следующее разъяснение для этого события: «The AD Op Master Response monitor failed consecutive attempts to bind or ping the schema operations master (also known as the schema flexible single master operations (FSMO) role holder). This is more than a transient error, and it should be investigated. However, because the schema master does not have a high-availability requirement, short-term outages are not necessarily a priority, and they can be deferred.»

Как видно, из разъяснения AD Op Master Response monitor не может пинговать или биндить держателя Schema Master Role. Самое простое – это выяснить, кто держатель этой роли и пингануть его из командной строки. Так я и сделал.

netdom query fsmo

Как и ожидалось обе недоступные роли Schema master и Domain naming master находятся на одном сервере (DC). Пинг сервера DC с сервера RODC не выявил проблемы. Надо было понять как выглядит bind в скрипте, запускаемом агентом SCOM. Для этого было проделано следующее:

  1. Экспортировать Management Pack, который содержит правило Failed to ping or bind to the Schema Master FSMO role holder. Следующий скрипт необходимо выполнить в Operations Manager Shell.
    Get-SCOMManagementPack -Name "Microsoft.Windows.Server.AD.2008.Monitoring" `
    | Export-SCOMManagementPack -Path "e:\temp"
  2. Открыть файл e:\temp\Microsoft.Windows.Server.AD.2008.Monitoring.xml в обычном текстовом редакторе.
  3. Найти в нём скрипт vbs, который запускается для диагностики (AD_Op_Master_Response.vbs).
  4. В этом скрипте необходимо найти как он делает ping и bind, что и было проделано. Дальше я написал соответствующий короткий скрипт vbs для проверки сервера с IP 192.168.0.2:
    Set objAD = CreateObject("McActiveDir.ActiveDirectory")
    MsgBox( objAD.Ping( "192.168.0.2" ) ) 'Должно быть неотрицательным числом
    MsgBox( objAD.BindObject("LDAP://192.168.0.2/RootDSE") 'Должно вернуть true
    

Оказалось, что метод objAD.BindObject(“LDAP://192.168.0.2/RootDSE”) выдавал ошибку, причиной которой был закрытый порт 389 между RODC и DC.

Saqwel

Share
Published by
Saqwel

Recent Posts

Azure App Configuration and access to Key Vault references

We decided to use an Azure App Configuration to store configs of backend. App Configuration…

2023-08-24

Azure cli az acr login hangs

I have encountered an issue with az acr login --name <acr_name> command. It hanged and…

2023-08-23

Error: Unable to read Docker image into resource: unable to find or pull image nginx:latest

I have tried to learn terraform from scratch and found pretty simple tutorial for beginners.…

2022-09-09

Скрыть поле модели от Swagger (Hide field of model from Swagger)

При внедрении Swagger в проекте .Net Core Web API потребовалось скрыть одно поле из примера,…

2020-04-24

Прогноз цен на акции

Около года назад я решил попробовать заработать на фондовой бирже, покупая и продавая акции. Изучая…

2019-07-20

Installation failed with error code: (0x00000490), “Element not found. “

Во время установки .NET Framework столкнулся с ошибкой Installation failed with error code: (0x00000490), "Element…

2018-12-20