troca de lista de endereços inclui todos os usuários do AD

1

Atualmente, temos a configuração do Exchange 2010 como um teste por trás de nossos servidores Domino. Todos os nossos usuários estão no Active Directory e têm o atributo de e-mail do AD configurado para seu endereço de e-mail. Gostaria de saber se existe uma maneira de incluir todos os usuários do AD no catálogo de endereços, mesmo que eles não tenham uma conta do Exchange. Eu li este post:

Endereço não-Exchange no Exchange GAL

sobre a criação de contatos separados para os usuários, mas eu gostaria de usar os usuários atuais do AD, em vez de manter uma lista separada de usuários. Alguma idéia?

    
por user200627 26.11.2013 / 18:02

1 resposta

0

a única solução que encontrei é usando o método mailContact. Isso é um incômodo porque você tem duas listas, os usuários do AD e os novos contatos. Não há necessidade de exportar o catálogo de endereços do Domino, pois todos os usuários já estão no AD e possuem o atributo mail configurado. Então, o que eu fiz foi criar um script PowerShell que lê o AD e cria um novo contato para cada usuário do AD. Ele removerá os contatos existentes antes de adicionar o novo para manter a lista atualizada. Eu vou executar isso em um cronograma. Não é a melhor maneira, mas parece ser a única maneira de fazer isso.

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

    }

}
    
por 27.11.2013 / 20:35