none
Объединение GAL (Адресных книг) из разных лесов. RRS feed

  • Вопрос

  • Добрый день Уважаемые господа!

    В продолжении работы над  проектом http://social.technet.microsoft.com/Forums/ru-RU/exchange2010ru/thread/c0715984-ba53-47dd-8342-6ef87c65fbe3

    Столкнулись с проблемой, а именно в новом лесу с чистого листа где стоит MS Exchange 2010 Есть свой GAL , а вот как быть с адресной книгой из старого леса где стоит MS Exchange 2000 ? 

    Вопрос:

    Существует какой либо механизм добавить струю адресную книгу из старого леса в новый лес с новым почтовиком (потому как человек, который уже переведен в новый доменный лес захочет написать письмо на старый список рассылки)- как тогда быть ?

    То есть еще проще говоря, сидя за почтовым клиентом MS Outlook 2010 юзер смог бы открыть старую адресную книгу, так же как и новую!

    На данный момент все пользователи в новом лесу-  будут использовать vpn для того что бы обращаться к ресурсам старого домена, на время перевода всего содержимого!

     

    Спасибо!


    Век живи, век учись!
    26 июля 2011 г. 11:29

Ответы

  • Я поправил скрипт немного. Собственно только строку Enable-MailContact ...
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа rеstless 3 августа 2011 г. 10:51
    3 августа 2011 г. 10:11
    Модератор
  • Сработало? :-)

     

    Списки рассылки это отдельная песня, я думаю - там же фильтр надо переносить. Их у вас очень много?


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа rеstless 3 августа 2011 г. 10:54
    3 августа 2011 г. 10:47
    Модератор

