Active Directory:如何确定用户的所有可能的电子邮件地址?

我是一个开发人员,对Active Directory知之甚less,正在开发一个需要将用户与AD同步的系统。 我最初从客户端(例如[email protected] …)获得用户的电子邮件地址列表,并且需要将给定的地址与我从AD获取的地址相匹配,这些地址可能有不同的后缀(例如bob @ comp-global.com)。

为了做到这一点,我想确定所有不同的后缀是有效的在公司的用户的电子邮件地址..但我是如何做到这一点的损失。 我假设这些后缀是用户所属的域,还是由公司设置的任何UPN? 或者后缀可以是任意的? 用户可以属于不同的域名,还是仅限于一个?

基本上,我真的很想知道如何查询广告,以找出什么是可能的有效的别名为[email protected] ..任何想法或信息,帮助我实现这将不胜感激…

谢谢

如果您能够使用LDAP实用程序与AD交谈,那么给出一个电子邮件列表应该很容易。 我使用类似的命令来build立我们愿意接受交付的每个电子邮件地址的列表,以便将其推送到我们的Postfix邮件网关。 如果你为爱国者工作,只知道汤姆·布雷迪的电子邮件地址'[email protected]',这将让你所有的其他地址(SMTP中的大写字母是Exchange中的默认回复地址)。 ldapsearch命令是行包装的:

—- 8 <—-

ldapsearch -h corp.patriots.com -x -D [email protected] -w'AGoodPassword'\

-b'dc = corp,dc = patriots,dc = com''proxyAddresses = smtp:[email protected]'proxyAddresses

#汤姆布雷迪,UserAccounts,帐户,corp.patriots.com

dn:CN = Tom Brady,OU =玩家,OU =账号,DC = corp,DC =爱国者,DC = com

proxyAddresses:smtp:[email protected]

proxyAddresses:SMTP:[email protected]

proxyAddresses:smtp:[email protected]

proxyAddresses:smtp:[email protected]

proxyAddresses:smtp:[email protected]

proxyAddresses:smtp:[email protected]

—- 8 <—-

大多数命令只是ldap连接的configuration,允许它通过只指定域名作为主机来连接到任何域控制器。 -x是做简单authentication而不是SASL,然后我给UPN和一个专门创build为Domain Guest的帐户的密码,仅仅是为了运行一些不同的小脚本。 -b选项告诉它在哪里开始search,所以你可以缩小它到一个特定的OU或者什么,虽然在这里我只是search整个目录。

毕竟,你得到了你真正感兴趣的位,首先是一个“proxyAddresses = smtp:[email protected]”的searchfilter,因为你知道他的电子邮件,然后你想要的属性背部。 在这里,我只想要proxyAddresses,但是你可以请求telphoneNumber,streetAddress,state,或者你在AD中填充的任何东西(或者你可以通过完全closures属性来获取AD知道的一切…然后你可以使用来自完整search的输出并选取任何其他属性用作searchfilter)。

对于这个长度的限制,并不意味着漫不经心,但是我不知道你有多less对你来说是熟悉的。