Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Cинхронизация Адресной Книги Exchange 2003 между филиалами

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть такая проблема, необходимо синхронизировать адресную книгу Exchange 2003 между двумя филиалами организации. Но - между доменами нет трастов, да и вообще они даже не в одном лесу. На микрософте нашел вот такой пример: "Synchronizing Multiple Exchange 2003 Forests" и в первой табличке "Available features in a multiple forest environment" меня заинтересовал пункт "Common global address list (GAL) - Yes, with Microsoft Identity Integration Server (MIIS) 2003." т.е. для синхронизации GAL между двумя лесами можно не пользовать трасты, а использовать MIIS. Кто какие еще может красивые решения этой задачи?

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....





Название темы чуть подправлено. /emx/

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 07:52 28-02-2006 | Исправлено: emx, 14:01 03-03-2006
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
раз никто не пишет расскажу как это сделал я сам.
1. сделал экспорт юзеров с неполным набором аттрибутов LDAP в csv файл следующей командой:

Код:
csvde.exe -f c:\list.csv -n -l DN,mail,mailNickname -r "(objectClass=contact)"

2. натравил на этот список sed с целью выкинуть ненужные мне поля:

Код:
sed -i -e 's/OU=[^,]*,//g' list.csv
sed -i -e 's/DC=[^,]*,//g' list.csv
sed -i -e 's/"CN=//g' list.csv
sed -i -e 's/\\\\,//g' list.csv

3. открыл этот файлик в екселе и разбил аттрибуты по колонкам использовав запятую как разделитель и сохранил как екселовский файл xls.
4. запустил следующий скрипт который мне случайно упал с неба :

Код:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open _
    ("c:\list.xls")
 
intRow = 2
 
Set objRootDSE = GetObject("LDAP://RootDSE")
            strDNSDomain = objRootDSE.Get("defaultNamingContext")
Set contactsOU = GetObject("LDAP://ou=contacts,"& strDNSDomain & "")
 
Do Until objExcel.Cells(intRow,1).Value = ""
 
    Set objContact = contactsOU.Create("contact","cn=" & objExcel.Cells(intRow, 1).Value)
                        objContact.Put "displayName", objExcel.Cells(intRow, 1).Value
                        objContact.Put "mailNickname", objExcel.Cells(intRow, 2).Value
                        objContact.Put "TargetAddress", "SMTP:" & objExcel.Cells(intRow, 3).Value
                        'objContact.Put "msExchHideFromAddressLists", msExchHideFromAddressLists
                        objContact.SetInfo    
    intRow = intRow + 1
Loop
 
objExcel.Quit

5. Пошел в оу контакты и увидал что все есть и все на месте
 
PS: спасибо всем кто участвовал в этом процессе в частности ooptimum. Благодарю алфавит за любезно предоставленные буквы.

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 11:02 02-03-2006 | Исправлено: Raredemon, 11:56 06-03-2006
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Теперь усложняем задачу....
Есть две выгруженные адресные книги, одна с моего сервера ~9000 контактов, вторая ~2000 контактов с главного офиса. Задача: сравнить две выгрузки, добавить ко мне отсутствующие контакты и в моей обновить контакты которые изменили в главном офисе.
 
2 emx 10x

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 16:44 04-03-2006
yurynok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
убить у себя все контакты и добавить по новой...
Если добавлял через Excel, то кто мешает сравнить две книги и найти различия, или еще проще грузим две книги в Access и одним запросом получаем новые, их и добавляем в контакты. Второй запрос дает отличия, их и заносим.

Всего записей: 1367 | Зарегистр. 21-03-2003 | Отправлено: 20:24 04-03-2006
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Продолжаем кино из серии "Как я парился пытаясь слепить адресную книгу"
Оказалось все не так уж и сложно. Две выгрузки GAL-a сохраняем в csv и заливаем... правильно на линукс-машину.
лепим скрипт следующего содержания:

Код:
#/bin/sh
 
# $1 - Старый файл
# $2 - Новый файл
 
names=names.$$
filtered=filtered.$$
 
cut $2 -d, -f1 | sed -e 's/^/\^/' > $names
grep -v -f $names $1 > $filtered
cat $filtered $2 >new.csv
 
rm -f $names $filtered

