четверг, 2 августа 2012 г.

Lync Department Contact Manager 1.5 (mini)

Немного модифицировал LDCM 1.0 из страшного и непродуманного оконного приложения в более простое и красивое консольное. Правда с обновлением решил и доработать немного... в итоге вышло что-то среднее между первой и второй версией.
Первая требовала лишних действий со стороны пользователя (ненужные кнопки, да и интерфейс страшный...даже показывать не хочу), а выполняла лишь одну функцию - добавляла пользователю одну группу: его собственный OU (условно отдел) из Active Directory в контакт лист Lync.

   Описание второй есть тут. Вроде уже неплохо, но приходится на месте искать по дереву AD чего бы такого добавить в контакт лист. У версий 1-2 есть хороший такой недостаток: чтобы программа работала, надо чтобы в месте запуска программы был запущен клиент Lync, да еще и пользователь в него чтобы зашел...

   Есть еще одна  версия программы, написанная уже с UCMA 3.0, но уже как серверное приложение: может менять контакт листы любому пользователю, да и списки контактов хранятся в базе данных. 

Upd: Контакт менеджер для Lync Server 2010/2013

   А вот с этой версией будет ссылочка для скачивания. В общем программа писалась с целью, что если забросит куда далеко от рабочего места, да еще и компьютер вне домена (как ни печально, много таких еще) -  в один клик добавить пользователю в его контакт лист Lync сотрудников из его отдела.

   Что-то вроде системных требований:
  • наличие Lync Server 2010/2013
  • NET Framework 3.5
  • ОС Windows XP и выше
   Если честно, вообще не уверен что у всех заработает, но почему бы не попробовать? Ладно, пока вода и никакой конкретики, добавим немного логики, или то, что я написал на листе А4, прежде чем сел переделывать.
   Итак, есть компьютер с запущенным клиентом Lync 2010 и пользователь, который подключился к серверу.
  • Из клиента получаем имя пользователя.
  • Запрашиваем в AD OU пользователя.
  • В этом OU находим всех, у кого есть sip адрес (можно включить поиск во вложенных OU, а можно и не включать).
  • Записать название отдела в качестве группы в Lync (хотя потом подумал немного и решил добавить возможность как-то изменить название этой группы по-умолчанию, например, чтобы у всех она называлась "Отдел").
  • Ну и наконец добавить найденных пользователей в добавленную группу.
  • Добавить дополнительные обязательные группы в контакт лист.
Итак, что нужно сделать, чтобы приложение заработало:

  1. Извлечь файлы из архива (LDCM15.exe и LDCM15.exe.config)
  2. Поправить в конфиге значения под себя(об этом чуть ниже)
  3. Запустить .exe
   И да, настраивать и извлекать из архива надо только 1 раз - на этапе предварительной настройки, после этого все работает в 2 щелчка мыши. Собственно этого и добивался.

   В конфигурационном файле настройки хранятся в секции <appSettings> по принципу ключ-значение:
  • <add key="Domain" value="test.com"/> - Домен
  • <add key="Login" value="domainuser"/> - Логин любого пользователя домена
  • <add key="Password" value="password"/> - Его пароль
  • <add key="GroupName" value="Отдел"/> -  Если оставить поле пустым, имя группы будет взято из AD
  • <add key="Depth" value="0"/> -  Глубина поиска в AD. Используется при поиске пользователей в заданном OU. "0" -искать только в текущем OU; "1" -искать во всех вложенных OU.
  • <add key="OUs" value="OU=lync,OU=Test,DC=test,DC=com;
    OU=Отдел продаж,OU=ЧП Рога и копыта,DC=test,DC=com"/> -  Дополнительные OU, которые будут добавлены в качестве групп со всеми входящими в них контактами с sip адресами. OU между собой должны отдетяться ";".  Если дополнительные группы не нужны - оставить ключ пустым.
   Все значения, естественно, придуманы и если не сменить на нормальные - ничего работать не будет.

   Для примера, возьмем гипотетический домен test.com. В нем есть OU "Test" c пользователями и еще одним вложенным OU "lync". Пользователь lyncuser1 находится в отделе "lync". Кроме своей группы, добавим ему пользователей из группы "Test" - для этого в конфигурационном файле добавим строку: <add key="OUs" value="OU=Test,DC=test,DC=com;"/>. (чтобы исключить повторения - глубину поиска оставить равной 0). Результат выполнения показан на картинке ниже.

И напоследок, как и обещал, ссылка на скачивание.


P.S. не имею ни малейшего понятия надо ли подобное кому-нибудь вообще... но надеюсь найдется хотя-бы несколько человек, которым это действительно может пригодится.

upd. Я тут ставил новый линк, а заодно и программу проверил - работает. Так что она вполне может быть использована в качестве простого контакт менеджера для lync 2013.






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

  1. Оченама надама)

    Разочаровался я в фунционале Contact Store для Exchange/Lync 2013.

    А можно на вашу серверную версию 3.0 посмотреть?
    А то в интернете только LyncAddContacts.vbs гуляет, да платный http://www.vytru.com/contacts-manager.html

    ОтветитьУдалить
    Ответы
    1. Серверную программку так просто не выложишь, уж больно получилась к серверу привязанной. Если найду время - постараюсь хотя бы обзор написать.

      Удалить
  2. Спасибо!

    Вот тут сделана попытка перевести LyncAddContacts.vbs в PowerShell. Может, пригодится:
    http://codingstube.de/2012/07/powershell-add-lynccontacts-modul-v1-0/

    ОтветитьУдалить
  3. Доброго дня! А есть какие либо пути для экспорта/импорта текущих контактов пользователя? Например от одного выгрузил, другому загрузил...

    ОтветитьУдалить
    Ответы
    1. Комментарием выше скрипт для такого переноса, есть еще несколько подобных.
      Это приложение подходит для такого алгоритма "Занести пользователю контакты из выбранных организационных единиц".

      Как вариант LDCM4: http://tahiaji.blogspot.com/2013/05/lync-server-20102013-ldcm-40-3.html

      Удалить