通过电话号码从 Exchange Server 查询 GAL 联系人

Posted

技术标签:

【中文标题】通过电话号码从 Exchange Server 查询 GAL 联系人【英文标题】:Query GAL contacts from Exchange Server by phone number 【发布时间】:2018-03-05 13:58:31 【问题描述】:

我想从交换服务器中获取与特定电话号码匹配的用户。我特别希望 GAL(全局地址列表)中的用户不是来自用户的个人电话簿。我尝试了几种方法,但都无济于事。

首先我用过

service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true)

如此处所述:Get all contacts from exchange server,但我无法按电话号码过滤此列表,并且该列表仅限于 100 个联系人。

那我用过:

ContactsFolder.Bind(service, WellKnownFolderName.Contacts);

如此处所述:How to retrieve all contacts from Microsoft Exchange using EWS Managed API? 和此处:How do I get address lists (NOT global) using Exchange WebServices in C#。这只会从个人电话簿中检索联系人。

最后,我按照此处所述进行了 SOAP 调用:How to get all users form Exchange with EWS,但这会返回所有没有电话的联系人 - 我必须通过 id 再次查询每个人以获取电话详细信息。最大的问题是我需要知道 EWS 无法检索到的 GAL 的 GUID。

是否可以通过电话号码过滤 GAL?有没有其他方法可以做到这一点?

我的项目是在 Visual Studio 2017 中用 C# .Net 编写的。我已经部署了一个测试 Exchange Server 2017(如果需要,我可以提供更多详细信息和访问权限)

【问题讨论】:

【参考方案1】:

Exchange 不允许您通过电话号码查询 GAL。我的建议是您忘记使用 EWS 并直接查询目录,例如 GAL 中的任何内容都只是用户或联系人对象的 Active Directory 属性,因此您可以使用 LDAP 直接查询目录,或者如果您使用 Office365,您可以使用Graph API 做同样的事情。

【讨论】:

以上是关于通过电话号码从 Exchange Server 查询 GAL 联系人的主要内容,如果未能解决你的问题,请参考以下文章

Exchange server 2016 无人值守安装

Exchange Server 2016管理系列课件39.新建本地移动请求

Exchange Server 2016运维篇三:恢复删除的邮箱

Exchange 2016 通配符证书默认无法分配POP3服务

Exchange Server 2016管理系列课件51.DAG管理之删除数据库副本

如何从 Exchange Server 2007 中提取公共日历数据?