и на выходе получаем то что надо единственное "но" о котором забыл предупредить, надо удалить из выгрузок первые строки типа "DN,mail,mailNickname" а после всех наших операций первую строку поставить руками на место... ну лень мне было настолько все автоматизировать
Все благодарности остаются в силе

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 14:17 06-03-2006 | Исправлено: Raredemon, 14:22 06-03-2006
Yasen_Peretz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Че паритесь. Есть же MIIS или бесплатная фича Identity Integration Feature Pack для синхронизации Global Address List между лесами. Куча доки по установке и эксплуатации. Сам вот закончил тестировать на виртуалках. Все работает.

Всего записей: 2 | Зарегистр. 10-03-2006 | Отправлено: 08:43 26-04-2006
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Yasen_Peretz
Ну дык внимательно тему прочитай, это раз. во-вторых в моей ситуации нельзя было использовать MIIS хотя бы потому что нет у меня доступа к серверам в главном офисе и внедрение MIIS не есть тривиальная задача для большой организации с десятками филиалов и офисов. и в третьих ложка хороша к обеду

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 10:38 26-04-2006
Yasen_Peretz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
До принятия решения о работе с МИИСом я делал так:  через определенные промежутки времени запускался скрипт, который если достучался до глобального каталога другого леса, то удалял из определенного OU все контакты, читал в том лесе всех пользователей, у которых есть почта, и создавал у меня тут контакты по новой.
 
Потом была создана новая адресная книга через Exchange System Manager, где в свойствах было указано Exchange Recipients и поставлена галочка на Contacts with external e-mail addresses
 
 
Option Explicit
On Error Resume Next
Dim objConnection, objCommand, RS
Dim DisplayName, Mail
Dim Container
Dim Contact
 
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
 
objConnection.Properties("User ID")         = тут_аккаунт
objConnection.Properties("Password")         = тут_пароль
objConnection.Properties("Encrypt Password")     = True
objConnection.Properties("ADSI Flag") = 1
objConnection.Open "Active Directory Provider"
 
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
 
objCommand.CommandText = "SELECT displayname, mail FROM 'GC://АйПи_глобального_каталога/DC=блаблабла,DC=блаблабла' WHERE mail='*' AND objectClass='user' AND displayname <> 'SystemMailbox*' AND mail <> 'SystemMailbox*' ORDER BY displayname"
Set RS = objCommand.Execute
 
Dim sAddress
Dim sAlias
if NOT (RS.BOF AND RS.EOF) then
    'Удалить все контакты и создать новые
    Dim sOU
    sOU="OU=GAL"
    Dim Root, DomainPath
    Set Root=GetObject("LDAP://RootDSE")
    DomainPath=Root.Get("DefaultNamingContext")
 
    Set Container = GetObject("LDAP://" & sOU & "," & DomainPath)
    
    'Удаление всех контактов
    Dim strContact
    for each strContact in Container
        Container.Delete "contact", strContact.Name
    next
    
    'Создание новых контактов
    RS.MoveFirst
    While Not RS.EOF
        DisplayName=RS("displayname")    
        Mail=RS("mail")
        sAddress="SMTP:" & mail
        sAlias=Split(mail,"@")
        Set Contact = Container.Create("Contact", "CN=" & DisplayName)
        Contact.Put "sn", DisplayName
        Contact.Put "givenName", DisplayName
        Contact.Put "DisplayName", DisplayName
        Contact.Put "mail", mail
        Contact.targetAddress=sAddress
        Contact.PutEx 2,"proxyAddresses", Array(sAddress)
        Contact.Put "mailnickname", sAlias(0) & ".kamaz"
        Contact.SetInfo
        RS.MoveNext
    Wend
end if
 
Вот.
 
про ложку к обеду это конечно верно, но лучше поздно чем никогда. =)
 

Всего записей: 2 | Зарегистр. 10-03-2006 | Отправлено: 07:36 27-04-2006
tsvlsr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ДА этот MIIS штука судя по всему очень хорошая нада ее поставить, но вот вопрос где ее можно качнуть крякнутую кто нить знаит?

Всего записей: 17 | Зарегистр. 25-09-2006 | Отправлено: 11:19 19-12-2006
Petrucci

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть вот такая штука, перешлю информацию и ключи , если будет интересно .
 
Collaboration Services for Exchange – продукт для синхронизации глобальных адресных книг Exchange-серверов компаний с взаимно изолированными компьютерными сетями.
 
Не нарушая требования на изолированность сетей различных офисов, позволяет их сотрудникам взаимодействовать друг с другом так, как будто они работают в одном офисе в одной Exchange-организации без какой-либо изоляции.
 Данная функциональность продукта полностью безопасна, поскольку в процессе синхронизации обеспечивается защита от несанкционированного доступа к передаваемым через Интернет данным.
 
