Поделиться через


Exchange Server

Exchange в вопросах и ответах Автоматическое создание учетных записей Exchange средствами ILM 2007 и FIM 2010

Роб Уард, Аунг Оо и Хенна Кернани

Администраторы часто используют Identity Lifecycle Manager 2007 (ILM 2007) для подготовки (provisioning) пользователей, контактов и почтовых ящиков в Active Directory (AD) и Exchange. Использование таких средств управления идентификационными данными, как ILM 2007 и Forefront Identity Manager 2010 (FIM 2010) позволяет избавиться от чреватых ошибками ручных операций при создании учетных записей и почтовых ящиков в AD и Exchange.

ILM 2007 и FIM 2010 позволяют автоматизировать не только подготовку учетных записей и почтовых ящиков, но и выполнение определенной бизнес-логики. Так, можно создавать почтовые ящики на определенных серверах в зависимости от принадлежности пользователей к бизнес-группам или от их физического местоположения, определять начальный размер и ограничения почтовых ящиков, основываясь на роли пользователей, и создавать почтовые ящики новых пользователей в хранилище с наибольшим размером свободного пространства. FIM 2010 позволяет реализовать более сложную бизнес-логику, поддерживающую потоки операций (workflow) и такие дополнительные возможности, как подготовка учетных записей без использовании кода.

Самый популярный вариант использования ILM 2007 в среде Exchange — синхронизация глобальных списков адресов (GAL), расположенных в двух разных лесах AD, подготовка и удаление почтовых ящиков пользователей и синхронизация каталогов в двух предприятиях Exchange в процессе миграции на новую версию Exchange.

Реализация ILM 2007 и FIM 2010 в сценариях подготовки учетных записей может меняться в зависимости от сетевой инфраструктуры, политик безопасности и конфигурации Exchange. Эта статья рассказывает об использовании этих двух продуктов для подготовки учетных записей в средах Exchange, а также о ключевых функциях, облегчающих такую подготовку в Exchange 2003, 2007 и 2010.

Основные сведения об архитектуре

ILM 2007 и FIM 2010 могут создавать объекты с поддержкой электронной почты в Exchange 2003, 2007 и 2010. Однако надо иметь в виду, что не каждая версия Exchange поддерживает все выпуски ILM. Таблица 1 содержит более подробные сведения.

