Назад | Перейти на главную страницу

Использование Powershell для создания контактов Exchange из файла .CSV

Я хотел бы использовать сценарий Powershell для создания контактов в определенной папке в Active Directory из файла .csv. Этот сценарий должен позволить мне создать первую часть адреса электронной почты на основе информации, введенной в файл .csv.

Мы все еще работаем на нашем сервере обмена на Windows Server 2003, и на моем компьютере установлен Powershell 3.0.

Это сценарий, который близок к тому, что я хочу, но не совсем.

$csv = Import-Csv �C:\Contacts.csv� 
foreach($line in $csv) 
{ 
New-MailContact -Name $line.DisplayName -ExternalEmailAddress $line.EmailAddress -OrganizationalUnit �Contacts� -Alias $line.Alias 
} 

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

Редактировать:

В соответствии с просьбой, вот пример одной строки в моих заголовках .csv plus

Имя, Электронная почта

ГРУЗОВИК 327,9426645555

РЕДАКТИРОВАТЬ: grr ... Я забыл Exchange 2003 ... нижеприведенное работает только на Exchange 2007 и выше.

Для Exchange 2003 вам нужно использовать csvde: http://support.microsoft.com/kb/327620

Пример того, как отформатировать файл csv и команду csvde, можно найти здесь: http://forums.msexchange.org/m_1800509533/printable.htm

ЦИТАТА:

objectClass, DN, displayName, proxyAddresses, targetAddress, mail, mailNickname, givenName, sn, showInAddressBook

objectClass = Класс объекта, который вы создаете (в вашем случае «контакт») DN = Отличительное имя объекта displayName = Отображаемое имя объекта proxyAddresses = type: прокси-адрес контактного объекта (например, SMTP: user @ domain .com) targetAddress = type: целевой адрес контактного объекта (например, SMTP: user@domain.com) mail = Mail (который вы можете увидеть в общей вкладке контактного объекта) mailNickname = псевдоним имя контактного объекта givenName = First Name sn = Last Name showInAddressBook = для включения контакта в глобальном списке адресов (даже если мы не указали это значение, контакт будет отображаться в глобальном списке адресов по умолчанию)

Если хотите, я пришлю вам образец CSV-файла.

Возможно, вам придется изучить советы и рекомендации Excel, чтобы создать файл CSV из введенных данных.

После создания файла CSV вы можете использовать следующую команду для импорта объектов контактов.

CSVDE -i -f Например: CSVDE -i -f c: \ test.csv

-i = для указания режима импорта

-f = Для указания входного файла

Другой альтернативой является сторонняя утилита, такая как AD Bulk Contacts: http://www.dovestones.com/active-directory-contact-import/


Хорошо, вот что я бы сделал (если бы это был Exchange 2007+ lol)

Настройка файла csv

Сначала откройте файл CSV в Excel. Вам необходимо улучшить ваш CSV-файл для ввода в "скрипт" PS.

  1. + Изменить Name к DisplayName
  2. Скопируйте это DisplayName Column to a new column calledTempName`
  3. + Изменить Email к prefix
  4. Создайте новый столбец под названием FirstName
  5. Создайте новый столбец с названием LastName
  6. Создайте новый столбец с названием Email

Получение FirstName и LastName столбец заполнен:

  1. Выделите все данные в TempName и выберите Data затем Text to Columns и разделить на основе пространство имя и фамилия

  2. Теперь скопируйте имя и фамилию в соответствующие им новые столбцы, которые вы создали в # 4-5.

Получение Email столбец заполнен:

  1. В столбце электронной почты перейдите в пустую ячейку рядом с первой строкой данных. т.е. должен быть 9426645555 в prefix столбец в той же строке где-то слева, скажем, что данные находятся, например, в B3. Здесь вы создадите формулу для объединения префикса электронной почты с доменом. Что-то вроде =CONCATENATE(A2,"@domain.com") затем скопируйте и вставьте это в столбец, чтобы получить правильные адреса электронной почты.

Теперь у вас должны быть строки с DisplayName, FirstName, LastName, и Email с действительной информацией для одного пользователя. Не беспокойтесь о посторонних столбцах ... мы не будем использовать их во входных данных.

Сохраните файл сейчас как файл CSV, а затем убедитесь, что файл CSV выглядит правильным для ввода.

Переходим к сценарию Powershell:

$csv = Import-Csv C:\Contacts.csv 
foreach($line in $csv) 
{ 
New-MailContact -Name $line.DisplayName -FirstName $line.FirstName -LastName $line.LastName -ExternalEmailAddress $line.Email -OrganizationalUnit Contacts -Alias $line.Alias
} 

Это должно, по крайней мере, указать вам направление, в котором вы попадете. Если вы застряли, дайте мне знать.