понедельник, 1 апреля 2013 г.

Контакт менеджер для Lync Server 2010/2013 [LDCM 4.0]. Часть 1: Подготовка и настройка сервера доверенных приложений

     LDCM (Lync department contact manager) - программа для централизованного управления контакт листами пользователей в среде Microsoft Lync Server 2010/2013.



К основным возможностям программы можно отнести:
  • создание контакт листов, состоящих из групп контактов с сохранением в базе данных на основе AD или XML файлов; 
  • централизированное добавление контакт листов группам пользователей;
  • просмотр контакт листа пользователя, с возможностью удаления ненужных групп или контактов
Системные требования:
  1. Развернутый сервер Lync 2013 или Lync 2010 (программа выпускается в двух версиях)
  2. Для версии программы для Lync 2010, работающей с использованием UCMA 3.0  подойдут такие операционные системы:
  3. Windows 7 Home Basic 64-bit, Windows 7 Home Premium 64-bit, Windows 7 Professional 64-bit, Windows 7 Ultimate 64-bit, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Business 64-bit edition, Windows Vista Enterprise 64-bit edition, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium 64-bit edition, Windows Vista Ultimate 64-bit edition
    Для версии программы для Lync 2013, работающем на UCMA 4.0:
    Windows Server 2008 R2 SP1, Windows Server 2012
  4. Также для работы необходима база данных MSSQL (Express достаточно). Проверено на версиях 2008 и 2012. В теории должно работать и на 2005, но не проверялось.
    Для работы приложение должно быть запущено на, так называемом, сервере доверенных приложений (trusted application server). Доверенные приложения — это приложения, созданные на основе SDK для Microsoft Unified Communications Managed API (UCMA), который является доверенным для Microsoft Lync Server.
    Есть два варианта установки:
  1. Установка SDK и использование минимальных компонентов Lync сервера, входящих в его комплект
  2. Установка роли Trusted application server через topology builder и установка необходимых серверных компонентов через родной установщик линк. SDK в этом случает ставится тоже.
   По сути на выходе одно и то же, но немного разными путями. В теории оба варианта должны работать. На практике в 10-ке использовал первый вариант, но когда попробовал поставить так же на 13-й - ничего не вышло (у меня вылетало на установе OcsCore.msi) и поэтому использовал второй вариант.

Шаг 1

 Берется машина и вводится в домен. В моем случае это LyncApp.wow.com. Можно использовать какую-нибудь существующую (например, в версии Lync Server 2013 standard -  trusted application server установлен на той же машине, где крутится база данных для мониторинга)

Шаг 2

   Для работы приложения, необходимо установить UCMA (3.0 для Lync 2010 или 4.0  для Lync 2013). При необходимости, установить также все компоненты из "Prerequisites".

Шаг 3 (Вариант 1) 

   При инсталляции UCMA SDK также устанавливаются дополнительные средства, которые используются для конфигурации Lync local management store. Для установки основных компонентов Lync Server и конфигурации local management store, необходимо перейди в командной строке на C:\Program Files\Microsoft Lync Server 2010(2013)\Deployment и запустить команду: 
Bootstrapper.exe /BootstrapLocalMgmt /MinCache
    После окончания установки появится программная группа Microsoft Lync Server 2010, из которой нужно запустить Lync Server Management Shell. Для создания доверительного пула приложений (trusted application pool) используется командлет New-CsTrustedApplicationPool. Перед созданием необходимо узнать полное доменное имя регистратора (registrar), а также ID сайта. Для получения этой информации можно запустить:
Get-CsSite
Get-CsService -Registrar
   После получения необходимых данных запускается команда, которая непосредственно создает доверительный пул приложений:
New-CsTrustedApplicationPool -Identity LyncApp.wow.com -Registrar Registrar:pool13.wow.com -Site Site:LyncSite
   После выполнения команды, для завершения операции добавления, необходимо запустить:
Enable-CsTopology
   Эта команда создаст необходимые записи в Active Directory для доверительного пула приложений. На следующем шаге необходимо запросить сертификат из доменного центра сертификации и установить его на сервер. Это позволит инфраструктуре сервера Lync распознавать и доверять серверу приложений в качестве компонента топологии Lync. Для запроса сертификата необходимо выполнить команду:
Request-CsCertificate -New -Type default -CA DC.wow.com\RootCA -Verbose
   Параметр -Verbose необходим для подробного вывода действий команды и позволяет получить отпечаток (Thumbprint) сертификата – он понадобится при выполнении установки сертификата. Для установки сертификата нужно выполнить команду: 
