Назад | Перейти на главную страницу

адресная книга обмена включает всех пользователей AD

В настоящее время у нас есть установка Exchange 2010 в качестве теста для наших серверов домино. Все наши пользователи находятся в Active Directory, и для их адреса электронной почты установлен атрибут почты AD. Я хотел бы знать, есть ли способ включить всех пользователей AD в адресную книгу, даже если у них нет учетной записи Exchange. Я прочитал этот пост:

Адрес без обмена в Exchange GAL

о создании отдельных контактов для пользователей, но я хотел бы использовать текущих пользователей AD, а не вести отдельный список пользователей. Любые идеи?

единственное решение, которое я нашел, - это использование метода mailContact. Это затруднительно, потому что у вас есть два списка: пользователи AD и новые контакты. Нет необходимости экспортировать адресную книгу Domino, поскольку все пользователи уже находятся в AD и имеют установленный атрибут mail. Итак, я создал сценарий PowerShell, который читает AD и создает новый контакт для каждого пользователя AD. Он удалит существующие контакты перед добавлением новых, чтобы поддерживать список в актуальном состоянии. Я собираюсь запустить это по расписанию. Это не лучший способ, но, кажется, единственный способ сделать это.

#
# list all email addresses in active directory and create mail contacts
#
# Created By Thomas Wheeler
# wheelert@wheelerwire.com
#

$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()

    }

}