(Подробнее о совместимости см. веб-страницу «Таблица поддержки Exchange Server» по адресу:

https://technet.microsoft.com/ru-ru/library/ee338574(EXCHG.80).aspx.) Чтобы обеспечить поддержку подготовки учетных записей Exchange, надо создать процесс подготовки учетных записей, который будет создавать объекты с поддержкой электронной почты, а также сконфигурировать ADMA (Active Directory Management Agent), который обеспечивает взаимодействие Active Directory и Exchange при подготовке объектов с поддержкой электронной почты.

Несколько слов о подготовке учетных записей

Exchange 2003

В процессе подготовки учетных записей в Exchange 2003 ILM 2007 и FIM 2010 используют службу RUS (Recipient Update Service) Exchange-сервера. Выполняя экспорт, ADMA подключается к доступному или предпочтительному контроллеру домена и создает объект с поддержкой почты (как предписано конфигурацией подготовки учетных записей) непосредственно в каталоге.

RUS отслеживает изменения объектов каталога с поддержкой почты и завершает процесс подготовки учетных записей для каждого объекта, созданного ILM 2007 и FIM 2010. Exchange записывает каждый из этих объектов в каталог с минимальным набором атрибутов, необходимых для создания объекта. RUS применяет к ним политику Exchange и добавляет остальные атрибуты, необходимые для поддержки всех функций Exchange.

В процессе подготовки учетных записей Exchange 2003 серверы ILM 2007 и FIM 2010 не нуждаются в прямом подключении к Exchange-серверу — достаточно соединения с контроллером домена Active Directory (см. рис. 1.) Рис.

 

Подготовка учетных записей в Exchange 2003

Exchange 2007

В Exchange 2007 на ILM 2007 с пакетом дополнений 1 (ILM 2007 FP1) и FIM 2010 для выполнения подготовки используется командлет Update-Recipient Windows PowerShell (входящий в состав Средств управления Exchange 2007). В процессе экспорта ADMA подключается к доступному или предпочтительному контроллеру домена и создает в каталоге объект с поддержкой электронной почты (как определено конфигурации подготовки учетных записей).

После подготовки в каталоге объекта с поддержкой электронной почты ILM 2007 и FIM 2010 инициируют на сервере ILM или FIM выполнение командлета Update-Recipient. Рис.

 

Подготовка учетных записей в Exchange 2007

Для подготовки учетных записей в Exchange 2007 (см. рис. 2) требуется ILM 2007 FP1 или более поздняя версия или FIM 2010. Кроме того, экземпляр должен удовлетворять ряду требований:

  • учетная запись службы синхронизации ILM 2007/FIM 2010 должна быть членом домена;
  • учетная запись службы агента управления ILM 2007 FP1 должна быть членом группы Exchange Recipient Administrators;
  • сервер синхронизации ILM к 2007/FIM 2010 должен быть членом домена, вместе с тем членство в домене, в котором выполняется подготовка учетных записей Exchange не требуется;
  • на сервере ILM/FIM должен быть установлен Windows PowerShell 1.0;
  • на сервере ILM/FIM должны быть установлены Средства управления Exchange.

Exchange 2010

На Exchange 2010 на ILM 2007 с пакетом дополнений 1 (ILM 2007 FP1) и FIM 2010 для выполнения подготовки используется командлет Update-Recipient Windows PowerShell. Но в отличие от Exchange 2007, в данном случае командлет выполняется удаленно и непосредственно на Exchange-сервере в среде Windows PowerShell 2.0. (см. рис. 3.)

 

Рис. 3 Подготовка учетных записей в Exchange 2010

Для подготовки учетных записей в Exchange 2010 требуется ILM 2007 FP1 SP1 или более поздней версии или FIM 2010. Кроме того, экземпляр должен удовлетворять ряду требований:

  • учетная запись службы синхронизации ILM 2007/FIM 2010 должна быть членом домена;
  • учетная запись службы агента управления ILM 2007 FP1 должна быть членом группы Exchange Recipient Administrators;
  • сервер синхронизации ILM к 2007/FIM 2010 должен быть членом домена, вместе с тем членство в домене, в котором выполняется подготовка учетных записей Exchange не требуется;
  • на сервере ILM/FIM должна быть установлена среда Windows PowerShell 2.0 и настроена для удаленного доступа к серверу клиентского доступа Exchange 2010.

Подготовка учетных записей

Для выполнения подготовки нужно сконфигурировать процесс создания объектов с применением сценариев или без использовании кода. Таблица 2 содержит более подобные сведения о поддерживаемых типах подготовки учетных записей FIM 2010 и версиях ILM.

Подготовка учетных записей с применением сценариев с классом ExchangeUtils

Класс ExchangeUtils предоставляет ряд служебных методов, позволяющих создавать новые почтовые объекты. Для создания почтового ящика требуются как минимум следующие атрибуты пользовательского объекта:

  • DN — атрибуты различающегося имени являются строковым представлением, однозначно определяющим объекты в AD;
  • mailNickname — псевдоним использования Exchange используется для идентификации объектов с поддержкой электронной почты;
  • homeMDB — это свойство содержит URL-адрес хранилища почтового ящика получателя.

Вот примеры использования атрибутов в коде на Visual Basic .NET и визуальные C# .NET.

Visual Basic .NET:

Public Sub Provision(ByVal mventry As MVEntry) _
    Implements IMVSynchronization.Provision

    Dim adMA As ConnectedMA
    Dim csentry As CSEntry
    Dim nickName, mailboxMDB As String
    Dim dn as ReferenceValue

    try
        adMA = mventry.ConnectedMAs("Fabrikam AD MA")

        nickName   = mventry("mailNickname").Value
        mailboxMDB = mventry("homeMDB").Value

        ' Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry("cn").Value).Concat("ou=mailboxes,dc=fabrikam,dc=com")

        If 0 = adMA.Connectors.Count then
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB)
        End If

        ' Handle any exceptions
        Catch ex As Exception
            '...
    End Try
End Sub

Visual Basic .NET:

void IMVSynchronization.Provision (MVEntry mventry)
{
    ConnectedMA adMA;
    CSEntry csentry;
    String nickName, mailboxMDB;
    ReferenceValue dn;

    try
    {
        adMA = mventry.ConnectedMAs["Fabrikam AD MA"];

        nickName   = mventry["mailNickname"].Value;
        mailboxMDB = mventry["homeMDB"].Value;

        // Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("ou=mailboxes,dc=fabrikam,dc=com");

        if(0 == adMA.Connectors.Count)
        {
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB);
        }
    }

    // Handle any exceptions
    catch(Exception ex)
    {
        //...
    }
}

(Подробнее о классе ExchangeUtils класса см. веб-страницу https://msdn.microsoft.com/library/ms696074(VS.85).aspx. Примеры использования ExchangeUtils можно найти на странице https://msdn.microsoft.com/library/ms697550(VS.85).aspx.)

Требования к созданию сценариев подготовки учетных записей Exchange 2007 те же, что и для Exchange 2003. Уже существующие в Exchange 2003 сценарии создания объектов с поддержкой электронной почты будут работать в Exchange 2007 без изменений. Однако в Exchange 2010 придется добавить в сопоставление атрибутов атрибут msExchHomeServerName, о чем мы расскажем в разделе, посвященном Exchange 2010 и msExchHomeServerName.

Подготовка учетных записей с применением пользовательских сценариев

Хотя ExchangeUtils предоставляет простой метод создания объектов с поддержкой электронной почты, может потребоваться больший контроль над процессом подготовки учетных записей. Все методы ExchangeUtils возвращают объект CSEntry, который позволяет задавать дополнительные атрибуты объекты. Мы рекомендуем создавать объект с поддержкой электронной почты средствами ExchangeUtils, а для определения дополнительных атрибутов использовать возвращенный объект CSEntry.

Чтобы создать пользователя с паролем по умолчанию, с почтовым ящиком и возможностью входа в систему, рекомендуем задействовать ExchangeUtils для создания почтового ящика, а затем добавить атрибуты unicodepwd и userAccountControl, используя возвращенный объект CSEntry, как показано в следующих примерах на Visual Basic .NET и Visual C# .NET:

Visual Basic .NET:

Public Sub Provision(ByVal mventry As MVEntry) _
    Implements IMVSynchronization.Provision

    Dim adMA As ConnectedMA
    Dim csentry As CSEntry
    Dim nickName, mailboxMDB As String
    Dim dn as ReferenceValue

    try
        adMA = mventry.ConnectedMAs("Fabrikam AD MA")

        nickName   = mventry("mailNickname").Value
        mailboxMDB = mventry("homeMDB").Value

        ' Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry("cn").Value).Concat("ou=mailboxes,dc=fabrikam,dc=com")

        If 0 = adMA.Connectors.Count then
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB)
            csentry("unicodepwd").Values.Add("p@ssword1")
            csentry("userAccountControl").IntegerValue = 512
        End If

        ' Handle any exceptions
        Catch ex As Exception
            '...
    End Try
