我们目前已在 Domino 服务器后面设置了 Exchange 2010 作为测试。我们所有的用户都在 Active Directory 中,并将 AD 邮件属性设置为他们的电子邮件地址。我想知道是否有办法将所有 AD 用户都包含在地址簿中,即使他们没有 Exchange 帐户。我读过这篇文章:
关于为用户创建单独的联系人,但我想使用当前 AD 用户,而不是保留单独的用户列表。有什么想法吗?
答案1
我发现的唯一解决方案是使用 mailContact 方法。这很麻烦,因为您有两个列表,AD 用户和新联系人。无需导出 Domino 地址簿,因为所有用户都已在 AD 中并设置了邮件属性。所以我所做的就是创建一个 powershell 脚本,该脚本读取 AD 并为每个 AD 用户创建一个新联系人。它将在添加新联系人之前删除现有联系人以保持列表最新。我将按计划运行它。这不是最好的方法,但似乎是唯一的方法。
#
# list all email addresses in active directory and create mail contacts
#
# Created By Thomas Wheeler
# [email protected]
#
$WarningPreference = "SilentlyContinue"
$VerbosePreference = "SilentlyContinue"
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
$strFilter = "(&(objectCategory=User) )"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "name", "mail"
foreach ($i in $colPropList){
$objSearcher.PropertiesToLoad.Add($i)
}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults){
$objItem = $objResult.Properties;
if($objItem.mail -ne $null ){
#Write-Host $objItem.name " (" $objItem.mail " )" $objItem.sAMAccountType
$name = $objItem.name | Out-String
$email = $objItem.mail | Out-String
Remove-MailContact -Identity $name.trim() -Confirm:$false
New-MailContact -Name:$name.trim() -ExternalEmailAddress $email.trim()
}
}