Importar arquivo CSV para o Exchange Mail Contacts usando o powershell sem duplicatas

3

O problema: Um bom número de informações das pessoas foi adicionado à minha lista "Contato de email" no Console de Gerenciamento do Exchange, mas não em todas.

Resumo: Estou tentando adicionar uma lista de várias centenas de pessoas de um arquivo .csv do Excel ao meu Console de Gerenciamento do Exchange (contatos de email mais especificamente). Vários contatos já podem estar na lista de contatos, o que pode ter feito com que minha declaração foreach parasse de ser executada?

Minha pergunta: Existe algum código que eu possa rodar para checar se os membros existem? Se não, adicione o membro?

Eu executei este código no powershell neste formato:

Import-Csv .\computech.csv | foreach { New-MailContact -Name $_.displayname -FirstName $_.firstname -LastName $_.lastname -ExternalEmailAddress $_.mail -OrganizationalUnit $_.OrganizationalUnit}

Por incrível que pareça, foi adicionado um bom número de pessoas da lista, mas não todas. Quando tento executar o código agora recebo este erro:

Import-Csv : The member "Aaron" is already present.

"Aaron" é o primeiro membro da lista e a execução pára imediatamente

Eu já havia tentado isso usando este código:

[PS] C:\Windows\system32>Import-Csv \FILLER\MailboxBackups\contacts.csv | foreach-object{if (Get-MailContact -External
EmailAddress $_.ExternalEmailAddress){write-host $_.ExternalEmailAddress 'is a duplicate entry!!!!'} else {New-MailConta
ct -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}}

Mas eu recebi o mesmo "Aaron" já está presente erro lol. Qualquer ajuda seria muito apreciada

-------- ATUALIZAÇÃO ------------ Descobri que nem todos os contatos foram adicionados devido a conflitos de alias. Os aliases eram nomes comuns como "bob", que com certeza já existem. As pessoas normalmente usam números para contornar isso, ou usam um endereço de e-mail de usuários em vez de nomes simples?

    
por Mike Kellogg 14.02.2013 / 18:32

2 respostas

1

O artigo Importando contatos de troca de email usando o powershell sugere este código:

Import-Csv .\ExternalContacts.csv|
    foreach-object{if (Get-MailContact -anr $_.name) {write-host $_.name 'is a duplicate entry!!!'}     
    else {New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}
    }
    
por 19.02.2013 / 08:01
0

Para responder a sua atualização, algumas organizações farão o primeiro nome inicial (mmoore no meu caso), e se isso for feito, anexe um número ou use o primeiro nome inicial inicial do meio, mas uma transformação disso é comum prática.

Assim, ao importar, você pode adicionar uma condição para verificar o alias que está prestes a ser inserido e, se existir, transformá-lo até que um único seja gerado. Eu poderia adicionar código se você quiser, mas eu acho que você sabe onde eu estou chegando.

Atualizar

Eu devo adicionar isso geralmente é feito com nomes de usuário do AD normalmente, então você também pode tentar atribuir seu nome de usuário AD como seu alias, se você implementar o AD.

    
por 21.02.2013 / 17:38