End Sub

Visual Basic .NET:

void IMVSynchronization.Provision (MVEntry mventry)
{
    ConnectedMA adMA;
    CSEntry csentry;
    String nickName, mailboxMDB;
    ReferenceValue dn;

    try
    {
        adMA = mventry.ConnectedMAs["Fabrikam AD MA"];

        nickName   = mventry["mailNickname"].Value;
        mailboxMDB = mventry["homeMDB"].Value;

        // Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("ou=mailboxes,dc=fabrikam,dc=com");

        if(0 == adMA.Connectors.Count)
        {
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB);
            csentry["unicodepwd"].Values.Add("p@ssword1");
            csentry["userAccountControl"].IntegerValue = 512;
        }
    }

    // Handle any exceptions
    catch(Exception ex)
    {
        //...
    }
}

Подготовка учетных записей без использования кода

Если вы используете FIM 2010, у вас есть возможность применить подготовку учетных записей без использования кода, что позволяет определять атрибуты объекта в процессе подготовки, не создавая код на VB или C#. Чтобы создавать почтовый ящик, надо сконфигурировать правило по крайней мере со следующими начальными атрибутами:

  • DN — атрибуты различающегося имени являются строковым представлением, однозначно определяющим объекты в AD;
  • mailNickname — псевдоним использования Exchange используется для идентификации объектов с поддержкой электронной почты;
  • homeMDB — это свойство содержит URL-адрес хранилища почтового ящика получателя.

Чтобы создать пользователя с паролем по умолчанию, с почтовым ящиком и возможностью входа в систему, придется также задать начальное соотношение атрибутов unicodepwd и userAccountControl, как показано на рис. Рис.

 

Настройка исходящего соответствия атрибутов

Exchange 2010 и msExchHomeServerName

При подготовке учетных записей в Exchange 2010 в процессе создания объекта пользователя с поддержкой электронной почты требуется дополнительно задать атрибут msExchHomeServerName; его надо задать в коде подготовки. Exchange использует этот атрибут для определения, куда доставлять почту объекта с поддержкой электронной почты.

Чтобы задать атрибут msExchHomeServerName в процессе подготовки учетных записей с применением ExchangeUtils или собственного кода, потребуется добавить строку, выделенную в следующих примерах полужирным:

Visual Basic .NET:

Public Sub Provision(ByVal mventry As MVEntry) _
    Implements IMVSynchronization.Provision

    Dim adMA As ConnectedMA
    Dim csentry As CSEntry
    Dim nickName, mailboxMDB As String
    Dim dn as ReferenceValue

    try
        adMA = mventry.ConnectedMAs("Fabrikam AD MA")

        nickName   = mventry("mailNickname").Value
        mailboxMDB = mventry("homeMDB").Value

        ' Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry("cn").Value).Concat("ou=mailboxes,dc=fabrikam,dc=com")

        If 0 = adMA.Connectors.Count then
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB)

    ' Add msExchHomeServerName
csentry("msExchHomeServerName").Value = "<value of msExchHomeServerName>"
        End If

        ' Handle any exceptions
        Catch ex As Exception
            '...
    End Try
End Sub

Visual Basic .NET:

void IMVSynchronization.Provision (MVEntry mventry)
{
    ConnectedMA adMA;
    CSEntry csentry;
    String nickName, mailboxMDB;
    ReferenceValue dn;

    try
    {
        adMA = mventry.ConnectedMAs["Fabrikam AD MA"];

        nickName   = mventry["mailNickname"].Value;
        mailboxMDB = mventry["homeMDB"].Value;

        // Construct the distinguished name
        dn = adMA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("ou=mailboxes,dc=fabrikam,dc=com");

        if(0 == adMA.Connectors.Count)
        {
            csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB);

// Add msExchHomeServerName
csentry["msExchHomeServerName"].Value = "<value of msExchHomeServerName>";

        }
    }

    // Handle any exceptions
    catch(Exception ex)
    {
        //...
    }
}

