3

Проблема: в мой список "Почтовый контакт" в консоли управления Exchange было добавлено большое количество информации о людях, но не все.

Описание: Я пытаюсь добавить список из нескольких сотен человек из файла Excel .csv в мою консоль управления Exchange (более конкретно, почтовые контакты). Возможно, в списке контактов уже есть несколько контактов, из-за которых мой оператор foreach мог перестать выполняться?

Мой вопрос: есть ли код, который я могу запустить, чтобы проверить, существуют ли участники, а если нет, добавить участника?

Я запустил этот код в powershell в этом формате:

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

Как ни странно, это добавило большое количество людей из списка, но не всех. Когда я пытаюсь запустить код сейчас, я получаю эту ошибку:

Импорт-CSV: член "Аарон" уже присутствует.

"Аарон" является первым участником в списке, поэтому исполнение немедленно останавливается

Я ранее пробовал это с помощью этого кода:

[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}}

Но я получил тот же "Аарон", уже присутствует ошибка LOL. Любая помощь будет принята с благодарностью


-------- ОБНОВЛЕНИЕ ------------ Я обнаружил, что не все контакты были добавлены из-за конфликтов псевдонимов. Псевдонимы были распространенными именами, такими как "боб", которые наверняка уже существуют. Люди обычно используют цифры, чтобы обойти это, или используют электронный адрес пользователя вместо простых имен?

2 ответа2

1

В статье « Импорт почтовых контактов обмена с использованием powershell» предлагается следующий код:

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}
    }
0

Чтобы ответить на ваше обновление, некоторые организации будут использовать первую начальную фамилию (в моем случае mmoore), и, если это так, добавьте число к этому или используйте первое начальное среднее начальное имя, но преобразование этого является обычной практикой.

Таким образом, при импорте вы можете добавить условие для проверки псевдонима, который должен быть вставлен, и, если он существует, преобразовывать его, пока не будет создан уникальный. Я мог бы добавить код, если хотите, но я думаю, вы знаете, к чему я клоню.

Обновить

Я должен добавить, что обычно это делается с именами пользователей AD, поэтому вы также можете попробовать назначить их имя пользователя AD в качестве псевдонима, если вы внедряете AD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .