locked
Список контактов. RRS feed

  • Вопрос

  • Помогите допилить скрипт. Взял У Ильгиза Мамышева в блоге:

    SET FOLDER=E:\OCS_Share\Contacts
    
    
    del %FOLDER%\delete_office_contacts.txt
    
    rename %FOLDER%\office_contacts.txt delete_office_contacts.txt
    
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\delete_office_contacts.txt /contactsfile:%FOLDER%\delete_office_contacts.txt /contactsgroup:Office /delete
    REM timeout /T 600
    
    
    
    Date /T > %FOLDER%\office_contacts.txt
    Time /T >> %FOLDER%\office_contacts.txt
    dsquery * "OU=Office,OU=Hosts,DC=ourgold,DC=local" -attr msRTCSIP-PrimaryUserAddress -scope onelevel -limit 10000 -l -filter "(&(msRTCSIP-UserEnabled=TRUE)(|(userAccountControl=512)(userAccountControl=66048)))" >> %FOLDER%\office_contacts.txt 
    
    
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\office_contacts.txt /contactsfile:%FOLDER%\office_contacts.txt /contactsgro`up:Office
    CScript %FOLDER%\lcsaddaces.wsf /usersfile:%FOLDER%\office_contacts.txt /acesfile:%FOLDER%\acesfile.txt
    
    
    pause

    Он добавляет просто группу пользователей из OU Office, под название Office, Есть у меня еще OU Shop. Если просто в этот скрипт подсовывать анологичный файлы для магазинов, он добавляет опльзвоателей, пользователям из OU магазины. А как сделать так, чтобы одни скриптом добавлялись сразу оба подразжеления, т.е. в коммуникаторе должна быть группа Shop и Office. Вручную как-то не гуд делать.

    23 сентября 2011 г. 12:41

Ответы

  • Ну так в том же блоге, после нашего совместного детища, я написал целую пачку комментариев ;) .

    Потом Илгиз описал это же самое отдельным постом.

    • Помечено в качестве ответа AndreySV 26 сентября 2011 г. 9:01
    25 сентября 2011 г. 20:03
    Модератор
  • Честно говоря, не совсем понял ваш вопрос, но мой вам совет - сформируйте на тестовом пользователе необходимый шаблон контактов, выгрузите его из базы в XML, а потом загрузите его всем пользователям, которым он нужен ;) ...

    • Помечено в качестве ответа AndreySV 26 сентября 2011 г. 9:10
    26 сентября 2011 г. 7:39
    Модератор
  • На сколько понял задачу - нужно пользователям обоих офисов добавить две группы с составом пользователей из каждого офиса.

    В лоб задачу можно решить так (внимание, скрипт не тестировал!):
    ====================
    SET FOLDER=c:\OCS_Share\Contacts

    REM DeleteUsers
    del %FOLDER%\delete_all_users.txt
    rename %FOLDER%\all_users.txt delete_all_users.txt
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\delete_all_users.txt /contactsfile:%FOLDER%\delete_all_users.txt /contactsgroup:Office1 /delete
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\delete_all_users.txt /contactsfile:%FOLDER%\delete_all_users.txt /contactsgroup:Office2 /delete
    REM timeout /T 600

    REM ExportUsers
    REM http://support.microsoft.com/ kbid 305144
    REM Получим список членов OU Office1
    dsquery * "OU=Office1,DC=domain,DC=ru" -attr msRTCSIP-PrimaryUserAddress -scope onelevel -limit 10000 -l -filter "(&(msRTCSIP-UserEnabled=TRUE)(|(userAccountControl=512)(userAccountControl=66048)))" > %FOLDER%\office1_users.txt
    REM Скопируем содержимое в файл общего списка
    type %FOLDER%\office1_users.txt > %FOLDER%\all_users.txt
    REM Получим список членов OU Office2
    dsquery * "OU=Office2,DC=domain,DC=ru" -attr msRTCSIP-PrimaryUserAddress -scope onelevel -limit 10000 -l -filter "(&(msRTCSIP-UserEnabled=TRUE)(|(userAccountControl=512)(userAccountControl=66048)))" > %FOLDER%\office2_users.txt
    REM Скопируем содержимое в файл общего списка
    type %FOLDER%\office2_users.txt >> %FOLDER%\all_users.txt

    REM timeout /T 120

    REM AddContacts
    REM СОздадим пользователям обоих офисов группу Office1 с членами из Офиса 1
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\all_users.txt /contactsfile:%FOLDER%\office1_users.txt /contactsgroup:Office1
    REM СОздадим пользователям обоих офисов группу Office2 с членами из Офиса 2
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\all_users.txt /contactsfile:%FOLDER%\office2_users.txt /contactsgroup:Office2
    CScript %FOLDER%\lcsaddaces.wsf /usersfile:%FOLDER%\all_users.txt /acesfile:%FOLDER%\acesfile.txt
    REM timeout /T 60

    ====================


    MCITP
    • Помечено в качестве ответа AndreySV 29 сентября 2011 г. 6:11
    27 сентября 2011 г. 5:39

Все ответы

  • Вопросом на вопрос - а вам точно нужно добавление именно скриптом выполнять :) ? Вариант через импорт контактов в базу вас не устраивает?

    23 сентября 2011 г. 14:14
    Модератор
  • Так, а с этого момента можно по подробнее???:)
    25 сентября 2011 г. 17:22
  • Ну так в том же блоге, после нашего совместного детища, я написал целую пачку комментариев ;) .

    Потом Илгиз описал это же самое отдельным постом.

    • Помечено в качестве ответа AndreySV 26 сентября 2011 г. 9:01
    25 сентября 2011 г. 20:03
    Модератор
  • Оу, безумно благодарен. Буду читать и смотреть)
    26 сентября 2011 г. 7:26
  • Благодарность, особенно бузумную, на данных форумах принято сопровождать ещё и нажатием кнопки "Пометить как ответ" ;) . Если, конечно, это действительно было то, что вам нужно.
    26 сентября 2011 г. 7:31
    Модератор
  • а вот в вашем xml файле, который вы описывали в коментариях, можно ли вместо пользователя, добавить туда всех пользователей из определенного OU?
    26 сентября 2011 г. 7:32
  • Честно говоря, не совсем понял ваш вопрос, но мой вам совет - сформируйте на тестовом пользователе необходимый шаблон контактов, выгрузите его из базы в XML, а потом загрузите его всем пользователям, которым он нужен ;) ...

    • Помечено в качестве ответа AndreySV 26 сентября 2011 г. 9:10
    26 сентября 2011 г. 7:39
    Модератор
  • Да это было то что нужно:) Скрипт работает, все прекрасно добавляется. Просто есть вот ккие две вещи. Вот тот скрипт, который я выше привел. Им можно добавлять себе пользователей из определенного контейнера в АД, как-то вот так сделал, чтоу меня создалось две группы в коммуникаторе, с пользователями из разных контейнеров. У меня как сделано:

    Подразделение HOsts, а в нем два подразделения Office и Shop. Хотелось бы сразу например на своем пользователе добавить всех, сделать экспорт в xml а потом импорт, всем...было бы вообще замечательно...а то чет добавлять 200м пользователям в ручную)))эт жесть будет) буду думать спасибо вам за ответы)

    26 сентября 2011 г. 9:09
  • Сейчас Илгиза призовём :) ...
    26 сентября 2011 г. 9:11
    Модератор
  • Кстати, а вы не из Самары случаем?)
    26 сентября 2011 г. 9:17
  • Илгиз из Самары ;) .
    26 сентября 2011 г. 9:31
    Модератор
  • аа)))у меня с ним тогда знакомые работают кодеры)
    26 сентября 2011 г. 9:39
  • На сколько понял задачу - нужно пользователям обоих офисов добавить две группы с составом пользователей из каждого офиса.

    В лоб задачу можно решить так (внимание, скрипт не тестировал!):
    ====================
    SET FOLDER=c:\OCS_Share\Contacts

    REM DeleteUsers
    del %FOLDER%\delete_all_users.txt
    rename %FOLDER%\all_users.txt delete_all_users.txt
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\delete_all_users.txt /contactsfile:%FOLDER%\delete_all_users.txt /contactsgroup:Office1 /delete
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\delete_all_users.txt /contactsfile:%FOLDER%\delete_all_users.txt /contactsgroup:Office2 /delete
    REM timeout /T 600

    REM ExportUsers
    REM http://support.microsoft.com/ kbid 305144
    REM Получим список членов OU Office1
    dsquery * "OU=Office1,DC=domain,DC=ru" -attr msRTCSIP-PrimaryUserAddress -scope onelevel -limit 10000 -l -filter "(&(msRTCSIP-UserEnabled=TRUE)(|(userAccountControl=512)(userAccountControl=66048)))" > %FOLDER%\office1_users.txt
    REM Скопируем содержимое в файл общего списка
    type %FOLDER%\office1_users.txt > %FOLDER%\all_users.txt
    REM Получим список членов OU Office2
    dsquery * "OU=Office2,DC=domain,DC=ru" -attr msRTCSIP-PrimaryUserAddress -scope onelevel -limit 10000 -l -filter "(&(msRTCSIP-UserEnabled=TRUE)(|(userAccountControl=512)(userAccountControl=66048)))" > %FOLDER%\office2_users.txt
    REM Скопируем содержимое в файл общего списка
    type %FOLDER%\office2_users.txt >> %FOLDER%\all_users.txt

    REM timeout /T 120

    REM AddContacts
    REM СОздадим пользователям обоих офисов группу Office1 с членами из Офиса 1
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\all_users.txt /contactsfile:%FOLDER%\office1_users.txt /contactsgroup:Office1
    REM СОздадим пользователям обоих офисов группу Office2 с членами из Офиса 2
    CScript %FOLDER%\lcsaddcontacts.wsf /usersfile:%FOLDER%\all_users.txt /contactsfile:%FOLDER%\office2_users.txt /contactsgroup:Office2
    CScript %FOLDER%\lcsaddaces.wsf /usersfile:%FOLDER%\all_users.txt /acesfile:%FOLDER%\acesfile.txt
    REM timeout /T 60

    ====================


    MCITP
    • Помечено в качестве ответа AndreySV 29 сентября 2011 г. 6:11
    27 сентября 2011 г. 5:39
  • Доброго дня. Попробовал по Вашей инструкции из комментариев. Результат почему-то был таков:

     

    SQL Schema Version: 59
    User Data Schema Version : 21
    Importing Homed Resources into database...
    0 Resource(s) imported.
    Import completed successfully.
    0 Resource(s) imported.
    

     


    То есть импортировано 0 записей, и действительно у пользователя ничего нового не появилось.

    Возможно проблема в том, что у пользователя не пустой контакт лист, то есть у него уже есть и те записи, что содержатся и в импортируемой xml-ке. Да и в ней, к тому же, создаются 3 группы отличные от уже созданных групп пользователя, которых всего две.

    То есть, к чему я это пишу, этот способ работает только для пользователей с пустым контакт-листом или должен работать и на уже заполненных?

    P.S. Попробовал предварительно экспортировать данные пользователя, которому затем хотел добавить контакты (чтобы восстановить, случись чего). И про рассмотрении этого xml файла там находиться куда больше информации нежели в нашем файлике, который мы пытаемся ему импортировать. Там еще находиться некая информация о сертификате, адресе, адресе почты (я так понял, что это карточка юзера собранная из AD). Как быть с ней? То есть импорт xml файла ДОБАВЛЯЕТ контакты или полностью ПЕРЕПИСЫВАЕТ весь файл?

    Спасибо.

    P.P.S. Посмотрел, что это форум по OCS R2 и решил уточнить, у меня Lync Server 2010 Standard, клиенты все Lync 2010
    • Изменено Anton Karlan 17 ноября 2011 г. 2:52 Уточнение версии сервера
    17 ноября 2011 г. 2:49
  • Работает с любыми пользователями - хоть с пустыми, хоть с заполненными контактами. По умолчанию данные именно обновляются, для удаления есть соответствующий параметр.

    Для простого импорта контактов в базу, достаточно только этих самых контактов без остальной информации.

    Что в OCS'е что в Lync'е - суть едина ;) .

    17 ноября 2011 г. 9:31
    Модератор