locked
Управление контакт-листами в OCS 2007 RRS feed

  • Вопрос

  • Форумчане, поделитесь, пожалуйста, опытом как осуществляется subj. Возможно, у кого-то есть мануал поэтому вопросу, другая документация или ссылка на ресурс с подобным обсуждением?

     

    Интересует не самостоятельное формирование контакт-листа пользователем, а возможность административно определять контакт-лист. В идеале, чтобы эти листы можно было формировать автоматически (задавая условия), как адресные листы в эксчендче . Возможно ли такое или я размечталась?

     

     

    25 июня 2007 г. 8:36

Ответы

  • Сохранился все тот же  lcsaddcontacts.wsf  для добавления контактов пользователям. (Логику реализуем отдельным скриптом.)

     

    Так что, как это обычно бывает в жизни, мечта осуществима, но только при собственных усилиях.

     

    25 июня 2007 г. 9:16
    Модератор
  • Вот переделал функцию для удаления группы по ее имени для заданного пользователя. Вам только надо организовать вызов этой функции из скрипта LCSAddContacts.wsf (начинать надо от функции ParseUserLineItem и далее, т.е. надо получить strPrimaryURI, потом UserInstanceID)  Думаю справитесь

      


    Code Snippet

    '-------------------------------------------------------------------------------
    ' Function:     DeleteGroup
    ' Description:  Deletes Group for given a User
    ' Parameters:   UserInstanceID, GroupName
    ' Returns:  Variant rReturn - (Either -1, Err.Number or 0)
    '-------------------------------------------------------------------------------
    Function DeleteGroup(ByVal UserInstanceID, ByVal GroupName)
     Dim vReturn  : vReturn = -1

     Dim oInstances
     Dim oInstance

     Set oInstances = GetObject("winmgmts:\\" & cComputer).ExecQuery("SELECT * FROM " & cWMIUserContactGroupClass & " WHERE UserInstanceID = '" & UserInstanceID & "'")
     If Not oInstances.Count < 1 Then
      For Each oInstance In oInstances
       If StrComp(GroupName, oInstance.Name) = 0 Then
        On Error Resume Next
        oInstance.Delete_
        If Err.number = vbEmpty Then
         WScript.Echo "[+]   Delete successful for Group: " & GroupName
         vReturn = 0
        Else
         WScript.Echo "[-]   Delete failed for Group: " & GroupName & " " & Err.number & ": " & Err.Description
         vReturn = Err.number
        End If
        On Error Goto 0
       End If
      Next
     End If
     DeleteGroup = vReturn
    End Function

     

    Вот WMI-класс для группы. Тут указаны параметры. Фактически можно искать по имени группы (как я сделал) и по ExternalURL но что это я не знаю

     

    class MSFT_SIPESUserContactGroupData
    {
      string ExternalURL;
      [key] uint32 GroupID;
      string Name;
      [key] string UserInstanceID;
    };

    27 июня 2007 г. 4:15
    Модератор

