Собственно, возникла задача: можно ли сделать общую адресную книгу Outlook для всех пользователей домена без использования сервера Exchange. Что, собственно, имеется: домен Active Directore, клиентские ОС (Windows Xp SP3 и Windows 7) и установленный на них MS Outlook версий 2003/2007/2010. Необходимо чтобы все пользователи домена в Outlook имели общий список внешних контактов.
При реализации этой задачки рассматривались различные варианты, начиная от необходимости разработки скриптов по синхронизации контактов между клиентами до различных сторонних решений. Однако все это было признано достаточно трудоемким и неудобным, пока в голову не пришла идея – а что если воспользоваться уже имеющейся единой базой данных под именем Active Directory для хранения информации обо всех общих контактах. Поэтому стали копать в сторону поддержки LDAP в Outlook (которая как оказывается имеется!!!).
Подготовительные шаги. В структуре Active Directory создадим отдельный организационный элемент OU, с именем, например, Contact. В данной OU будут храниться все наши внешние контакты. Заполним созданный нами OU элементами AD типа «Контакты», задав им необходимые имена и email адреса (у контактов обязательно должные быть заполнены поля Display Name и E-mail).
Настроим клиент Outlook на использование общей базы контактов по LDAP. В данной инструкции я буду настраивать Outlook 2010, в Outlook 2007/2003 процедура аналогично за исключением различий в интерфейсе и расположении/названии пунктов меню, я думаю, вы сами все найдете.
Настройка Outlook 2010 на общую адресную книгу LDAP
- Откроем Outlook 2010 и перейдем к настройке учетной записи почты (File-> Info-> Account Settings)
- Перейдите на вкладку Адресные книги (Address Books) и создадим новую адресную книгу (New)
- Тип адресной книги выберем Internet Directory Service (LDAP)
- В качестве имени сервера укажем FQDN имя ближайшего к нам контроллера домена Active Directory (у меня это dc1.wintpro.ru) и перейдем в раздел дополнительной настройки (More Settings)
- Перейдем на вкладку Search и в поле Custom укажем DN имя ранее созданного организационного юнита Active Directory, в котором хранится список контактов для нашей адресной книги (ou=contact,dc=winitpro,dc=ru) и включаем опцию “Enable Browsing”
- Сохраняем все изменения и перезапускаем Outlook
- Открываем Outlook. Запускаем адресную книгу. В качестве источника контактов выбираем адресную книгу с именем dc1.winitpro.ru. И, о чудо, перед вами появится список всех контактов, заведенных вами в Active Directory. Данную адресную книгу можно задать в качестве дефолтной.
Таким образом, мы настроили наш Outlook 2010 на использование общей адресной книги контактов, хранящейся в каталоге AD.
Решал похожую, но несколько отличающуюся задачу.
Про SearchBase не знал, спасибо за информацию, возможно ещё пригодится в каком-нибудь костыле 🙂
Кстати, да! списки контактов Outlook в Sharepoint это тоже интересно
Отлично! очень помогло, все работает как часы!
а прикрутить сертификаты для шифрования почты можно?
Есть AD + exchange + CA(центр сертификации), от двух последних(Exch,CA) хочу избавиться, но иметь хоть какую-то возможность автоматизации получения открытых ключей адресатов пользователями. В адресной книге Exchange хранятся ключи, возможно ли к описанной выше схеме прикрутить еще и открытые ключи?
Крайне странное, я бы даже сказал, немного извращенное у Вас желание создать себе трудности, тем более если все есть и работает 🙂
По моей схеме общей адресной книги с сертификатами особо ничего не придумаешь. Видимо, придется создать в собственной локальной адресной книге контакты, добавить пользователям сертификаты, а затем данную адресную книгу скопировать остальным пользователям… в общем дело муторное…
Хотя, возможно и есть более изящное решение, но я о нем не знаю. Если найдете — поделитесь!
Подскажите пожалуйста, как импортировать в общую адресную книгу большое количество контактов из уже действующей адресной книги MS Outlook 2003?
mAd_DoGG Достаточно редкая задача, ведь обычно делают перенос наоборот из GAL в адресную книгу Outlook. В вашем случае простого решения я не знаю. Ведь для появления контактов в GAL придется создавать учетные записи или контакты в AD, поэтому как вариант скопировать все нужные контакты вручную в тестовый файл с разделителями, а потом скриптом завести контакты в Active Directory
Подскажите пожалуйста, а возможно ли импортировать в Outlook 2010 адреса пользователей AD?
Можно попробовать выгрузить список всех ящиков в домене AD скриптом , а потом в Outlook 2012 сделать Файл-> Открыть->Импорт-> Импортировать из другой программы или файла и загрузить их в контакты.
Т.е.также как к «Контактам», к «Пользователям» в AD не подключиться?
Oleg Попробуйте настроить все по этой статье, но в качестве LDAP источника адресной книги используйте не ou=contact,dc=winitpro,dc=ru, а целиком весь каталог AD, т.е. просто dc=winitpro,dc=ru
Сделал по инструкции. При открытии Адресной книги пишет: Каталог LDAP — Ошибка операции. DC поднят на Server 2008 R2, нужно ли что то дополнительно установить (службы ролей)?
В пункте 4 данной статьи нужно ввести пользователя с правами доступа к каталогу LDAP
Расим Возможно просто доступа нет…
Спасибо за инструкцию. Только у меня творится непонятное: к контактам LDAP подключился, но не отображает контакты. Хотя при этом поиском находит. Не подскажете куда копать?
То бишь заведены test1, test2, test3. Их ищет, а вот test4 не находит. Значит, подключен правильно. Но почему вот не отображает — вопрос
Vovikus Проверьте стоит ли галка «Enable Browsing». Если стоит, но список не отдает, значит на сервере (контроллере домена) есть ограничение
Чего-то не получилось…
Откуда эта строчка (ou=contact,dc=winitpro,dc=ru)?
ou=contact — это понятно
dc=winitpro — это что?
dc=ru — и это что?
Я так понимаю, если группа у мня Contacts, домен crp.wincorp.kz, то я должен указать:
(ou=Contacts,dc=wincorp,dc=kz)
???
Это идентификатор dn (Distinguished Name) объекта в каталоге LDAP. DC — Domain Component, в данном случае это имя домена, для каждого вложенного домена отдельное DC.
В Вашем случае получится строка: ou=Contacts,dc=crp,dc=wincorp,dc=kz)
Благодарю!
Только вот не выходит почему-то :.(((
Каталог Microsoft LDAP — Ошибка операции
Microsoft Outlook — Не удается завершить действие
Может есть логи какие, посмотреть?
На первой вкладке, введите имя и пароль для авторизованного пользователя домена.
Благодарю! Но чего-то не получается…
Каталог Microsoft LDAP — Ошибка операции
Microdoft outlook — не удается завершить действие
FQDN имя это полное имя домена
мне в имени сервера crp.wincorp.kz писать?
Может логи есть какие посмотреть?
Обсуждать конкретные проблемы в рамках комментариев не очень удобно. Зарегистрируйтесь на нашем форуме, заведите новый топик, где со скриншотами опишите что и как настраивали.
Добрый день. Спасибо за инструкцию помогла. Но когда создаю новое подразделение в AD и создаю там контакты. outlook мне ничего не показывает (ou=Contacts,dc=****,dc=****) в GPO Надо настраивать что либо?
Добрый день! GPO тут явно не причем… Насколько я понял с другой OU у вас все работает? Проверьте, что у учетной записи (из-под которой выполняется LDAP запрос)есть права на просмотр нового контейнера.
Доброго времени суток! Господа, а не подскажете как сделать чтобы эту адресную книгу можно было править в outlook пользователя (добавлять, удалять контакты)? Заранее спасибо.
Напрямую из Outlook по такой схеме редактировать не получится. Если очень нужно — установите пользователям консоль ADUC и дайте права редактирования на OU с контактами
Добрый день!
Вопрос, собственно, а как подключить поиск по двум и более группам.
Т.е. есть иерархия вида
ou=Наиценнейшие и любимейшие сотрудники
ou=Начальство
ou=Главбухство
ou=Другие дармоеды
ou=Планктон
ou=Тормоза
ou=Веники
ou=Умники
ou=Секьюрити
ou=Рембы
ou=Равшаны
ou=Этоещёчтозабалбесывформе
Ну и т.д.
Кому то в адресной книге нужно видеть адреса только групп тормоза + равшаны + дармоеды, а кому то рембы + умники и тд
Есть идеи как это сделать?
Вы хотите слишком много от такого «наколеночного» решения. 🙂 Вероятно вам стоит задуматься о внедрении Exchange или аналога…
Есть конечно вариант с назначеим разрешений на различные контакты в OU с контактами Active Directory. Но это слишком уж неудобно и трудоемко
Эхх, жаль. Ну да ладно. Спасибо.
Спасибо очень помогло. СПАСИБО!
А есть скриптик какой-то для автоматизации процесса?? Что бы не ручками у каждого пользователя настраивать.
Путем небольшой модификации скрипта от Scripting Guy в статье «How Can I Modify the Email Addresses of All the Users in an OU and Its SubOUs?» получаем такой скрипт, который для всех пользователей в определенной OU задает поле email в формате username @ winitpro.ru:
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject(«ADODB.Connection»)
Set objCommand = CreateObject(«ADODB.Command»)
objConnection.Provider = «ADsDSOObject»
objConnection.Open «Active Directory Provider»
Set objCommand.ActiveConnection = objConnection
objCommand.Properties(«Page Size») = 1000
objCommand.Properties(«Searchscope») = ADS_SCOPE_SUBTREE
objCommand.CommandText = «SELECT AdsPath FROM ‘LDAP://OU=Admins,DC=corp,DC=winitpro,DC=ru’ WHERE objectCategory=’user'»
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Set objUser = GetObject(objRecordSet.Fields(«AdsPath»).Value)
objUser.Mail = objUser.sAMAccountName & «@winitpro.ru»
objUser.SetInfo
objRecordSet.MoveNext
Loop
Спасибо.
А можно ли сделать так:
Когда пишешь в поле кому,там отображается список уже набранных адресов….Как сделать так чтобы он искал так же и в адресной книге…
А то нажимать на адресную книгу,потом там искать….это все долго
К сожалению, я такого способа не знаю — приходится пользоваться кнопкой Проверить имена на панели инструментов сообщения.
Если найдете решение — поделитесь
«Из коробки» — никак. При наборе адреса подставляются адреса из файла outlook.nk2(история адресов, имя файла может быть иное, ищите в профиле пользователя по расширению). У NirSoft есть freeware утилита «Outlook nk2 edit», которая позволяет редактировать(чистить/пополнять) данный файл. Одна из возможностей — пополнение списка из адресной книги аутлук, в качестве источника можно задействовать и адресную книгу ldap(предварительно настроенную в профиле Outlook), открывается книга LDAP, выделяете всех, жмёте «кому», ОК и все адреса в NK2(сохранить не забудьте). Естественно, все манипуляции над NK2 при закрытом Outlook.
Думаю вариант имеет право на жизнь, при умеренном числе юзеров :). Если пользователей много, проще сделать инструкцию для них, оставив себе обход только самых безнадёжных(у меня использование NK2Edit даже в бухгелтерии осилили :)).
В принципе, можно с помощью GPO настроить автоматическую замену файла с историей адресатов при входе пользователя в систему. В этом случае список автонабора у всех будет одинаковый (конечно, если пользователи не будут жаловаться, что в историю не попадают личные адреса).
Скорее всего будут жаловаться. В LDAP общая книга контактов, а у большинства пользователей есть и свои контрагенты.
Но у NK2 Edit есть ключи запуска из командной строки, например такой:
/import_full_nk2 <NK2 Filename>
Imports all records of the specified nk2 file into the AutoComplete file of the default Outlook profile. Be aware that this action overwrites all the existing AutoComplete records with the records of the specified nk2 file.
Правда наткнулся на такую информацию(http://support.microsoft.com/kb/980542): When you start Microsoft Outlook 2010 for the first time, your nickname cache (stored in the Имя_профиля.nk2 file) is imported into a hidden message in your default message store.
В качестве фикса в статье прилагается мастер импорта данных из NK2. Похоже с 2010-м аутлуком могут быть нюансы 🙂
Альтернативный вариант — искать информацию о работе с этим скрытым сообщением из VBA, и пилить макрос для импорта из LDAP.
P.S. Проверить не могу, сижу на 2003-м офисе.
Пользователи обязательно будут жаловаться, помимо общих контактов у каждого наверняка есть собственные контрагенты. Хотя ситуации могут быть разные — для закрытого предприятия без внешних связей вариант приемлемый.
У NK2Edit есть ключи запуска, например, такой: /import_full_nk2 <NK2 Filename>
Кстати, судя по support.microsoft.com/kb/980542, начиная с 2010-го аутлука поменялось место хранения кэша автодополнения — теперь они хранятся в базе в скрытом сообщении, а чтение NK2 происходит только при первом запуске. В статье прилагается «фикс» — мастер импорта из файла NK2(не проверял, у меня 2003-ий офис). Но сомневаюсь что там есть ключи для автоматизации процесса. Так что остаётся ручной импорт, или курение MSDN на тему нахождения и взаимодействия с этим скрытым сообщением программно.
P.S. первая портянка из IE11 не ушла, по кнопке назад текст не сохранился…
Доброго дня.
У нас несколько нестандартная структура AD — ФИО контакта пишутся в поле «Описание». И по этому полю Outlook (как, подозреваю, и любой другой клиент) не ищет. Это можно поправить каким-нибудь способом, или только структуру учётки менять?
Наверно проще всего будет написать скрипт и массово обновить поля во всех учетных записей AD, тогда точно не придется прыгать по граблям
А можно сделать доступ к этой папке без указания логина и пароля? А то если не у казать логин и пароль ошибку выдает.
Точнее как писали люди вот такую ерунду пишет.
Каталог Microsoft LDAP – Ошибка операции
Microdoft outlook – не удается завершить действие
Так как если поставить галочку что нужна авторизация на сервере и ввести логин с паролем, то все прекрасно работает. Соответственно без этой галочки выдает ошибку, а хотелось бы чтобы без авторизации можно было получить контакты.
Все правильно у вас запрещен неавторизоанный доступ к серверу LDAP (домен контроллеру).
Если очень хочется, чтобы чтобы содержимое каталога LDAP отдавалось всем без авторизации — нужно настроить соответствующие права на AD и OU (сами понимаете, это несекьюрно)
Как вариант — MS ADAM на 2003-м сервере/XP или MS LDS на сервере 2008+,ну или Apache DS(OpenLDAP как вариант, но порты под Win стрёмные). То есть поднять отдельный LDAP каталог под адресную книгу, данные из AD-а можно туда перекидывать скриптами или штатными утилитами. По ADAM на сайте МС есть пара весьма приличных инструкций — установка-настройка-синхронизация с AD и интеграция в приложение(downloads.microsot.com, спросить ADAM).
Если LDAP внутри сети, то полагаю можно настроить и анонимный доступ.
Сам как раз подумываю над организацией общей адресной книги. В целом с ADAM получается, хотя всплыл странный глюк при подключении 2003-го аутлука — в списке атрибуты отображаются, а по даблклику(добавлению в контакты) — пустая форма :). Уже и права доступа на каталог админские пробовал, не помогает(схема реплицирована с контроллера AD). Надо будет апачесвкий лдап ещё протестировать…
Идея с отдельным LDAP каталогом нелохая. Если каталога нет, а общие контакты нужны позарез — вполне себе можно реализовать!
Сделал всё по инструкции, тоже «Ошибка операции», затем добавил пользователя для авторизации и появилась уже другая ошибка «Каталог Microsoft LDAP — Требуется убедительное доказательство подлинности (8)».
Отвечу себе сам. В политиках домена стояла настройка требовать подпись LDAP, убрал эту настройку и всё заработало.
Еще один альтернативный метод http://alex-golubev85.livejournal.com/2337.html
Вот ещё одно применение LDAP-справочника. Сам делал. Назвал я его «Автономный телефонный справочник«
Можно ли распространить настройки адресной книги через gpo
Не уверен что есть готовая политика. Попробуйте скачать и установить admx файлы с шаблонами для вашей версии Office.
Наверно, проще проверить, не сохраняются ли эти настройки на клиенте в реестре. Если да — распространить их через GPO не проблема.
а как создать группу? При создании группы с контактами на ADгруппа не передаётся в outlook…
Добрый день, спасибо за инструкцию. Все контакты отображаются нормально, проблем с портами не было. Только вопрос как сделать что бы на внешние аппараты видели LDAP? Не пробовали Вы настройку общей адресной книги путем MIcrosoft Azure?
В теории можно данные и из Azure брать. Это такая-же база LDAP, нужно только изучить формат обращения к вашему тенанту и разрешить доступ на сетевом уровне в Azure.
Отличный метод, спасибо
Кто-то бы еще подсказал как создать кучу контактов из csv без Exchange в схеме AD
перепробовал кучу скриптов и свой наваял, но чертов командлет new-adobject имеет ограниченное количество параметров, куда не входит поле mail
при этом через gui можно сделать, а вот ps — нет
Контроллер домена, Windows Server 2008 R2 — dc2
есть почтовые клиенты, на разных ОС, и разные версии Outlook
Настроена адресная книга через LDAP на этот сервер,
книга перестала быть доступной с ошибкой в приложении — каталог microsoft ldap недоступное критическое расширение
перезагрузка сервера помогает примерно на полчаса-час, потом опять такая же ошибка.
До этого все работало без проблем, обновления никакие не ставились.
Подскажите пожалуйста
Куда можно копать
А получится ли организовать группы рассылок таким образом?
Добрый день! Как по вашей схеме создать допустим один контакт в AD и чтобы была возможность запихнуть в этот контакт все учетки пользователей? Если есть другое решение подскажите пожалуйста. Нужно чтобы была возможность одним кликом выбрать все учетные записи
Особых идей нет, не сталкивался с такой задачей.
как вариант сделать где-то на внешнем сервисе группу рассылки и руками добавить в нее всех пользовтелей. В ad контакте указать имя внешнего ящика с группой рассылки.
Всем привет!
У меня настроено почти также, только не через контакты. В ou Я указал подразделение, а там уже пользователи. И ещё указан логин и пароль для авторизации на сервере DC.
Но адресная книга открывается секунд по 20 в некоторых случаях ещё дольше. С чем это может быть связано? Не ужели из-за того, что не через контакты, а через пользователей всё настроено.
DC — Win Server 2012 R2
Outlook 2016, 2019 и 2021 использую.
Ещё подразделение указано русскими буквами, это влияет как-то на скорость?
Буду благодарен за любые мысли.
Большой каталог (количество объектов), похоже что просто долго список формируется при открытии, т.к. при каждом доступе по сути формируется и получается целиком весь LDAP каталог.
Насчет русских OU — не знаю, попробуйте сделать на eng название и сравнить
Попробовал настроить один в один как Вы описываете в статье, адресная книга по прежнему долго открывается. А на DC нужно при этом поднимать сервер LDAP?
Он уже запущен. AD по сути это и есть реализация LDAP.
Так сколько объектов в вашем AD? v
Если мы говорим только про пользователей, которые в конкретном подразделении и которые должны отображаться в адресной книге, то 161.