Чтобы задать msExchHomeServerName в правиле синхронизации, добавьте начальное сопоставление атрибутов, как показано на рис. Рис.

 

Настройка начального сопоставления атрибутов

Настройка Агента управления

Для нормальной подготовки объектов с поддержкой электронной почты Агент управления (ADMA) должен взаимодействовать с AD и Exchange. Это означает, что нужно настроить параметр подготовки учетных записей в Exchange (это выполняется в правой панели окна Create Management Agent после выбора Configure Extensions, как показано на рис.

 

Рис. Настройка расширенных правил

Надо также не забыть выбрать Select Attributes в панели Management Agent Designer, а затем выбрать требуемые атрибуты в правой панели окна. Чтобы понимать, какие атрибуты выбирать, приводим перечень атрибутов для различных типов объекта. Табл.

 

 

Обновление Exchange 2003 до 2007: ILM 2007 FP1

В ILM 2007 FP1 появилась возможность подготавливать объекты с поддержкой электронной почты Exchange 2007. Как показано на рис. 7, в Агенте управления можно включить подготовку учетных записей в GAL Exchange 2007, выбрав Configure Extensions в левой панели окна Create Management Agent, а затем отметив соответствующий флажок в правой панели. Рис.

 

Создание нестандартного Агента управления

Это заставит ILM 2007 FP1 в вызвать в локальном контексте командлет Update-Recipient для экспорта при завершении процесса подготовки учетных записей. Больше ничего конфигурировать не надо.

Обновление Exchange 2003 до 2007: ILM 2007 FP1 SP1 / FIM 2010

Помимо возможности подготовки объектов с поддержкой электронной почты Exchange 2007, ILM 2007 FP1 SP1 и FIM 2010 позволяют явно задавать сервер Exchange 2007, на котором должна выполняться подготовка. Панель Configure Extensions окна Create Management Agent содержит раскрывающееся меню выбора версии Exchange.

Если выбрать Exchange 2007, откроется текстовое поле, в котором можно ввести имя сервера Exchange 2007 (рис. Этот дополнительный параметр предназначен тем, кто, к примеру, использует брандмауэр и кому требуется более тонко управлять сетевым трафиком. Если оставить поле для имени сервера пустым, командлет самостоятельно найдет Exchange-сервер. Обратите внимание, что если задать сервер и командлет его не найдет, командлет потерпит неудачу и вернет ошибку.

 

Рис. 8 Выбор версии Exchange из раскрывающегося меню в Configure Extensions

Обновление Exchange 2003 или 2007 до Exchange 2010

Как говорилось ранее, ILM 2007 FP1 SP1 и FIM 2010 позволяют создавать объекты с поддержкой электронной почты в Exchange 2010. Поскольку процесс выполняется удаленно средствами Windows PowerShell, необходимо предоставить имя сервера. Как показано на рис. 9, можно выбрать версию Exchange в поле со списком в правой панели окна после выбора Configure Extensions в окне Create Management Agent.

Выберите Exchange 2010 и в открывшемся текстовом поле (рис. 9), введите URI-адрес удаленного сервера PowerShell на Exchange 2010. Имейте в виду, что это поле нельзя оставлять пустым. Значение должно быть в формате http: //<сервер_клиентского_доступа>/powershell.

 

Рис. Обновление Exchange 2003/2007 до Exchange 2010

Exchange 2007 и обновление ILM 2007 FP1 до SP1

Существующие в ILM 2007 FP1 Агенты управления сохранят все свои возможности после обновления до ILM 2007 FP1 SP1 — никакого дополнительного конфигурирования или дополнительных операций не требуется. При желании можно в разделе Configure Extensions указать имя сервера, чтобы задать, к какому Exchange-серверу должен обращаться командлет Update-Recipient, но это необязательно.

Процесс экспорта

После настройки подготовки учетных записей в Exchange в процессе экспорта серверы ILM 2007 и FIM 2010 подключаются к Active Directory и Exchange для создания объектов с поддержкой электронной почты. В разных версиях Exchange этот процесс немного отличается.

Exchange 2003

В Exchange 2003 при подготовке учетных записей ILM 2007 и FIM 2010 полагаются на имеющуюся в Exchange 2003 службу RUS. В процессе экспорта ADMA подключается к доступному контроллеру домена и создает в каталоге объект с поддержкой электронной почты (в соответствии с конфигурацией подготовки учетных записей).

Как говорилось ранее, RUS отслеживает изменения объектов с поддержкой электронной почты в каталоге и завершает процесс подготовки для каждого объекта, созданного ILM 2007 и FIM 2010. И снова Exchange размещает каждый из этих объектов в каталог с минимальным набором атрибутов, необходимых для создания объекта. В таких обстоятельствах RUS применяет к ним политику Exchange и добавляет все атрибуты, необходимые для полноценной работы в Exchange.

Наконец, как и прежде, в процессе подготовки учетных записей в Exchange 2003 ILM 2007 и FIM 2010 должны подключиться к контроллеру домена AD — ни один из серверов не подключается напрямую к Exchange-серверу.

Exchange 2007

Здесь можно практически полностью продублировать информацию из раздела «Несколько слов о подготовке учетных записей», а точнее подраздела, посвященного Exchange 2007, но для удобства повторимся. В Exchange 2007 при подготовке учетных записей серверы ILM 2007 FP1 и FIM 2010 используют командлет Update-Recipient. В процессе экспорта ADMA подключается к доступному или предпочтительному контроллеру домена и создает в каталоге объект с поддержкой электронной почты (как определено конфигурации подготовки учетных записей).

После подготовки в каталоге объекта с поддержкой электронной почты ILM 2007 и FIM 2010 вызывают на сервере ILM/FIM командлет Update-Recipient из командной строки в таком формате:

Update-Recipient -Identity "<ExportedDN>"-Credential <PSCredential> -DomainController <Fqdn>

где заполнители в угловых скобках замещаются, как указано в данном списке:

ExportedDN–This is the Distinguished Name of the recently exported object.
PSCredential–This is replaced with a PowerShell Credential object constructed using the domain, username and password configured for the ADMA.
Fqdn–The actual value for this parameter is the fully qualified domain name of the domain controller to which the recently exported object was written.

Кроме того, ILM 2007 FP1 SP1 и FIM 2010 поддерживают параметр –Server командлета Update-Recipient. Если в Агенте управления задано имя сервера, ILM 2007 FP1 SP1 и FIM 2010 вызывают командлет Update-Recipient из командной строки в таком формате:

Update-Recipient -Identity "<ExportedDN >" -Credential <PSCredential> -
DomainController <Fqdn> -Server <ServerIdParameter>

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

  • ServerIdParameter–The name of the server entered in the Management Agent configuration dialog is put in place of this parameter.

Any errors that occur when initializing or running the PowerShell cmdlet will set the result of the run profile and will be noted in the Application Event Log. For details on specific errors, see the Устранение неполадок section further on in this article.

You can find complete details on theUpdate-Recipient cmdlet for Exchange 2007 in the Microsoft TechNet Exchange Server TechCenter.

Exchange 2010

Как говорилось в посвященном Exchange 2010 подразделе раздела «Несколько слов о подготовке учетных записей», в Exchange 2010 серверы ILM 2007 FP1 SP1 и FIM 2010 используют командлет Update-Recipient. Но в отличие от Exchange 2007, в данном случае командлет выполняется удаленно и непосредственно на Exchange-сервере в среде Windows PowerShell 2.0.

После подготовки в каталоге объекта с поддержкой электронной почты ILM 2007 и FIM 2010 выполняют на сервере Exchange 2010 командлет Update-Recipient из командной строки в таком формате (значения аргументов те же, что и в предыдущем разделе):

Update-Recipient -Identity 
"<ExportedDN>
" -DomainController <Fqdn> 

При открытии удаленного подключения к Exchange-серверу используются учетные данные, сконфигурированные в ADMA, поэтому их не нужно указывать в командной строке.

Any errors that occur when initializing or running the cmdlet will set the result of the run profile and will be put into the Application Event Log. For details on specific errors, see theУстранение неполадок section that follows this one.

You can find complete details on theUpdate-Recipient cmdlet for Exchange 2010  in the Microsoft TechNet Exchange Server TechCenter.

Устранение неполадок

Any errors that occur when initializing or running the PowerShell cmdlet will set the result of the run profile and will be noted in the application event log. In this section we cover the most frequent errors that occur during export.

Стандартные ошибки

В этом и других примерах курсивом выделен текст, который попадает в процессе экспорта в журнал событий. За текстом ошибки следует объяснение возможной причины (или причин) ее возникновения.

Сообщение:

Тип события: Ошибка
Источник события: MIIServer
Категория события: сервер
ИД события: 6801
.
.
.
Описание: Расширяемое расширение возвращает неподдерживаемый тип ошибки в MIIS. Трассировка стека: Microsoft.MetadirectoryServices.ExtensionException: ExternalEmailAddress — обязательно в MailUser. Почтовый контакт и пользователь должны иметь один и тот же действительный внешний адрес эдектронной почты вt Exch2007Extension.Exch2007ExtensionClass.AfterExportEntryToCd....

Причины:

Это самая популярная ошибка экспорта. Командлет Update-Recipient пытается включить поддержку почты у объекта с указанным различающимся именем. Командлет работает с самыми разными объектами с поддержкой электронной почты, считывая их атрибуты. На конечном этапе командлет пытается преобразовывать объект в MailUser. Эту ошибку обычно возвращает пользовательский объект, у которого отсутствуют или недопустимые почтовые атрибуты, потому что командлету не удается преобразовать его в пользователя с почтовым ящиком. Эта ошибка также наблюдается, когда Агент управления и командлет подключаются к разным контроллерами домена.

Вот перечень возможных причин этой ошибки:

  • Экспорт отсутствующего или недействительного значения атрибута homeMDB. Убедитесь, что значение homeMDB экспортируемого объекта существует и указывает на правильную базу данных почтовых ящиков.
  • Если ошибка наблюдается на Exchange 2010 и homeMDB правильный, тогда скорее всего отсутствует или недействительный msExchHomeServerName. Убедитесь, что значение msExchHomeServerName экспортируемого объекта существует и указывает на правильный сервер Exchange.
  • Это сообщение появляется в Exchange 2007, если на сервере ILM/FIM отсутствуют Средства управления Exchange 2007 SP2 или более поздней версии. Дополнительные сведения см. в статье базы знаний 963679.
  • Это сообщение также появляется в Exchange 2007, если на сервере ILM/FIM не установлены Средства управления Exchange 2007 с накопительным пакетом обновления 4 (Rollup 4). Дополнительные сведения см. в статье базы знаний 949858.

Ошибки Exchange 2007 и ILM 2007 FP1

Сообщение:

Event Type: Error
Event Source: MIIServer
Event Category: Server
Event ID: 6801
.
.
.
Description: The extensible extension returned an unsupported error. The stack trace is: 
Microsoft.MetadirectoryServices.ExtensionException:  System.IO.FileNotFoundException: Could not load file or assembly 'System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified....

Причина:

Это сообщение указывает, что на ILM 2007 сервер FP1 не установлены Средства управления Exchange 2007. ILM 2007 FP1 попытался загрузить командлет Update-Recipient и PowerShell не удалось найти его.

Ошибки Exchange 2007, FIM 2010 и ILM 2007 FP1 SP1

Сообщение:

Тип события: Ошибка
Источник события: MIIServer
Категория события: сервер
ИД события: 6801
.
.
.
Описание: The extensible extension returned an unsupported error. Трассировка стека: Microsoft.MetadirectoryServices.ExtensionException: Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.Admin не установлен на данной машине....

Причина:

Это сообщение появляется, если на ILM 2007 FP1 SP1 не установлены Средства управления Exchange 2007. ILM 2007 FP1 SP1 попытался загрузить командлет Update-Recipient и PowerShell не удалось найти его. Microsoft внесла небольшое изменение в процесс загрузки, поэтому одинаковой ситуации ILM 2007 FP1 SP1 и FIM 2010 возвращают немного отличную ошибку, чем ILM 2007.

Exchange 2010

Сообщение:

Тип события: Ошибка
Источник события: MIIServer
Категория события: сервер
ИД события: 6801
.
.
.
Описание: Расширяемое расширение возвращает неподдерживаемый тип ошибки. Трассировка стека:Microsoft.MetadirectoryServices.ExtensionException: Невозможно загрузить тип 'System.Management.Automation.Runspaces.WSManConnectionInfo' из сборки 'System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=....

Причина:

Это сообщение возвращается, если на сервере ILM 2007 FP1 SP1 не установлена среда Windows PowerShell 2.0. ILM 2007 FP1 SP1 попытался загрузить командлет Update-Recipient удаленно, но не смог открыть сеанс PowerShell, поддерживающий удаленное выполнение.

Сообщение:

Тип события: Ошибка
Источник события: MIIServer
Категория события: сервер
ИД события: 6801
Описание: Расширяемое расширение возвращает неподдерживаемый тип ошибки. Трассировка стека:Microsoft.MetadirectoryServices.ExtensionException:Microsoft.MetadirectoryServices.ExtensionException: Неверный URI: Невозможно определить URI....
в Exch2010Extension.Exch2010ExtensionClass.BeginExportToCd(String connectTo, String domain, String server, String user, String password)

Причина:

Значение сервера клиентского доступа в диалоговом окне Configure Extensions сервера ILM 2007 FP1 SP1 задано в неправильном формате. Правильный формат: Правильный формат: http://<cas server>/powershell.

Сообщение:

Категория события: сервер
ИД события: 6801
Описание: Расширяемое расширение возвращает неподдерживаемый тип ошибки. Трассировка стека:Microsoft.MetadirectoryServices.ExtensionException:Microsoft.MetadirectoryServices.ExtensionException: Ошибка соединение с удаленным сервером со следующим сообщением: WinRM не может обработать запрос. Следующая ошибка произошла при использовании проверка подлинности Kerberos: Сетевой путь не найден.

Причины:

  • Задано неверное имя пользователя или пароль.
  • Протокол Kerberos использовался без определения метода проверки подлинности или имени пользователя.
  • Kerberos принимает доменные имена пользователей, а задано локальное имя.
  • Основное имя службы не существует для данного имени удаленного компьютера и порта .
  • Клиентский и удаленный компьютеры находятся в разных доменах, между которыми отсутствуют доверительные отношения.

Если перечисленных неполадок нет, а ошибка все равно наблюдается, попробуйте следующее:

  • проверьте журнал событий на предмет событий, связанных с проверкой подлинности;
  • измените метод проверки подлинности и добавьте целевой компьютер в список доверенных узлов WinRM или воспользуйтесь транспортом HTTPS.

Имейте в виду, что компьютеры списка доверенных узлов (TrustedHosts) могут не проходить проверку подлинности. Более подробные сведения о конфигурировании WinRM можно получить, выполнив команду: winrm help config. Дополнительные сведения см. в расдел справки about_Remote_Troubleshooting.

Эта ошибка наблюдается, если сервер клиентского доступа, указанный в окне Configure Extensions сервера ILM 2007 FP1 SP1, неправильный или на сервере клиентского доступа не настроена поддержка удаленного выполнения PowerShell. ILM 2007 FP1 SP1 попытался выполнить командлет PowerShell, но не смог подключиться к удаленному сеансу PowerShell на сервере клиентского доступа.

Анализ ситуации

ILM 2007 и FIM 2010

Подготовка учетных записей Exchange — ключевая функциональность ILM 2007 и FIM 2010 и ADMA. Затратив минимум усилий, можно легко создавать объекты с поддержкой электронной почты в Exchange 2003, 2007 и 2010. Надо помнить, что, если сервер ILM или FIM и Exchange-сервер разделяет брандмауэр, скорее всего потребуется особая настройка, которая может быть неприемлема в существующей среде.

В частности, брандмауэр между сервером Exchange и ILM обычно встречается в среде с лесом ресурсов Exchange. Здесь пользователи входят в систему леса учетных записей, а Exchange-серверы располагаются в лесу ресурсов (отличном от леса AD).

В такой ситуации сервер ILM обычно размещают в лесу учетных записей и для подготовки объектов с поддержкой почты или с почтовыми ящиками в Exchange нужно открыть на брандмауэре порты в дополнение к тем, что требуются для подготовке учетных записей пользователей в AD.

Протоколы и порты

Для подготовки учетных записей в AD серверу ILM нужны перечисленные в таблице порты, а для подготовки объектов пользователей с поддержкой почты или почтовыми ящиками с поддержкой электронной почты в среде AD/Exchange 2007 необходимы дополнительные порты. Табл.

Exchange 2007

Как говорилось ранее, ILM 2007 FP1 использует командлет Update-Recipient при завершении процесса подготовки учетных записей, причем этот командлет применяется на сервере ILM к учетным записям с поддержкой почты или почтовыми ящиками на Exchange 2007. Помимо подключения к контроллеру домена AD, командлету требуется подключение к глобальному каталогу и службе RUS Exchange -сервера. Ситуация дополнительно усложняется тем, что при выполнении на ILM 2007 FP1 командлет Update-Recipient, использует особый алгоритм, выбирающий произвольную службу RUS в среде. Это требует открыть несколько портов RUS на всех Exchange-серверах с RUS (см. рис. 10). (См. рис. 10.)

 

Подготовка учетных записей Exchange 2007 при наличии брандмауэра

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

На контроллере домена и глобальном каталоге с DNS:

 

Табл. На RUS (сервере почтовых ящиков):

Exchange 2010

Как говорилось ранее, ILM 2007 FP1 использует командлет Update-Recipient при завершении процесса подготовки учетных записей, причем этот командлет применяется на сервере ILM к учетным записям с поддержкой почты или почтовыми ящиками на Exchange 2010. В этой версии Exchange все командлеты выполняются удаленно благодаря использованию функциональности удаленного выполнения в PowerShell. Это означает, что в данной ситуации перечень необходимых портов ограничивается теми, что необходимы для удаленного выполнения PowerShell (рис. 11).

 

Подготовка учетных записей Exchange 2010 при наличии брандмауэра

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

На контроллере домена и глобальном каталоге с DNS:

 

На Exchange-сервере клиентского доступа:

Пользовательский сценарий PowerShell

Чуть ниже мы приведем сценарий PowerShell, который находит в указанном домене учетные записи пользователей, у которых нет почтового ящика, и создает для них почтовые ящики. Сценарий выполняется на контроллере домена AD, и его можно запускать по расписанию. Как видно на рис. 12, ILM 2007 FP1 может создавать учетные записи пользователей на контроллере домена AD, используя указанный сценарий PowerShell для включения поддержки почты в учетных записях пользователей.

 

Рис. Подготовка учетных записей Exchange 2007/2010 с применением пользовательского сценария

Обратите внимание, что хотя этот сценарий позволяет включать поддержку почтовых ящиков у пользователей, подготовленных средствами ILM, он работает только с объектами, у которых нет атрибута mailNickname или homeMDB.

$domain = "LDAP://" + "DC=Fabrikam,DC=Com"

# Open a connection object to AD
$root = New-Object System.DirectoryServices.DirectoryEntry($domain)

# Create a query object 
$query = new-Object System.DirectoryServices.DirectorySearcher($root) 

# Construct a filter string to retrive all objects which are not mailenabled or mailbox-#enabled
$filter = "(&(objectClass=user)(!(legacyExchangeDN=*)))"

# Define filter in the query object
$query.filter = $filter
    
#Retrive objects which met the filter property
$objects = $query.findAll()


foreach($usr in $objects)
{       
    $properties = $usr.Properties 
    $DN = $properties.distinguishedname[0]
    $dbLoc = "Fabrikam\First Storage group\Mailbox Database"
    Enable-Mailbox -identity $DN -database $dbLoc

    #more informaton on Enable-mailbox here at 
    #https://technet.microsoft.com/enus/library/aa998251(EXCHG.80).aspx
        
}

Создавать пользователей без атрибута homeMDB или mailNickname можно также одним из двух других способов:

  1. Использование подготовки учетных записей из сценария: задействуйте объект метода StartNewConnector() свойства Connectors Агента управления вместо ExchangeUtils.CreateMailbox().
  2. Использование подготовки учетных записей без использовании кода: не включайте в правило синхронизации назначение начальных значений атрибутов.

При необходимости завершить подготовку учетных записей можно применением политики адресов электронной почты по отношению к части или всем объектам организации Exchange. Этот короткий сценарий применит все политики адресов электронной почты ко всем объектам организации:

Get- EmailAddressPolicy | Update-EmailAddressPolicy

К сожалению, это ресурсоемкая операция, которая может занять несколько минут в крупной организации. В качестве альтернативы можно использовать следующий сценарий (в нем AddressPolicy01 заменяется идентификатором конкретной политики адресов электронной почты), применяющий определенную политику адресов электронной почты ко всем объектам организации:

Update-EmailAddressPolicy -Identity AddressPolicy01

При подготовке группы рассылки в сценарий потребуется добавить код обновления адресных книг организации:

Get- AddressList | Update-AddressList
Get- GlobalAddressList  | Update-GlobalAddressList

Но это ресурсоемкое обновлением, которое также может занять несколько минут. Альтернативный вариант:

Update-AddressList -Identity "All Contacts\AddressList01"
Update-GlobalAddressList -Identity "My Global Address List"

Последний сценарий обновляет только конкретную адресную книгу организации. При использовании сценария All Contacts\AddressList01 надо заменить на идентификатор обновляемой адресной книги, а My Global Address List — на идентификатор обновляемой глобальной адресной книги.

Использование сервера Exchange 2003

Мы рекомендуем использовать ILM 2007 или FIM 2010 и Exchange PowerShell для подготовки учетных записей в Exchange, но корпоративные требования по безопасности могут не разрешать создавать необходимые для этого подключения через брандмауэр. В этом случае подготовку учетных записей можно выполнить, задействовав сервер Exchange 2003.

В среде Exchange 2007 можно параллельно развернуть Exchange 2003, который обеспечит в своем домене наличие службы RUS. Теперь можно использовать ILM 2007 и FIM 2010 для подготовки учетных записей по механизму уже описанному для Exchange 2003 (рис. (См. рис. 13.)

 

Подготовка учетных записей в Exchange 2007 с использованием RUS

RUS обнаружит и завершит подготовку всех объектов с поддержкой электронной почты, экспортированных ILM и FIM, как это делается в модели подготовки учетных записей в Exchange 2003. Служба RUS активизирует контакты и пользователей с поддержкой электронной почты как в Exchange 2007, так и в Exchange 2003. Она же завершит подготовку почтовых ящиков и, если homeMDB указывает на сервер Exchange 2003, подготовит почтовый ящик в Exchange 2003. Если вам нужны только почтовые ящики Exchange 2003 вместе с пользователями с поддержкой электронной почты и контактами и другие описанные здесь методы вам не подходят, можете воспользоваться Exchange 2003.

Однако имейте в виду, что если вы так сделаете, подготовка почтовых ящиков Exchange 2007 будет неполна. Если homeMDB указывает на почтовый ящик Exchange 2007, он будет подготовлен, но не будет содержать все необходимые для Exchange 2007 атрибуты. Почтовые ящики Exchange 2007 нужно подготавливать используя механизмы Exchange 2007. Если нужно подготавливать почтовые ящики Exchange 2007, рекомендуем обратиться к ILM или пользовательским сценариям PowerShell.

You can learn more about Exchange 2003 and Exchange 2007 coexistence in the TechNet article “How to Install Exchange 2007 in an Existing Exchange Server 2003 Organization.”

Рекомендации

Если в среде установлен сервер ILM 2007 FP1 или FIM 2010, задействуйте его для подготовки почтовых ящиков — это не только избавит от выполнения ручных операций по администрированию, но позволит повысить производительность работы конечных пользователей и укрепит безопасность. Однако, как уже говорилось, если между Exchange 2007 и сервером ILM 2007 FP1 размещен брандмауэр, потребуются дополнительные процессы, расширяющие возможности ILM 2007 FP1 или FIM 2010 и Exchange 2007. ILM 2007 FP1 можно использовать для подготовки объектов пользователей или контактов в AD, после чего задействовать PowerShell для включения поддержки почты или почтовых ящиков у созданных средствам ILM объектов. Сценарий PowerShell может помочь в ситуациях, когда, к примеру, корпоративная политика не позволяет предоставлять привилегии администратора получателей Exchange учетной записи службы ILM 2007 или FIM 2010.

* * Хенна Кернани (Henna Kermani) — разработчик в отделе Identity and Security в Microsoft. Живет в Сиэтле на расстоянии 1000 миль от любимого кота, который отказался переезжать с нею.

Аунг Оо (Aung Oo) — архитектор в отделе Public Sector. Аунг живет в Лисбурге, штат Вирджиния, со своей женой Мией.

Роб Уард (Rob Ward) — разработчик в отделе Identity and Security в Microsoft. Ему нравится промозглая погода Северо-запада.

Материалы на подобные темы