![]() |
Создание, обновление контактов и помещение из в группу рассылки
Здравствуйте, уважаемые коллеги
Столкнулся с такой необходимостью: Наша компания достаточно большая разветвлённая, имеется несколько организаций в структуре этой компании и не все они с точки зрения топологии сети находиться в одном лесу. Есть компании, которые имею свой собственный лес и собственный Exchange сервер. Как и во многих организациях, сотрудники приходят, уходят, переводиться в другие подразделения (организации), меняются электронные адреса, меняются телефоны, в общем, идет обычный кадровый процесс. Теперь к самой сути. Имеется Exchange 2010 - Требуется периодическое обновление членства группы рассылки на основе контактов. - Необходимо максимально облегчить этот процесс на основе скрипта PowerShell - Имеется, постоянно обновляющийся CSV файл контактов. Что требуется от скрипта: Сверка содержимого CSV и OU в Active Directory на предмет совпадения контактов. Если контакт существует в OU и в CSV, то ни каких действий не происходит. Если контакт отсутствует в OU, то контакт создается на основе полученных данных из CSV. Если существующий контакт в OU отсутствует в CSV, то контакт удаляется из AD. Дополнительно, должно происходить обновление атрибутов контактов (объектов Active Directory - contacts) на основе CSV файла, а именно мобильный телефон, должность, компания. И было бы замечательно, если бы вновь созданные контакты помещались в группу рассылки. Я наклепал небольшой скрипт создающий контакты и меняющий в них атрибуты, но на этом мои знания иссякли. Не могу сообразить, как мне соблюсти условия. Вот мой скрипт. Код:
Import-Module ActiveDirectory Код:
FN;LN;T;M;E;OU Надеюсь на Вашу помощь. Спасибо. |
Код:
Import-Module ActiveDirectory |
Kazun,
огромнейшее ВАМ спасибо. Великолепное решение. Но есть маленькие нюансы, если не сложно помогите понять и разобраться. 1. Выводит ошибку при выполнении этой части кода: Код:
$AContacts | Where {Name -eq $N -and proxyAddresses -match $E -and (Mobile -ne $M -or Title -ne $T)} | Foreach { Код:
The term 'Name' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was Код:
Add-DistributionGroupMember -Identity "MY_GROUP" -Member $_.DistinguishedName Код:
Add-DistributionGroupMember : Couldn't find object "domain.local/Contacts/Barak Obama". Please make sure that it was spelled correctly or specif Еще раз СПАСИБО. |
1) Заменить на:
Код:
$AContacts | Where {$_.Name -eq $N -and $_.proxyAddresses -match $E -and ($_.Mobile -ne $M -or $_.Title -ne $T)} | Foreach { |
Kazun,
Спасибо Вам большое 1) Сработало. Прошу прощения, забыл изначально сообщить Вам, что запускаю скрипт на Windows Server 2008 R2 с PowerShell 2.0. По началу тоже была такая мысль, внести аналогичные изменения. 2) Цитата:
Спасибо Вам большое за отзывчивость и помощь. |
Время: 12:00. |
Время: 12:00.
© OSzone.net 2001-