Precisa criar vários e-mails com nomes de domínio diferentes - PowerShell

1

Estou sendo encarregado de criar um script que consulte o AD para obter informações específicas e, em seguida, crie um endereço de e-mail apropriado com base nessas informações. Por favor, permita-me dar-lhe um resumo.

Minha empresa tem cinco domínios de email que temos. Todos os 5 são permitidos através do Exchange, mas só usamos um agora. Atualmente, todos são configurados com o endereço de e-mail padrão do company.com. Temos várias marcas diferentes que gostaríamos de segmentar nossos usuários em um esforço para aumentar a capacidade de entrega de e-mail para ajudar a manter nosso e-mail corporativo não afetado pela reputação de IP quando o marketing decide liberar e-mails em massa.

Eu gerencio um DAG do Exchange 2010 de 7 servidores (3 de produção, 3 DR, 1 3 dias de atraso). Eu sou bastante decente no PowerShell e muito bom em encontrar as peças de código que eu preciso, então eu não estou procurando por um script inteiro, mas estou tendo problemas com essas peças certas.

O que a empresa deseja fazer é ter um script que leia um atributo no AD e, em seguida, com base nesse atributo, atribua-o à marca correta. Então, por exemplo. Se o usuário do AD tiver o atributo "Marketing", ele receberá o endereço de e-mail marketing.com como seu endereço de resposta principal e, ao mesmo tempo, manterá o endereço de e-mail da empresa.com como secundário. Se um usuário do AD tiver "produtos de construção" como seu atributo, o building.com será seu endereço de e-mail de resposta, etc.

Eu posso obter o PowerShell para pesquisar o AD de um atributo. Eu posso conseguir criar um email. Estou tendo problemas para descobrir como fazer isso para selecionar um dos outros nomes de domínio e não o endereço de e-mail padrão do company.com.

Qualquer ideia seria muito apreciada.

    
por Dave H. 07.04.2015 / 16:31

1 resposta

1

Isso não foi testado, mas deve levá-lo na direção certa.

$peeps = get-aduser -filter * -properties department
for-each ($person in $peeps){

##Checks Department and sets new email

if ($person.department -eq "building"){$email = $person.firstname+'.'+$person.surname +'@buildings.com'}
elseif ($person.department -eq "otheroption"){$email = $person.firstname+'.'+$person.surname +'@whatever.com'}

##Changes existing email addresses to aliases and sets new email from above as primary

$person.user = $user
$smtp=get-aduser $user.samaccountname -properties proxyaddresses |select-object proxyaddresses
    $newsmtp = @()
    foreach($addr in $smtp.proxyaddresses){
        if ($addr -notmatch $email -and $addr -cmatch "SMTP"){
            $newsmtp = $newsmtp + $addr.replace("SMTP","smtp") 
            }
        elseif ($addr -notmatch $email -and $addr -cnotmatch "SMTP"){$newsmtp = $newsmtp + $addr}
        } 
    $emailproxy = 'SMTP:'+$email
    $newsmtp = $newsmtp + $emailproxy
    set-aduser $user.samaccountname -replace @{proxyaddresses=@($newsmtp)}

}
    
por 07.04.2015 / 16:53