Назад | Перейти на главную страницу

программно добавлять контакты в адресную книгу Exchange-сервера

У меня запущен сервер Exchange 2010, и я хочу программно добавить контакты на сервер. Как добиться этого?

Лучше всего это сделать на Java, но VB6 тоже подойдет.

Когда вы говорите «добавить контакты на сервер», что именно вы имеете в виду?

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

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

Если вы выберете первый маршрут и вам нужно добавить большое количество контактов, вы можете получить очень большой и сложный в использовании глобальный список адресов (GAL), а также неприятную перспективу отправки электронных писем, предназначенных только для внутреннего использования. для внешних людей, которые находятся в вашем списке контактов. Это можно предотвратить, создав более одного представления глобального списка адресов - одно, которое включает в себя контакты, и другое, которое включает только учетные записи Windows (также называемые «полными» пользователями обмена).

Вы можете использовать командную консоль Exchange для управления глобальным списком адресов следующим образом (пример из форумы технет)

Get-GlobalAddressList "Default Global Address List" |FL *Filter

вы увидите такой фильтр:

{(Псевдоним -ne $ null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'контакт' -или ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -или ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}

Я выделил, где фильтр глобального списка адресов по умолчанию также включает объекты контактов из-за условия ObjectClass -eq 'контакт'.

Итак, если вы хотите, чтобы ваш глобальный список адресов по умолчанию исключал эти объекты контактов, вам придется сбросить фильтр получателей вашего глобального списка адресов следующим образом:

Set-GlobalAddressList «Глобальный список адресов по умолчанию» -RecipientFilter {(Псевдоним -ne $ null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group '-или ObjectClass -eq' publicFolder '))}

а затем вы можете создать другой глобальный список адресов для контактов, подобных этому:

New-GlobalAddressList "Глобальный список адресов контактов" -RecipientFilter {(Alias ​​-ne $ null -and ObjectClass -eq 'Contact')}

Пока я работаю в колледже, мы экспериментировали с примерами, аналогичными приведенным выше, чтобы контролировать, что студенты могут и не могут видеть в глобальном списке адресов, поэтому я знаю, что принципы работают, вам просто нужно возиться и тестировать фильтры, пока вы получаете результат, которым вы довольны. Мы используем Exchange 2007, но для подобных вещей не должно быть существенных различий.