Все ответы

  • Active Directory Federation Services                
    Первое правило Windows - делай резервную копию. Коды ошибок смотрите по адресу http://support.microsoft.com и http://eventid.net/ Cisco для начинающих http://faq-cisco.ru
    27 июля 2011 г. 6:32
  • А сработает ли Active Directory Federation Services  для леса основанном на Windows 2000 ?
    Век живи, век учись!
    27 июля 2011 г. 7:00
  • В теории должно работать с Windows 2000 SP4 - нужно пробовать.


    Первое правило Windows - делай резервную копию. Коды ошибок смотрите по адресу http://support.microsoft.com и http://eventid.net/ Cisco для начинающих http://faq-cisco.ru
    27 июля 2011 г. 7:06
  •  

    Вопрос:

    Существует какой либо механизм добавить струю адресную книгу из старого леса в новый лес с новым почтовиком (потому как человек, который уже переведен в новый доменный лес захочет написать письмо на старый список рассылки)- как тогда быть ?

    То есть еще проще говоря, сидя за почтовым клиентом MS Outlook 2010 юзер смог бы открыть старую адресную книгу, так же как и новую!


    Клиент открывает адресную книгу только своего Exchange.

    Вы можете импортировать из одного леса пользователей в другой в виде почтовых контактов, и они появятся в адресной книге. Сделать это можно средствами MIIS/ILM/FIM или просто скриптом http://www.itcommunity.ru/blogs/sie-wl/archive/2009/09/23/77683.aspx


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Предложено в качестве ответа Mikhail Tokaryev 28 июля 2011 г. 9:06
    27 июля 2011 г. 7:49
    Модератор
  • $base = [ADSI]"LDAP://ou=Contacts(?), ou=(?),dc=(мой домен),dc=local(локальный ?)"

    $users = (new-object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://ou=(?),dc=мой домен,dc=(локальный?)","(&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(title=*)))")).findAll()

    Вопрос:

    Подскажите что вписывать в значения выделенные шрифтом ?

    Спасибо!


    Век живи, век учись!
    27 июля 2011 г. 8:32
  • $base = [ADSI]"LDAP://ou=Contacts(?), ou=(?),dc=(мой домен),dc=local(локальный ?)"

    $users = (new-object System.DirectoryServices.DirectorySearcher([ADSI]LDAP://ou=(?),dc=мой домен,dc=(локальный?)


    Первое контейнер куда будете помещать создаваемые контакты. Второе это задается место поиска пользователей (ваш старый домен, корень структуры или какой-то контейнер OU, ниже которого по дереву будет происходить поиск)
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    27 июля 2011 г. 10:02
    Модератор
  • Не отрабатывает, что-то где то не так ?
    Исключение при вызове "FindAll" с "0" аргументами: "Сервер возвратил ссылку.
    "
    D:\PowerShell\import.ps1:3 знак:231
    + $users = (new-object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP:/
    /ou=ramecusers,dc=module.ramec,dc=ru","(&(&(objectCategory=person)(objectClass=
    user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(title=*)))")).findAll <<<<
     ()
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : DotNetMethodException
     
    Нельзя вызвать метод для выражения со значением NULL.
    D:\PowerShell\import.ps1:7 знак:26
    + $_ = $_.GetDirectoryEntry <<<< ()
        + CategoryInfo          : InvalidOperation: (GetDirectoryEntry:String) [], 
        RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull
     
    При получении элемента "Create" произошло следующее исключение: "Сервер возврат
    ил ссылку.
    "
    D:\PowerShell\import.ps1:8 знак:14
    + $NewContact = <<<<  $base.Create("contact","cn=" + $_.cn)
        + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemExceptio 
       n
        + FullyQualifiedErrorId : CatchFromBaseGetMember
     
    Нельзя вызвать метод для выражения со значением NULL.
    D:\PowerShell\import.ps1:10 знак:20
    + $NewContact.SetInfo <<<< ()
        + CategoryInfo          : InvalidOperation: (SetInfo:String) [], RuntimeEx 
       ception
        + FullyQualifiedErrorId : InvokeMethodOnNull
     
    Не удается найти свойство "extensionAttribute15" для данного объекта; убедитесь
     в том, что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:12 знак:13
    + $NewContact. <<<< extensionAttribute15 = $base.distinguishedName
        + CategoryInfo          : InvalidOperation: (extensionAttribute15:String)  
       [], RuntimeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "displayname" для данного объекта; убедитесь в том, ч
    то оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:14 знак:13
    + $NewContact. <<<< displayname = $_.displayname
        + CategoryInfo          : InvalidOperation: (displayname:String) [], Runti 
       meException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "givenname" для данного объекта; убедитесь в том, что
     оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:15 знак:13
    + $NewContact. <<<< givenname = $_.givenname
        + CategoryInfo          : InvalidOperation: (givenname:String) [], Runtime 
       Exception
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "sn" для данного объекта; убедитесь в том, что оно су
    ществует и является устанавливаемым.
    D:\PowerShell\import.ps1:16 знак:13
    + $NewContact. <<<< sn = $_.sn
        + CategoryInfo          : InvalidOperation: (sn:String) [], RuntimeExcepti 
       on
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "initials" для данного объекта; убедитесь в том, что 
    оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:17 знак:13
    + $NewContact. <<<< initials = $_.initials
        + CategoryInfo          : InvalidOperation: (initials:String) [], RuntimeE 
       xception
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "description" для данного объекта; убедитесь в том, ч
    то оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:18 знак:13
    + $NewContact. <<<< description = $_.description
        + CategoryInfo          : InvalidOperation: (description:String) [], Runti 
       meException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "department" для данного объекта; убедитесь в том, чт
    о оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:20 знак:13
    + $NewContact. <<<< department = $_.department
        + CategoryInfo          : InvalidOperation: (department:String) [], Runtim 
       eException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "title" для данного объекта; убедитесь в том, что оно
     существует и является устанавливаемым.
    D:\PowerShell\import.ps1:21 знак:13
    + $NewContact. <<<< title = $_.title
        + CategoryInfo          : InvalidOperation: (title:String) [], RuntimeExce 
       ption
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "company" для данного объекта; убедитесь в том, что о
    но существует и является устанавливаемым.
    D:\PowerShell\import.ps1:22 знак:13
    + $NewContact. <<<< company = $_.company
        + CategoryInfo          : InvalidOperation: (company:String) [], RuntimeEx 
       ception
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "telephoneNumber" для данного объекта; убедитесь в то
    м, что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:24 знак:13
    + $NewContact. <<<< telephoneNumber = $_.telephoneNumber
        + CategoryInfo          : InvalidOperation: (telephoneNumber:String) [], R 
       untimeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "othertelephone" для данного объекта; убедитесь в том
    , что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:25 знак:13
    + $NewContact. <<<< othertelephone = $_.othertelephone
        + CategoryInfo          : InvalidOperation: (othertelephone:String) [], Ru 
       ntimeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "ipPhone" для данного объекта; убедитесь в том, что о
    но существует и является устанавливаемым.
    D:\PowerShell\import.ps1:27 знак:13
    + $NewContact. <<<< ipPhone = $_.ipPhone
        + CategoryInfo          : InvalidOperation: (ipPhone:String) [], RuntimeEx 
       ception
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "otherIpPhone" для данного объекта; убедитесь в том, 
    что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:28 знак:13
    + $NewContact. <<<< otherIpPhone = $_.otherIpPhone
        + CategoryInfo          : InvalidOperation: (otherIpPhone:String) [], Runt 
       imeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "mobile" для данного объекта; убедитесь в том, что он
    о существует и является устанавливаемым.
    D:\PowerShell\import.ps1:30 знак:13
    + $NewContact. <<<< mobile = $_.mobile
        + CategoryInfo          : InvalidOperation: (mobile:String) [], RuntimeExc 
       eption
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "otherMobile" для данного объекта; убедитесь в том, ч
    то оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:31 знак:13
    + $NewContact. <<<< otherMobile = $_.otherMobile
        + CategoryInfo          : InvalidOperation: (otherMobile:String) [], Runti 
       meException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "facsimileTelephoneNumber" для данного объекта; убеди
    тесь в том, что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:33 знак:13
    + $NewContact. <<<< facsimileTelephoneNumber = $_.facsimileTelephoneNumber
        + CategoryInfo          : InvalidOperation: (facsimileTelephoneNumber:Stri 
       ng) [], RuntimeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Не удается найти свойство "otherfacsimileTelephoneNumber" для данного объекта; 
    убедитесь в том, что оно существует и является устанавливаемым.
    D:\PowerShell\import.ps1:34 знак:13
    + $NewContact. <<<< otherfacsimileTelephoneNumber = $_.otherfacsimileTelephoneN
    umber
        + CategoryInfo          : InvalidOperation: (otherfacsimileTelephoneNumber 
       :String) [], RuntimeException
        + FullyQualifiedErrorId : PropertyNotFound
     
    Нельзя вызвать метод для выражения со значением NULL.
    D:\PowerShell\import.ps1:44 знак:20
    + $NewContact.SetInfo <<<< ()
        + CategoryInfo          : InvalidOperation: (SetInfo:String) [], RuntimeEx 
       ception
        + FullyQualifiedErrorId : InvokeMethodOnNull
     

    Век живи, век учись!
    27 июля 2011 г. 10:02
  • Скрипт рабочий :-)

    У вас [ADSI]"LDAP://ou=ramecusers,dc=module.ramec,dc=ru",скорее всего не существует. У вас домен module.ramec? Скорее всего нет.


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    28 июля 2011 г. 2:49
    Модератор
  • Скрипт рабочий :-)

    У вас [ADSI]"LDAP://ou=ramecusers,dc=module.ramec,dc=ru",скорее всего не существует. У вас домен module.ramec? Скорее всего нет.


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/

    именно module.ramec.ru ! То есть именно в домене module нам нужны контакты!

    А OU RamecUsers это подразделение с пользователями!


    Век живи, век учись!
    28 июля 2011 г. 6:52
  • Значит надо писать DC=module,DC=ramec,DC=ru
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    28 июля 2011 г. 11:45
    Модератор
  • Настройка MIIS/ILM/FIM действительно нетривиальная вещь. Их имеет смысл использовать на долгосрочной основе, а у вас только на переходный период - можно скрипт использовать.


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/

    29 июля 2011 г. 9:34
    Модератор
  • Ок, скрипт отрабатыевает на ура, то есть ,берет и указывает OU -куда будет делать экспорт и откуда будет делать-то есть OU и мой старый домен!

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

    Что... контакты необходимо скопировать в какую то папку MS Exchange ? 


    Век живи, век учись!
    29 июля 2011 г. 9:40
  • Ребят кто знает, какую галочку надо нажать что бы мои выгруженные в новый домен контакты засветились в GAL нового леса ?

    Да и еще одна интересная вещь! Как только переношу контакты-поля где был имени старого домена исчезает, почему ? То есть все контакты становятся просто контактами без почтового адреса.


    Век живи, век учись!
    29 июля 2011 г. 11:07
  • Ой! Я упустил главное и потратил ваше время: скрипт требует Exchange 2003.

    Для Exchange 2010 все проще - он имеет свои командлеты и можно использовать New-MailContact для создания контакта

    т.е. в скрипте надо удалить

    $NewContact = $base.Create("contact","cn=" + $_.cn)

    $NewContact.SetInfo()

    и  далее

    и поставить просто вызов командлета с нужными параметрами

    Описание командлета http://technet.microsoft.com/en-us/library/bb124519.aspx

    Как только эти "правильные" контакты создадутся, они появятся в GAL после ее обновления. GAL можно обновить вручную:

    Get-GlobalAddressList | Update-GlobalAddressList

     


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    29 июля 2011 г. 13:11
    Модератор
  • Ок! Так и еще раз, у меня есть лес Windows 2000 и MS Exchange 2000 -из которого необходимо сделать экспорт всех контактов учетных записей с текущей электронной почтой -это раз!

    И есть лес Windows Server 2008 R2 в котором стоит MS Exchange 2010 и в котором будет использоваться новый почтовый домен с другим именем, НО и в новом текущем GAL необходимо что бы были импортированы все адреса - то есть контакты из старого леса со старым почтовым доменом! -это два!

    То есть существующий шэловский скрипт (с некоторой поправкой) позволяет это сделать, правильно я думаю ?

     


    Век живи, век учись!
    30 июля 2011 г. 15:11
  • Да, конечно. Суть работы скрипта в том, чтобы прочитать список пользователей с почтовыми ящиками в одном домене и на их основе создать почтовый контакт в новом.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    30 июля 2011 г. 17:07
    Модератор
  • Я извиняюсь, а случайно не вот это ?:

     | ForEach { New-MailContact -Name $_.DisplayName -OrganizationalUnit $_.OU -ExternalEmailAddress $_.EmailAddress 


    set-qadobject -Identity $_.DisplayName -ObjectAttributes @{ 
    Title = $_.Title 
    Department = $_.Department 
    mobile = $_.mobile 
    Company = $_.Company 
    telephoneNumber = $_.telephoneNumber 
    physicalDeliveryOfficeName = $_.physicalDeliveryOfficeName 

     

    К стати вот нашел еще вот такую статейку:http://mcp.su/active-directory/sync-contacts/

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



    Век живи, век учись!
    31 июля 2011 г. 7:36
  • Я поправил скрипт для Exchange 2010.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    1 августа 2011 г. 7:44
    Модератор
  • Я так понял туда добавлена вот эта строчка :

    Enable-MailContact "cn=$_.cn,$base" -Alias $_.cn -ExternalEmailAddress $targetAddress -PrimarySmtpAddress $_.mail


    Век живи, век учись!
    1 августа 2011 г. 8:47
  • Что-то опять упрямится скриптик. А его не на самом MS Exchange 2010 надо бы запускать ? Или командлет новый не выполняется ?
    Век живи, век учись!
    1 августа 2011 г. 11:09
  • Конечно, скрипт надо запускать в Exchange Management Shell
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    1 августа 2011 г. 12:24
    Модератор
  • Что-то не работает даже старый скрипт, может что-то не так делаем, я для проверки решил сделать выгрузку одного контакта в том же домене (то есть создал фиктивное OU и туда скопировал учетную запись-которую в свою очереь хочу выгрузить в контакт в другое OU)

    $base = [ADSI]"LDAP://ou=Contact1,dc=module,dc=ramec,dc=ru"

     

    $users = (new-object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://ou=distributioninstall,dc=module,dc=ramec,dc=ru","

    (&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(title=*)))")).findAll()

     

    $users | ForEach-Object {

     

    $_ = $_.GetDirectoryEntry()

    $NewContact = $base.Create("contact","cn=" + $_.cn)

     

    $NewContact.SetInfo()

     

    $NewContact.extensionAttribute15 = $base.distinguishedName

     

    $NewContact.displayname = $_.displayname

    $NewContact.givenname = $_.givenname

    $NewContact.sn = $_.sn

    $NewContact.initials = $_.initials

    $NewContact.description = $_.description

     

    $NewContact.department = $_.department

    $NewContact.title = $_.title

    $NewContact.company = $_.company

     

    $NewContact.telephoneNumber = $_.telephoneNumber

    $NewContact.othertelephone = $_.othertelephone

     

    $NewContact.ipPhone = $_.ipPhone

    $NewContact.otherIpPhone = $_.otherIpPhone

     

    $NewContact.mobile = $_.mobile

    $NewContact.otherMobile = $_.otherMobile

     

    $NewContact.facsimileTelephoneNumber = $_.facsimileTelephoneNumber

    $NewContact.otherfacsimileTelephoneNumber = $_.otherfacsimileTelephoneNumber

     

    if ($_.proxyaddresses) {

     

    $NewContact.proxyaddresses = $_.proxyaddresses

    $NewContact.targetAddress = $_.proxyaddresses -clike "SMTP:*"

    $NewContact.mailNickname = $_.cn

     

    }

     

    $NewContact.SetInfo()

     

    }


    Век живи, век учись!
    2 августа 2011 г. 6:44
  • Что у вас в $users оказалось? Почему тестируете на контакте? В фильтре задано objectClass=user и более того (title=*) - поле должности должно быть заполнено


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    2 августа 2011 г. 7:55
    Модератор
  • В смысле на контакте ? у меня OU с именем Contact1в Title в свойстве учетной записи есть должность-то есть моя должность. Я на своей учетку пока что тестирую!

    ой пардон! я все походу перепутал! строка base это строка куда я буду ложить! А я все наоброт сделал.

     


    Век живи, век учись!
    2 августа 2011 г. 8:08
  • Вы осторожнее: у вас большие права - а скриптом можно снести все... не этим скриптом, а вообще ...
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    2 августа 2011 г. 8:25
    Модератор
  • Спасибо!

    В общем запускаем скрипт на Exchange Shell и получаем:

     

    Не удается обработать преобразование аргументов для параметра "ExternalEmailAddress". Не удается преобразовать значение
    "System.Collections.ArrayList" типа "System.Collections.ArrayList" в тип "Microsoft.Exchange.Data.ProxyAddress".
    + CategoryInfo : InvalidData: ([Enable-MailContact], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Enable-MailContact
    Сам контакт выгружается в новый лес-НО мы не видим в нем старого emailadress , а нам как раз и нужно что бы старые адрес электронной почты присутствовал в экспортированном контакте..
    Что еще может быть за баг?
    Либо необходимо на DC в новом лесе запускать удаленно консоль Exchange Power Shell ?
    К стати, есть такая програмулька LDAP.EXE при помощи нее решил просмотреть атрибуты объекта USER и увидел, что там где есть атрибут SMTP имеется аж три повторяющихся атрибута ProxyAddress (smtp,smtp и X.400)- может из-за такой штуки и не создается контакт в MS Exchange/
    Спасибо!

     


    Век живи, век учись!




    2 августа 2011 г. 9:05
  • В общем засада пока что с текущим скриптом! Ничего пока не получается, все почти перепробывали. А может не все ?
    Век живи, век учись!
    2 августа 2011 г. 14:26
  • Я поправил скрипт немного. Собственно только строку Enable-MailContact ...
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа rеstless 3 августа 2011 г. 10:51
    3 августа 2011 г. 10:11
    Модератор
  • Спасибо оргоменное! Пиво с нас!

    А вот группы рассылок так же можно экспортировать ? Я так понимаю нужно подставить другие значения в свойства+ команда другая будет.

    Да и последнее, а нормально что в экспортированном контакте в свойстве поля ПСЕВДОНИМ вместо оригинала стоит System.DirectoryServices.DirectoryEntry.cn Это нормально ?


    Век живи, век учись!
    • Изменено rеstless 3 августа 2011 г. 10:51
    3 августа 2011 г. 10:40
  • Сработало? :-)

     

    Списки рассылки это отдельная песня, я думаю - там же фильтр надо переносить. Их у вас очень много?


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа rеstless 3 августа 2011 г. 10:54
    3 августа 2011 г. 10:47
    Модератор
  • Да все отлично! Спасибо огромное! Так бы мы мучались! Так а в чем в краце была проблема  то?
    Век живи, век учись!
    3 августа 2011 г. 10:54
  • Это надо вас спросить :-)))
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    3 августа 2011 г. 11:25
    Модератор
  • Так а  я же написал что была ошибка

     Не удается обработать преобразование аргументов для параметра "ExternalEmailAddress". Не удается преобразовать значение
    "System.Collections.ArrayList" типа "System.Collections.ArrayList" в тип "Microsoft.Exchange.Data.ProxyAddress".
    + CategoryInfo : InvalidData: ([Enable-MailContact], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Enable-MailContact

    Только вот смысл пока что не уловлю:-(



    Век живи, век учись!
    3 августа 2011 г. 11:50
  • Типы не совпадают - надо делать явное или неявное преобразование, т.е. скрипт был не до пилин.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    3 августа 2011 г. 12:54
    Модератор