我们正在查询大量(数十个)LDAP 服务器(主要是 Active Directory,但不完全是)以确定哪些邮箱处于活动状态,以用于邮件网关/转发应用程序。
我们遇到过一些情况,其中 userAccountControl 的位 2 设置为 true(又名 ACCOUNTDISABLE),但邮箱仍然处于活动状态。
我认为这对应于一个已被禁用但邮箱仍然处于活动状态的 Windows 登录帐户。
这真的有意义吗?还是这只是一个损坏的配置?
如果确实有意义,是否有任何方法可以通过 LDAP 可靠地检测此配置(即 userAccountControl 被禁用,但邮箱是不是是否已禁用?
我们目前忽略了 userAccountControl 禁用属性,因为它似乎有时(尽管是少数情况)对应于活动邮箱。我们希望可靠地检测这种情况,而不是让这数百个“禁用”邮箱保持活动状态。
答案1
- 这是正常行为。UserAccountControl 仅指目录中的用户。
- Exchange 添加了许多属性,您可以使用这些属性确定 LDAP 用户是否有邮箱。
我认为这msExchMailboxGuid
是最好的,因为每个活动邮箱都必须有一个邮箱,并且 Exchange 会在邮箱被禁用时删除该值(在具有最新更新的 Exchange 2010 上进行了测试)。
至于与 LDAP 目录集成的其他邮件服务器,我无法判断,因为我从未使用过。
答案2
Exchange 邮箱实际上有两种禁用状态。
许多人认为“禁用”发生在运行 Disable-Mailbox cmdlet 时。这实际上会从帐户中删除大多数 Exchange 属性,并断开邮箱连接。
但是有一个 AD 属性 msExchUserAccountControl。如果将其设置为 2,则邮箱被禁用。启用/禁用状态通常与 userAccountControl 相同,并由 Exchange 控制。
如果 msExchUserAccountControl 存在且为 0,则该邮箱在技术上已启用。