如何使用 Applescript 或 Perl 查询 Exchange 全局地址列表?

How can I query the Exchange Global Addresslist with Applescript or Perl?

我想从 Exchange 的全球地址列表中提取一些地址,但完全不知道从哪里开始。

我正在使用 Mac,所以我的想法是使用 applescript,但我什至不知道如何连接到 GAL。

我也找不到任何例子。这里有人知道如何使用 Applescript 使用 Exchange 的全局地址列表的一些示例吗?或者可能在 Bash 或 Perl 中?

适用于什么版本的 Exchange?除了 FindPeople 需要您拥有全局地址列表的 GUID 之外,EWS 没有提供任何真正好的方法来执行此操作。通常,在 Mac 上使用 LDAP 是一个更好的主意,请查看 ldapsearch,请参阅 https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/,然后使用

之类的查询
(& (mailnickname=*)(objectClass=user)) 

如果您使用 Office365,则使用 Graph API 可以直接访问底层目录。

我遇到的主要问题是为我的案例找到 LDAP 服务器。

我终于找到了如何执行此操作的信息,而且非常简单:

dig -t SRV +short _ldap._tcp.my.do.main

当我有了服务器名称(或多个名称)后,只需进行身份验证和浏览即可找到所需的信息。

    ldapsearch -h "$LDAP_SERVER" -p "$LDAP_PORT" -b "$USER_BASEDN" -D "$LDAP_USER" -w "$PASSWD" "(&(QUERY))"