Set-CsCertificate -Type Default -Thumbprint < Thumbprint >

 Шаг 3 (Вариант 2)

    На сервере Lync в Topology Builder в Trusted application servers создаем новый trusted application pool LyncApp.wow.com



      После этого, необходимо опубликовать полученную топологию:



     Следуя указаниям в "Next Steps", запускаем установку компонентов Lync Server на LyncApp.wow.com и выполняем первые 4 шага. По сути все стандартно.





Шаг 4

     Теперь нужно создать доверенное приложение, выполнив в Lync Powershell команду:
New–CsTrustedApplication
При этом надо указать
•    ApplicationId – имя, которое будет дано доверенному приложению.
•    TrustedApplicationPoolFqdn – полное доменное имя доверенного пула приложений.
•    Port – номер прослушиваемого порта.

    После создания приложения, необходимо настроить репликацию из central management store в новое локальное хранилище данных:
Enable - CsReplica 
Для принудительной репликации необходимо выполнить команду:
Invoke-CsManagementStoreReplicationStatus
Репликация занимает некоторое время (5-10 минут). Для проверки состояния существует команда:
Get-CSManagementStoreReplicationStatus
 Необходимо дождаться состояния, UpToDate: True, чтобы репликация применилась ко всем серверам.

Итог: если все прошло без ошибок - на выходе получается сервер на котором можно запускать любые приложения, написанные на UCMA 3.0/4.0 (С именем, указанным в ApplicationId). При необходимости, доверенных приложений можно создать еще.

15 комментариев:

  1. Здравствуйте. Использовал написанную вами программу был очень доволен спасибо большое. Но в данный момент начальство потребовало расширенного функционала. Решил писать подобное приложение, не могли бы вы подсказать мне как вы с помощью UCMA, добавляете/удаляете группы у всех пользователей ведь методы ContactGroupServices работают с пользователем-владельцем текущей сессии?

    Заранее спасибо

    ОтветитьУдалить
    Ответы
    1. Professional Unified Communications Development with Microsoft Lync Server 2010 - тут найдете примеры)

      Удалить
    2. Большое спасибо

      Удалить
  2. Здравствуйте, подскажите пожалуйста в чем может быть проблема, при выполнении Install local Configuration Store получаю такую ошибку "Failed caching file D:\Setup\amd64\setup\OcsCore.msi, error message: Не удается найти заданный сектор на диске." Если подгружаю оброз линка через демон тулс то ошибка "не верная функция".

    ОтветитьУдалить
    Ответы
    1. ну тут я врят ли сильно подскажу. Рекомендую написать на технет форум с линком

      Удалить
    2. образ битый был))
      вот только теперь новая ошибка "Error returned while installing OcsCore.msi(Feature_LocalMgmtStore), code 1638." у вас не каких проблем не было с "Install local Configuration Store" ???

      Удалить
  3. Доброго времени суток всем!!
    ПОдскажите пожайлуста, делаю все по инструкции, но на этапе репликации что то не получается, так и стоит UpToDate - False http://dropmefiles.com/FK49y
    в чем может быть проблема?

    ОтветитьУдалить
    Ответы
    1. Много чего быть может. Рекомендую посмотреть логи ошибок на сервере.

      Удалить
    2. Вообщем причину кажется обнаружил, дело в том что на trusted application server установился sql express инстанс rtclocal и почему то не дает доступ к sql под доменным админом
      Error: An error occurred: "Microsoft.Rtc.Common.Data.SqlConnectionException" "Cannot open database "xds" requested by the login. The login failed.
      интересно почему это так

      Удалить
  4. Всем привет !
    Вопрос: а для чего создавать отдельный сервер с отдельным доверенным пулом ?
    Разве нельзя сделать всё на том же сервере и на том же пуле, где уже развёрнут сам Lync Server ?

    ОтветитьУдалить
    Ответы
    1. не знаю как сейчас, но Lync2010/2013 этого сделать попросту не давал

      Удалить
  5. Добрый день. Приношу благодарность за Ваши труды. Весьма полезная утилита, хоть и несколько витиевата в установке. Единственно, в чём в моём случае не хватает - это пакетно удалять уволенных сотрудников из контакт-листов пользователей. В связи с чем вопрос, планируется ли расширять функционал и развивать проект?

    ОтветитьУдалить
    Ответы
    1. Расширений/обновлений более не планируется

      Удалить
  6. Доброго дня, помогите пожалуйста с ошибкой - not authorized to perform the requested operation, request is refused...

    В какую сторону смотреть???

    ОтветитьУдалить
    Ответы
    1. В сторону нехватки прав у пользователя, от имени которого запускается приложение. Точнее врятли сейчас смогу сказать.

      Удалить