Все ответы

  • Сохранился все тот же  lcsaddcontacts.wsf  для добавления контактов пользователям. (Логику реализуем отдельным скриптом.)

     

    Так что, как это обычно бывает в жизни, мечта осуществима, но только при собственных усилиях.

     

    25 июня 2007 г. 9:16
    Модератор
  • Спасибо за помощь.

    Все работает, за исключением одного: названия групп русскими буквами кракозябрятся. Вы с этим не сталкивались? Может, это с английским клиентом связано?

    25 июня 2007 г. 13:14
  • Осилила! Все работает!
    25 июня 2007 г. 18:20
  • Умняша!
    26 июня 2007 г. 4:12
    Модератор
  • Не смогла сделать удаление созданных групп.

    Команда cscript lcsaddcontacts.wsf /usersfile: dit.txt /contactsfile: dit.txt /delete

    удаляет контакты из контакт-листа, но оставляют группы... А я поначалу с русским не разобралась и насоздавала групп с нечитаемыми названиями

    В РесорсКите неутешительно написано:

    Do not specify the optional /contactsGroup option when deleting contacts. Once the contact group has been created it cannot be deleted by using this script; it will have to be deleted manually. 

    Пользователь может например переименовать группу в своем контакт-листе, и при следующем импорте группа создастся заново и группы будет уже 2. Или же переименуют подразделение. Вобщем, контакт-листы склонны к засорению. Есть ли возможность перед импортом зачистить полностью контакт-лист пользователю? Может контакт-лист хранится таблицей или файликом в шаре AddressBook?

    26 июня 2007 г. 20:55
  • Вот переделал функцию для удаления группы по ее имени для заданного пользователя. Вам только надо организовать вызов этой функции из скрипта LCSAddContacts.wsf (начинать надо от функции ParseUserLineItem и далее, т.е. надо получить strPrimaryURI, потом UserInstanceID)  Думаю справитесь

      


    Code Snippet

    '-------------------------------------------------------------------------------
    ' Function:     DeleteGroup
    ' Description:  Deletes Group for given a User
    ' Parameters:   UserInstanceID, GroupName
    ' Returns:  Variant rReturn - (Either -1, Err.Number or 0)
    '-------------------------------------------------------------------------------
    Function DeleteGroup(ByVal UserInstanceID, ByVal GroupName)
     Dim vReturn  : vReturn = -1

     Dim oInstances
     Dim oInstance

     Set oInstances = GetObject("winmgmts:\\" & cComputer).ExecQuery("SELECT * FROM " & cWMIUserContactGroupClass & " WHERE UserInstanceID = '" & UserInstanceID & "'")
     If Not oInstances.Count < 1 Then
      For Each oInstance In oInstances
       If StrComp(GroupName, oInstance.Name) = 0 Then
        On Error Resume Next
        oInstance.Delete_
        If Err.number = vbEmpty Then
         WScript.Echo "[+]   Delete successful for Group: " & GroupName
         vReturn = 0
        Else
         WScript.Echo "[-]   Delete failed for Group: " & GroupName & " " & Err.number & ": " & Err.Description
         vReturn = Err.number
        End If
        On Error Goto 0
       End If
      Next
     End If
     DeleteGroup = vReturn
    End Function

     

    Вот WMI-класс для группы. Тут указаны параметры. Фактически можно искать по имени группы (как я сделал) и по ExternalURL но что это я не знаю

     

    class MSFT_SIPESUserContactGroupData
    {
      string ExternalURL;
      [key] uint32 GroupID;
      string Name;
      [key] string UserInstanceID;
    };

    27 июня 2007 г. 4:15
    Модератор
  • Я решила вопрос грубейшим способом: удалением у всех пользователей всех контактов LCSAddContacts и зачисткой таблицы ContactGroup в базе rtc .

    Но такой метод в решении задачи ежедневной синхронизации контакт-листа с АД, конечно же, не годится - очищается группа Recent contacts. Описание класса видела, но скриптом ничего получить не удалось Sad  в sql-ной таблице же все имена в бинарном виде Sad

     

    'On error resume next
    Const cComputer = "."
    Const cWMINameSpace = "root/cimv2"
    Const cWMIUserContactGroupClass = "MSFT_SIPESUserContactGroupData"
    Dim oInstances
    Dim oInstance
    Set oInstances = GetObject("winmgmts:\\" & cComputer).Get(cWMIUserContactGroupClass)
     For Each oInstance In oInstances
     wscript.echo (oInstance.name)
     wscript.echo (oInstance.ExternalURL)
     wscript.echo (oInstance.groupId)
     wscript.echo (oInstance.UserInstanceID)
     Next

    ExternalURL это https://сервер/Abs/Ext.

     

    Спасибо за решение , попробую ваш скрипт для корректного  уничтожения старых групп.

    27 июня 2007 г. 5:10
  • ExternalURL поле используется для GroupExpansion (публикации Distribution Group в контакт листах пользователей) в этом поле должна стоять строка вида

    "<groupExtension groupType="dg""><email>ИмяГруппы@СипДомен</email></groupExtension>"

    тогда, можно управлять контакт листами с помощью членства в группах АД

    4 июля 2008 г. 11:56
  • добрый день уважаемые.

    а как нибудь попроще есть возможность создать контакт лист. поставил консоль OCSCM все бы хорошо, создал пользователь добавил в группы. проблема случилась позже после достижения в 150 контактов добавить пользователей стало невозможно. оснастка пишет "неопределённая ошибка". думал ограничения, поставил на сервере 300 пользователей, то же проделал и в групповых польитиках. может кто сталкивался с подобной проблемой? 

    25 августа 2008 г. 8:25