Службы OCS после установки не запускаются
Недавно, в процессе развёртывания Office Communications Server 2007 в лесе Active Directory, в котором был ранее развёрнут Live Communications Server 2005, столкнулся со следующей проблемой:
В ходе установки первого сервера OCS, обновление схемы AD, леса и домена прошло успешно, сервер сконфигурирован и установлен сертификат, однако ни одна из служб OCS не стартует, а в логах сервера фиксируются следующие ошибки:
Event ID: 56010, Source: OCS WMI Event Provider
"The WMI event provider has failed to retrieve the initial settings of a class. Will retry again. Class name: MSFT_SIPGlobalUCSetting.Retry in 300000 milliseconds"
- аналогичное сообщение для классов: MSFT_SIPGlobalCDRSetting, MSFT_SIPGlobalFederationSetting, MSFT_SIPESGlobalRegistrarSetting, MSFT_SIPGlobalArchivingSetting, MSFT_SIPGlobalMeetingSetting
Event ID: 20481, Source: OCS WMI Consumer
"Server could not register for notifications for configuration changes for a class from the WMI Provider.
Class: MSFT_SIPProxySetting
Cause: This could happen in some instances due to insufficient permissions or because the server is unable to contact the Active Directory (or SQL back-end).
Resolution: Please make sure you have sufficient privileges and this computer can talk to the Active Directory (or SQL back-end)."
Event ID: 20481, Source: OCS Server
"Unable to initialize the protocol stack. The service has to stop. Error code: 8004003 (wbemErrAccessDenied)."
Event ID: 12326, Source: OCS Server
"Failed starting the protocol stack. The service has to stop. Error code is:0x8004003 (wbemErrAccessDenied).
Cause: Check the previous entries in the event log for the failure reason. Resolution: Try restarting the server after resolving the failures listed in the previous event log entries."
Event ID: 7024, Source: Service Control Manager
"The Office Communications Server Front-End service terminated with service-specific error 24774989 (0x8004003)."
Как справиться с проблемой:
Запустите скрипт LCSDiscover.vbs из состава OCS Resource Kit tools, с параметрами:
cscript.exe LCSDiscover.vbs /Action:DiscoverLCSGlobalSettings /Provider:GC /File:GlobalSettings.xml
В результате выполнения скрипт выдаст ошибку:
ERROR: More than one global container found in the forest
После этого с помощью Ldp.exe ищем контейнер "Global Settings":
1. Start Ldp.exe.
2. Click Connection, and then click Connect.
3. Type the server name of the domain controller that you want to connect to, and the port (389).
4. Click Connection, and then click Bind.
5. Click Browse, and then click Search.
6. Type in Base DN: domain DN (example: DN=contoso,DN=com)
7. Type in Filter: (cn=Global Settings)
8. Select Scope: Subtree
9. Click Run
Получаем примерно такой вывод:
***Searching...
ldap_search_s(ld, "DC=contoso,DC=com", 2, "(cn=Global Settings)", attrList, 0, &msg)
Result <0>: (null)
Matched DNs:
Getting 2 entries:
>> Dn: CN=Global Settings,CN=RTC Service,CN=Microsoft,CN=Machine,CN={...},CN=Policies,CN=System,DC=contoso,DC=com
>> Dn: CN=Global Settings,CN=RTC Service,CN=Microsoft,CN=System,DC=contoso,DC=com
Явно видны два контейнера Global Settings.
Правильным является контейнер: CN=Global Settings,CN=RTC Service,CN=Microsoft,CN=System,DC=contoso,DC=com
Дублирующий контейнер "Global Settings" нужно удалить с помощью adsiedit.msc
После этой операции службы OCS успешно стартуют.
Примечание: Перед выполнением низкоуровнего редактирования AD с помощью Adsiedit позаботьтесь о наличии актуальной резервной копии! ;)