Contatos de email do Exchange 2010 recebem endereços SMTP internos atribuídos pela diretiva de destinatário

3

Este ambiente foi atualizado do Exchange 2007 para um novo servidor do Exchange 2010. Existem vários milhares de contatos de email que residem na unidade organizacional Federation_Contacts. Na guia Endereços de email de cada contato de email, o endereço SMTP correto ([email protected], por exemplo) é atribuído como principal. Mas de alguma forma cada um recebeu endereços de e-mail internos em nossa empresa também ([email protected] e [email protected])

Agora, o problema é que os e-mails para esses contatos retornam com # 550 5.1.1 RESOLVER.ADR.ExRecipNotFound; não encontrado

Precisamos excluir os endereços SMTP internos que foram criados incorretamente e desmarcar os endereços de atualização automática com base na configuração de política do destinatário.

Minha pergunta é: 1-Como excluirmos em massa os endereços de email internos desses contatos de email, tomando cuidado para não afetar nossos usuários internos?

2-Como podemos impedir que o Exchange (mais precisamente, a política de destinatários) crie esses endereços internos para novos contatos de email?

    
por Zero Subnet 07.11.2012 / 20:59

4 respostas

2

Eu usei o Powershell para desativar a atualização do endereço de e-mail da política de destinatários:

Get-MailContact -OrganizationalUnit "domain.local/OU" | set-mailcontact -emailaddresspolicyenabled $false

Depois usei o ADModify.net para remover os endereços SMTP secundários atribuídos aos contatos. Funcionou como um encanto.

    
por 12.11.2012 / 15:38
1

Tive o mesmo problema (um pouco atrasado), então peguei seu "script" e o atualizei. Você precisa desativar a diretiva de endereço de email a ser aplicada aos contatos no Exchange e isso resolverá parcialmente o problema.

1) Expandir o Microsoft Exchange no local 2) Expanda Configuração da Organização 3) Selecione Transporte de Hub e vá para a guia Políticas de Endereço de Email 4) Edite cada um deixando Users with external e-mail addresses sem caixa de seleção e Contacts with external e-mail addresses .

Issoresolveráparcialmenteoproblemaporqueapolíticapadrãonãopodeserdesativada,porissoacabeitendoendereçosdeemaildomain.localadicionadosanovoscontatosdequalquermaneira.

Entãoeuescreviumscriptbaseadonaquelefornecidoemquestão(oqueestavaemquestãotinhaalgunsbugsondeváriosendereçosdomesmodomínioforamatribuídoseestavafazendomuitobarulho)queremoveriamquaisquerendereçosdee-mailquenãofossemexternosetambémgarantiráqueoscontatosantigosnãorecebampolíticasreaplicadas.

#####Inputvariables####$domains=@("*@domain.com","*@domain.pl","*@evotec.pl", "*@domain.local")
$ou = "evotec.local"

####
# Removing internal domains from contacts
####
$domains | foreach { 
$domain = $_;
write-host "Preparing for removal of addresses with domain name:" $domain 
$Contacts = Get-MailContact -OrganizationalUnit $ou -Filter {
                EmailAddresses -like $domain -and name -notlike "ExchangeUM*"
            } -ResultSize unlimited -IgnoreDefaultScope
$Contacts | foreach {       
    $contact = $_; 
    $email = $contact.emailaddresses; 
    #write-host "1. " $contact
    #write-host "2. " $contact.name
    #write-host "3. " $email
    #write-host "4. " $contact.identity 
    $email | foreach {
        if ($_.smtpaddress -like $domain) 
            {
                $address = $_.smtpaddress; 
                write-host "[*] Removing address" $address "from Contact" $contact.name; 
                Set-Mailcontact -Identity $contact.identity -EmailAddresses @{Remove=$address}; 

            }

    }
}
}
####
# Setting up email address policy to disabled for all contacts
####
write-host "Preparing all contacts for disabling email address policy"
$Contacts = Get-MailContact -OrganizationalUnit $ou -Filter {
                EmailAddresses -like $domain -and name -notlike "ExchangeUM*"
            } -ResultSize unlimited -IgnoreDefaultScope | Where {$_.EmailAddressPolicyEnabled  -eq $true}
$Contacts | foreach {
    $contact = $_; 
    write-host "[*] Setting up email address policy to disabled for" $contact.name
    $contact | set-mailcontact -emailaddresspolicyenabled $false
    }

A etapa final é configurá-lo como Agendador de Tarefas, pois os novos contatos continuarão recebendo a política padrão não editável (pelo menos no modo compatível). Essa configuração no servidor do Exchange será executada bem. Certifique-se de executá-lo com as permissões corretas.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\ExchangeScript\RemoveLGBSEmailsFromContacts.ps1"

    
por 14.03.2013 / 15:20
0

Primeiro, tente identificar a política que pode ser a que marca esses endereços. Você pode ajustá-lo para ser aplicado apenas a caixas de correio ou contatos ...

... ou crie um novo para apenas contatos.

Para limpar a confusão, o powershell estará disponível para você se precisar fazer alterações em massa.

    
por 08.11.2012 / 09:27
0

Get-MailContact | Set-MailContact -EmailAddressPolicyEnabled: $ false

Isso deve fazer o truque para TODOS os contatos de e-mail!

    
por 10.02.2015 / 22:24