Стянуть тут можно : http://www.quest.com/collaboration-services-for-exchange/
 





:moderator: реклама. /emx/

Всего записей: 21 | Зарегистр. 02-04-2007 | Отправлено: 15:02 16-05-2007 | Исправлено: emx, 15:52 20-05-2007
Sadok

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raredemon
Я так понял, что ты ищешь атрибуты mail и mailnickname? А ведь это методически неверно А если у пользователя больше одного адреса (плюс адреса могут быть в разных доменах)? В этом случае надо искать proxyAddresses, а потом уже скриптом на правильной ОС выкусывать те, что /^smtp:/i

Всего записей: 1340 | Зарегистр. 04-01-2003 | Отправлено: 10:04 17-05-2007
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sadok

Цитата:
Я так понял, что ты ищешь атрибуты mail и mailnickname?

скрипт который на VB сделан только эти параметры и требует.

Цитата:
А если у пользователя больше одного адреса (плюс адреса могут быть в разных доменах)?

в данном случае это было непринципиально а сейчас так вообще не нужно. т.к. уже давно внедрили MIIS.

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 10:41 17-05-2007
AlexHote

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а не проще сделать одну общую книгу с адресами расшарить ее в инете  
и настроить почтовых клиентов на ее использование

Всего записей: 174 | Зарегистр. 27-05-2005 | Отправлено: 11:02 17-05-2007
Raredemon



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexHote
нет не проще. если ты знаком с серьезной политикой службы ИТ-безопасности и таким понятием как конфиденциальность данных и обеспечение бизнесс-процессов, то объяснять почему  - не потребуется.

----------
Designed for Windows XP.
Powered by Gentoo!
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логу прокси....

Всего записей: 1787 | Зарегистр. 03-09-2003 | Отправлено: 11:20 17-05-2007
alexxxn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я использую следующий способ обмена адресными книгами между никак не свзяанными между собой доменами:
1. в общих папках на каждом exchange сервере создается папка типа контакт.
2. ограничиваем, если надо доступ к этой папке.
3. в домене заводится обыкновенный пользователь.
4. этому пользователю даются полные права на созданной общей папке.
5. вбсрипт. подключается к глобал-каталогу, собирает нужную информацию, и методом proppatch складывает в нужный exchange сервер.
6. в вбскрипте имя-пароль пользователя указаны явно. однако можно использовать https.

Всего записей: 20 | Зарегистр. 27-12-2002 | Отправлено: 16:32 19-10-2007
FL0od13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть два trust домена. Год назад возникла вышеописанная задача. В итоге была написана прога, которая собирает инфу по пользователям удаленного домена, создает по собранным данным контакты в AD текущего домена с заданым префиксом. По префиксу в Exchange создается адресная книга. Прога запускается по шедулеру.
 
Если кому интересно  - пишите в личку, вышлю прогу.

Всего записей: 694 | Зарегистр. 04-03-2007 | Отправлено: 18:09 18-12-2007
mishutka82

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большой респект и уважуха FL0od13 за програмку для создания в AD контактов из другого домена. Настраивается просто, работает быстро, и без всякого гемороя c MIIS.
Регистрируешь1 библиотеку (на машине где Exchange не установлен), прописываешь в настройках программы имена доменов и аккаунт с админскими правами текущего домена, ставишь экзешник на Шедулер и наслаждаешься. Остаётся только настроить в Exchange адресный лист на выборку данных аккаунтов и дело сделано. Есть определённые недочёты при работе с Exchange 2007 но они не критичные и поправимые.

Всего записей: 29 | Зарегистр. 24-08-2006 | Отправлено: 16:44 07-06-2008
EvilEagle

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мега респект  FL0od13 за его труды в создании проги по перекачке контактов из одного домена в другой .

Всего записей: 3 | Зарегистр. 24-06-2008 | Отправлено: 15:39 01-07-2008
megaflopp

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отличная прога у товарища <b>FL0od13</b>, пасибы

Всего записей: 2 | Зарегистр. 23-05-2008 | Отправлено: 10:21 28-07-2008
kharkovmax

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый.
 
Если у кого осталась эта прога киньте плиз.
 
kharkov_max@mail.ru

Всего записей: 188 | Зарегистр. 26-03-2008 | Отправлено: 10:41 20-05-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Cинхронизация Адресной Книги Exchange 2003 между филиалами


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru