我的活动目录中有一些没有电子邮件地址的用户帐户,例如管理员用户、服务用户等等。
我在 Exchange 2013 的全局地址列表中找到了它们,我该如何删除它们?我只想留下有电子邮件地址的用户。
这是我用Get-GlobalAddressList
命令检查的当前设置(我认为这是默认设置):
RecipientFilter : ((Alias -ne $null) -and (((((((((((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact'))) -or (ObjectClass -eq 'msExchSystemMailbox'))) -or (ObjectClass -eq 'msExchDynamicDistributionList'))) -or (ObjectClass -eq 'group'))) -or (ObjectClass -eq'publicFolder'))))
LdapRecipientFilter : (&(mailNickname=*)(|(objectClass=user)(objectClass=contact)(objectClass=msExchSystemMailbox)(objectClass=msExchDynamicDistributionList)(objectClass=group)(objectClass=publicFolder)))
LastUpdatedRecipientFilter : ((Alias -ne $null) -and (((((((((((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact'))) -or (ObjectClass -eq 'msExchSystemMailbox'))) -or (ObjectClass -eq 'msExchDynamicDistributionList'))) -or (ObjectClass -eq 'group'))) -or (ObjectClass -eq 'publicFolder'))))
答案1
通常情况下,没有 Exchange 属性的用户不应该出现在 GAL 中(在这里显示它们也没有意义)。因此有多种选择:
1.) 如果用户是 Exchange 用户,您可以简单地将其从 GAL 中隐藏。每个 AD 对象中都有一个选项,您可以通过 Exchange GUI 进行设置(更多信息)这里)。通过这种方式,您可以排除您不希望出现在 GAL 中的用户。
2.) 我发现有些管理员会复制 AD 对象,然后执行一些“黑客”操作以删除他们不需要的属性。如果用户启用了 Exchange 邮件,那么这不是一个好选择,例如以下属性 showInAddressBook、msExchHideFromAddressLists、msExchHomeServerName、msExchUserAccountControl 可能不会被删除,因此可能会导致您遇到的问题,因为系统仍然会发现他们是有效的 Exchange 用户。因此,如果这些帐户是手动复制的,请确保这些帐户没有 Exchange 属性。
3.) 开箱即用的 GAL 过滤器是(取自 Exchange 2016):
(别名 -ne $null -and(ObjectClass -eq'user' -或 ObjectClass -eq'contact' -或 ObjectClass -eq'msExchSystemMailbox' -或 ObjectClass -eq'msExchDynamicDistributionList' -或 ObjectClass -eq'group' -或 ObjectClass -eq'publicFolder'))
这意味着只有拥有 Exchange 邮箱的用户才会被添加到 GAL。然而,在您的环境中,这可能意味着默认 GAL 已被调整,或者您正在使用具有不同设置的额外创建的 GAL。您应该检查此处的过滤器,确保它是正确的,并且排除了不应该在 GAL 中的用户。
答案2
答案3
有同样的问题,这个解决了
Get-GlobalAddressList "Default Global Address List" | Update-GlobalAddressList