?

Log in

No account? Create an account

Previous Entry | Next Entry

   Опять понадобилось и НИЧЕГО нет готового Все пишут как забацать контакты с помощью консоли MS Exchange 2007 \ 2010. А вот бывают ситуации - контроллер домена Win2008, а Exchange- 2003. Дурдом, но имеет место быть, что ж делать... И вот требуется создать там  примерно 6000 контактов. Просто контакт создать несложно, но вот атрибуты прописать, те которые требуются Exchange для работы с контактами - задача еще та.
  Итак, требуется создать кучу почтовых контактов средствами powershell v. 2.0.1.1 с использованием модуля работы с AD. Попытаюсь, как обычно, описать самым простейшим языком, понтяным самому неопытному администратору.

1. Создаем файл в MS Excel с именем contacts_list, сохраем в формате CSV по пути С:\CSV, и именуем в файле столбцы вот так:

Name Mail mailNickname Type proxyAddresses targetAddress

в принципе этих параметров хватает для создания полноценного контакта и Exchange его видит, и может с ним работать, в какой бы папке-OU  в вашем AD  он у вас не был бы.
   Какие конкретно поля в свойствах объекта "контакт" отражают эти столбцы?
   Вот разъяснения, типа табличка)))

   Параметр столбца - Название в редакторе атрибутов ADSI (пояснение) - Русскоязычное обозначение на свойствах контакта

   Name - CN (каноническое имя объекта) - Имя
   Mail - Mail (электронная почта) - Эл.почта
   mailNickname - mailNickname (алиас Exchange, псевдоним) - отображается только в редакторе атрибутов
   Type - ObjectClass (класс (тип) объекта) - отображается только в редакторе атрибутов
   proxyAddresses - proxyAddresses (адрес внешней по отношению к домену электропочты в формате SMTP:address@domain.ru) - отображается только в редакторе атрибутов
   targetAddress - targetAddress (адрес внешней по отношению к домену электропочты в формате SMTP:address@domain.ru) - отображается только в редакторе атрибутов
  Заполняем столбцы, например

Name Mail mailNickname Type proxyAddresses targetAddress
Vasiliy Terkin vasil@rambler.ru Partners_Sales_0001 contact SMTP:vasil@rambler.ru SMTP:vasil@rambler.ru


Примечание:
mailNickname должен отображать принадлежность к какой-либо группе рассылки, и лучше, если будет иметь порядковый номер. Встречал глюки, когда все контакты имели одинаковый mailNickname и глюки были неприятные и странные.
proxyAddresses, targetAddress обязаельно должные быть в указанном формате SMTP:adres@domain.ru, иначе Exchange не поймет контакта и будет выдавать ошибку о неверном формате.

2. Создаем файл с create_contact и расширением ps1 и  копируем туда вот такой код:

Import-CSV -Path "C:\CSV\contacts_list.csv" | ForEach-Object -process {New-ADObject -Path "OU=PostContact,DC=domain,DC=corp,DC=local" -Name $_.Name -Type $_.Type -DisplayName $_.Name -OtherAttributes @{'Mail'=$_.mail; 'proxyAddresses'=$_.proxyAddresses; 'targetAddress'=$_.targetAddress; 'mailNickname'=$_.mailNickname}}

Что тут куда? Разберем по кускам:

Import-CSV -Path "C:\CSV\contacts_list.csv" - команда забирает данные из файла расположенного по пути C:\CSV\contacts_list.csv

| ForEach-Object -process { - и передает данные в конвейер обработки, причем каждое значение обрабатывается отдельно в соответствии с именами столбцов

New-ADObject  - сам конвейер представляет собой команду создания в AD объекта (справка в powershell по вызову get-help new-adobject - full)

-Path "OU=PostContact,DC=domain,DC=corp,DC=local" - путь, по которому будет создан почтовый контакт. Посмотреть его можно открыв AD и щелкнув свойства OU (контейнера) и просмотрев путь во вкладе "Объект" и переделав его в соответствии с форматом  в примере. Если этот параметр убрать - контакты создадутся в Users, это путь по умолчанию.


-Name $_.Name -Type $_.Type -DisplayName $_.Name - обязательные параметры (Name и Type) и не очень обязательный -
DisplayName. Их надо создавать понятыми, можно и кириллицей, можно латинскими буквами. Есть ограничение по длине, вроде бы, точно не помню - 64 символа.

-OtherAttributes @{'Mail'=$_.mail; 'proxyAddresses'=$_.proxyAddresses; 'targetAddress'=$_.targetAddress; 'mailNickname'=$_.mailNickname}} - самое важное. Почтовые адреса нельзя передать просто так, как Name и Type. Почтовые адреса это типа otherattributes  - дополнительные атрибуты, но их также можно передать из столбцов файла .CSV. Не забывайте проверить все символы и скобки, в конце должно быть 2 скобки.

3. Сохраняем файлы и проверяем пути -C:\CSV - в файле и в реале)))
4. Открываем powershell на контроллере домена (контроллер не должен быть типа ReadOnly!!!), выполняем последовательно 2 команды:

Set-ExecutionPolicy Unrestricted

import-module activedirectory

5. Выполняем C:\CSV\create_contact.ps1
6. Наблюдаем (не забываем сделать рефреш консоли) в OU PostContact новые почтовые контакты.

Ну и напоследок, несколько советов.
- Если у вас полноценная версия powershell, то вызов из нее powershell_ise откроет очень удобный редактор скриптов с возможностью запуска и прочими удобствами.
- Файлы CSV должны быть в кодировке Unicode, если у вас ANSI - будет ошибка.
- Можно добавить еще массу столбцов и, следовательно, атрибутов, к почтовому контакту. Например, некоторым Exchange может потребоваться такой атрибут контакта, как legacyExchangeDN. Узнать его несложно - создаем руками почтовый контакт в АД, смотрим этот параметр во вкладке "Редактор атрибутов" (если этой вкладки нет - включаем ее в консоли вот так: меню Вид \ Дополнительные компоненты). Соответственно к файлу с данными добавляем столбец legacyExchangeDN, заполняем его отредактированным значением, скопированным из только что созданного контакта, а в скрипте после 'mailNickname'=$_.mailNickname добавляем
'legacyExchangeDN'=$_.legacyExchangeDN. Не забываем скобки.

promo parafoxer may 15, 2015 15:20 11
Buy for 10 tokens
У кого уж там родилась эта идея - не помню. НО мы решили ехать на весенний сплав на очень серьезные речки Алтайского края - Чуя и Катунь. Обе реки имеют пороги 4-5 категории сложности, некоторые из которых весьма трудно обнести, тем более если катамаран идет с грузом (рюкзаками) Нудить по поводу…

Profile

foxic
parafoxer
parafoxer

Latest Month

November 2018
S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 

Tags

Powered by LiveJournal.com