adiciona contatos ao catálogo de endereços do servidor de troca programaticamente

1

Eu tenho um servidor Exchange 2010 em execução e quero adicionar contatos programaticamente ao servidor. Qual é o caminho para conseguir isso?

O melhor a ser feito em Java, mas o VB6 também está bem.

    
por Daniel 04.02.2011 / 09:08

1 resposta

1

Quando você diz "adicionar contatos ao servidor", o que exatamente você quer dizer?

O Exchange não contém contatos em si. Você pode adicionar contatos ao diretório ativo para ficar visível no catálogo de endereços global para todos usuários da troca. Há um código de amostra para fazer isso aqui .

Como alternativa, você pode adicionar contatos aos contatos de um usuário individual no Outlook, o que os tornará disponíveis para esse usuário individual. É possível executar esse script para vários usuários, se você quiser disponibilizar os contatos para mais de uma pessoa. Não testamos este, mas há um código de amostra disponível aqui para você começar.

Se você for com a primeira rota e tiver um grande número de contatos para adicionar, poderá acabar com uma GAL (Global Address List, lista de endereços global) muito grande e difícil de usar, e a perspectiva desagradável de emails destinados a interna use somente enviado para pessoas externas que estão na sua lista de contatos. É possível evitar isso criando mais de uma visualização da GAL - uma que inclui contatos e uma que inclui apenas contas do Windows (também conhecidas como usuários 'completos' de troca).

Você pode usar o Shell de Gerenciamento do Exchange para manipular a GAL da seguinte maneira (exemplo de fóruns de technet )

Get-GlobalAddressList "Default Global Address List" |FL *Filter

você verá um filtro como:

{(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'))}

Eu destaquei onde o filtro padrão da GAL também inclui objetos de contato, devido à condição ObjectClass -eq 'contact' .

Portanto, se você quiser que sua GAL padrão exclua esses objetos de contatos, será necessário redefinir o Filtro de Destinatário da sua GAL da seguinte forma:

Set-GlobalAddressList "Default Global Address List" -RecipientFilter {(Alias -ne $null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}

e, em seguida, você pode criar outra GAL para os contatos semelhantes a este:

New-GlobalAddressList "Contacts Global Address List" -RecipientFilter {(Alias -ne $null -and ObjectClass -eq 'Contact')}

Como eu trabalho em uma faculdade, nós brincamos com exemplos semelhantes aos acima para controlar o que os alunos podem e não podem ver na GAL, então eu sei que os princípios funcionam, você só precisa mexer e testar os filtros até obter um resultado com o qual você esteja feliz. Estamos usando o Exchange 2007, mas para coisas assim não deve haver diferenças significativas.

    
por 04.02.2011 / 09:49