次の方法で共有


Exchange Server

ILM 2007 と FIM 2010 を使用して Exchange Server を準備する

Rob Ward、Aung Oo、Henna Kermani

多くの場合、管理者は、企業の Active Directory (AD) と Exchange Server プラットフォームでユーザー、連絡先、およびメールボックスを準備するのに Identity Lifecycle Manager 2007 (ILM 2007) を使用しています。ILM 2007 や Forefront Identity Manager 2010 (FIM 2010) などの ID 管理ツールを使用することで、AD と Exchange Server 環境でアカウントやメールボックスを作成する際に、エラーが発生しやすい手動の作業を削減できます。

ILM 2007 と FIM 2010 では、アカウントとメールボックスの準備を自動化できるだけでなく、ビジネス ロジックを組み込むことができます。この機能により、ユーザーが所属しているビジネス グループや物理的な場所に基づいて特定のサーバーにメールボックスを作成したり、ユーザーの役割に基づいてメールボックスのサイズと制限の初期値を設定したり、空き領域が最も多いメール ストアに新しいユーザーのメールボックスを準備したりすることができます。FIM 2010 では、承認ワークフローやコード不要の準備をはじめとする高度な機能を備えた、より複雑なビジネス ロジックに対応しています。

Exchange 環境における ILM 2007 の最も一般的な実装は、2 つの異なる AD フォレストにあるグローバル アドレス一覧 (CAL) の同期、ユーザーのメールボックスの準備と準備解除、新しいバージョンの Exchange Server にメールを移行するときに 2 つの Exchange Server のエンタープライズ環境を同期することを目的としています。

準備シナリオにおける ILM 2007 と FIM 2010 の実装は、ネットワーク インフラストラクチャ、セキュリティ ポリシー、および Exchange Server の構成によって異なることがあります。このコラムでは、Exchange 環境の準備に、これらの 2 つの製品を使用する方法の概要を紹介しますが、Exchange Server 2003、2007、および 2010 で準備を簡略化する主な機能についても掘り下げて説明します。

アーキテクチャの概要

ILM 2007 と FIM 2010 では、Exchange Server 2003、2007、および 2010 でメールが有効なオブジェクトを作成できます。ただし、すべてのバージョンの Exchange Server で、すべてのバージョンの ILM がサポートされているわけではないことに注意してください。次の表にサポート状況の概要を示します。

互換性に関する詳細については、「Exchange Server のサポート一覧」を参照してください。

Exchange Server の準備を有効にするには、メールが有効なオブジェクトを作成する準備プロセスを設定し、Active Directory および Exchange Server と通信してメールが有効なオブジェクトを準備する Active Directory 管理エージェント (ADMA) を構成する必要があります。

準備プロセスの概要

Exchange Server 2003

ILM 2007 と FIM 2010 では、Exchange Server 2003 の準備プロセスで Exchange Server の受信者更新サービス (RUS) を使用しています。エクスポート時には、ADMA は、利用可能なドメイン コントローラーまたは優先ドメイン コントローラーに接続し、(準備の構成で指定されたとおりに) メールが有効なオブジェクトをディレクトリに直接追加します。

RUS では、ディレクトリに追加されたメールが有効なオブジェクトの変化の状態を監視して、ILM 2007 と FIM 2010 で作成されたメールが有効なオブジェクトごとに準備プロセスを完了します。Exchange Server では、このような各オブジェクトを、オブジェクトの作成に必要な最小限の属性と共にディレクトリに書き込みます。RUS では、オブジェクトに Exchange Server のポリシーを適用し、Exchange Server の全機能をサポートするのに必要な属性をオブジェクトに追加します。

Exchange Server 2003 の準備をする際、ILM 2007 と FIM 2010 で直接接続を確立する必要があるのは Active Directory ドメイン コントローラー (ADDC) で、Exchange Server に対して直接接続を確立する必要はありません (図 1 参照)。

 

図 1 Exchange Server 2003 の準備

Exchange Server 2007

ILM 2007 Feature Pack 1 (ILM 2007 FP1) と FIM 2010 では、Exchange Server 2007 の準備プロセスで Windows PowerShell の Update-Recipient コマンドレットを使用しています (このコマンドレットは、Exchange Server 2007 管理ツールに収録されています)。エクスポート時には、ADMA は、利用可能なドメイン コントローラーまたは優先ドメイン コントローラーに接続し、(準備の構成で指定されたとおりに) メールが有効なオブジェクトをディレクトリに追加します。

メールが有効なオブジェクトをディレクトリに準備したら、ILM 2007 と FIM 2010 では、ILM サーバーまたは FIM サーバーで Update-Recipient コマンドレットを実行します。

 

図 2 Exchange Server 2007 の準備

Exchange Server 2007 の準備 (図 2 参照) では、ILM 2007 FP1 以上または FIM 2010 が必要です。また、次の要件を満たしている必要があります。

  • ILM 2007 または FIM 2010 の同期サービス アカウントには、ドメイン アカウントを使用する必要があります。
  • ILM 2007 FP1 管理エージェント (MA) のサービス アカウントには、Exchange Recipient Administrators グループのメンバー アカウントを使用する必要があります。
  • ILM 2007 または FIM 2010 の同期サーバーは、ドメインに参加している必要があります。ただし、参加先のドメインは、Exchange Server の準備プロセスが行われるドメインでなくてもかまいません。
  • ILM サーバーまたは FIM サーバーには、Windows PowerShell 1.0 がインストールされている必要があります。
  • ILM サーバーまたは FIM サーバーには、Exchange 管理ツールがインストールされている必要があります。

Exchange Server 2010

ILM 2007 Feature Pack 1 Service Pack 1 (ILM 2007 FP1 SP1) と FIM 2010 では、Exchange Server 2010 の準備プロセスで Windows PowerShell の Update-Recipient コマンドレットを使用しています。ただし、Exchange Server 2007 のプロセスとは異なり、コマンドレットは、Windows PowerShell 2.0 とリモート実行を使用して Exchange Server で直接実行されます (図 3 参照)。

 

図 3 Exchange Server 2010 の準備

Exchange Server 2010 の準備では、ILM 2007 FP1 SP1 以上または FIM 2010 が必要です。また、次の要件を満たしている必要があります。

  • ILM 2007 または FIM 2010 の同期サービス アカウントには、ドメイン アカウントを使用する必要があります。
  • ILM 2007 FP1 管理エージェント (MA) のサービス アカウントには、Exchange Recipient Administrators グループのメンバー アカウントを使用する必要があります。
  • ILM 2007 または FIM 2010 の同期サーバーは、ドメインに参加している必要があります。ただし、参加先のドメインは、Exchange Server の準備プロセスが行われるドメインでなくてもかまいません。
  • ILM サーバーまたは FIM サーバーには Windows PowerShell 2.0 がインストールされている必要があり、Exchange Server 2010 クライアント アクセス サーバー (CAS) には Windows PowerShell 2.0 がインストールされ、リモート アクセスできるように構成されている必要があります。

準備

Exchange Server の準備を有効にするには、スクリプトによる準備かコード不要の準備のいずれかを使用して、メールが有効なオブジェクトを作成するプロセスを構成する必要があります。次の表に、FIM 2010 とさまざまなバージョンの ILM でサポートされている準備の種類を示します。

ExchangeUtils クラスを使用したスクリプトによる準備

ExchangeUtils クラスには、コネクター スペースに新しいメール オブジェクトを作成する際に使用できる一連のユーティリティ メソッドが用意されています。メールボックスを作成するには、ユーザー オブジェクトには少なくとも次の属性が必要です。

  • DN: AD サーバーでオブジェクトを一意に識別する文字列です。
  • mailNickname: Exchange Server で、メールが有効なオブジェクトを識別するのに使用するエイリアスです。
  • homeMDB: 受信者のメールボックス ストアの URL です。

これらの属性を 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)
        End If

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

Visual C# .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 クラスの詳細については、このページ (英語) を参照してください。また、ExchangeUtils クラスの使用例については、このページ (英語) を参照してください。

Exchange Server 2007 のスクリプトによる準備の要件は、Exchange Server 2003 と同じです。既存の Exchange Server 2003 のメールが有効なオブジェクトのスクリプトによる準備の構成は、そのまま Exchange Server 2007 の準備プロセスで使用できます。ただし、Exchange Server 2010 では、msExchHomeServerName 属性の属性フローを追加する必要があります。詳細については、このコラムの「Exchange Server 2010 と msExchHomeServerName 属性」で説明します。

スクリプトによる準備

ExchangeUtils クラスには、メールが有効なオブジェクトを簡単に作成できるメソッドが用意されていますが、準備プロセスを厳密に制御しなければならないことがあります。ExchangeUtils クラスのすべてのメソッドでは CSEntry オブジェクトが返されるので、このオブジェクトに追加の属性を設定できます。ExchangeUtils クラスでメールが有効なオブジェクトを作成して、返された CSEntry オブジェクトを使用して追加の属性を指定できるようにすることをお勧めします。

既定のパスワードが設定されていてログインできる、メールボックスが有効なユーザーを作成するには、ExchangeUtils クラスを使用してメールボックスを作成し、返された CSEntry オブジェクトを使用して unicodePwd 属性と userAccountControl 属性を追加します。この Visual Basic .NET と Visual C# の例を次に示します。

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 C# .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 Server で、メールが有効なオブジェクトを識別するのに使用するエイリアスです。
  • homeMDB: 受信者のメールボックス ストアの URL です。

既定のパスワードが設定されていてログインできる、メールボックスが有効なユーザーを作成するには、図 4 のように unicodePwd 属性と userAccountControl 属性を初期フローに含める必要があります。

 

図 4 送信属性フローの構成

Exchange Server 2010 と msExchHomeServerName 属性

Exchange Server 2010 の準備では、メールが有効なユーザー オブジェクトを作成するのに、msExchHomeServerName という追加の属性が必要になり、この属性は準備コードで指定する必要があります。Exchange Server では、この属性を使用して、メールが有効なオブジェクト宛てのメールの配信先を特定します。

ExchangeUtils クラスを使用する準備コードまたは独自に作成した準備コードで msExchHomeServerName 属性を指定するには、次の例の "Add msExchHomeServerName" というコメント行の後にある 1 行のコードを追加する必要があります。

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 C# .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 属性を指定するには、この属性を初期フローに追加します (図 5 参照)。

 

図 5 送信属性フローの初期構成

管理エージェントの構成

メールが有効なオブジェクトを適切に準備するには、Active Directory 管理エージェントが AD および Exchange Server と連動する必要があります。これには、Exchange Server の準備オプションを設定する必要があります。このオプションは、[Create Management Agent] (管理エージェントの作成) ダイアログ ボックスで [Configure Extensions] (拡張機能の構成) を選択した後に、右ウィンドウで設定できます (図 6 参照)。

 

図 6 規則の拡張機能を構成する

また、[Management Agent Designer] (管理エージェント デザイナー) ウィンドウで [Select Attributes] (属性の選択) を選択し、ダイアログ ボックスの右ウィンドウで必要な属性を選択する必要があります。ここで選択するもののガイドとして、さまざまな種類のオブジェクトの属性を示す図を用意しましたので、ご活用ください。

 

 

ILM 2007 FP1 を使用して Exchange Server 2003 から 2007 にアップグレードする

ILM 2007 FP1 では、Exchange Server 2007 のメールが有効なオブジェクトを準備する機能が追加されました。[Create Management Agent] (管理エージェントの作成) ダイアログ ボックスの左ウィンドウで [Configure Extensions] (拡張機能の構成) を選択し、右ウィンドウで適切なチェック ボックスをオンにすることによって、Exchange Server 2007 GAL の管理エージェントを準備できます (図 7 参照)。

 

図 7 カスタム管理エージェントを作成する

この設定により、ILM 2007 FP1 では、エクスポート時にローカルで Update-Recipient コマンドレットを実行して、準備プロセスを完了します。これ以外の構成は必要ありません。

ILM 2007 FP1 SP1 または FIM 2010 を使用して Exchange Server 2003 から 2007 にアップグレードする

ILM 2007 FP1 SP1 と FIM 2010 を使用すると、Exchange Server 2007 のメールが有効なオブジェクトを準備できるだけでなく、準備プロセスを実行する Exchange Server 2007 を明示的に指定できます。[Create Management Agent] (管理エージェントの作成) ダイアログ ボックスの [Configure Extensions] (拡張機能の構成) には、Exchange Server のバージョンを選択するドロップダウン メニューが用意されています。

[Exchange 2007] を選択すると、Exchange Server 2007 のサーバー名を入力するボックスが表示されます (図 8 参照)。この追加の設定は、ファイアウォールを使用していて、ネットワーク トラフィックを厳密に制御する必要がある管理者のために用意されているものです。サーバー名を入力しないと、コマンドレットによって Exchange Server が検出されます。指定したサーバーに接続できない場合、コマンドレットはエラーになります。

 

図 8 Configure Extensions (機能拡張の構成) でドロップダウン メニューを使用して Exchange Server のバージョンを選択する

Exchange Server 2003 または 2007 から Exchange Server 2010 にアップグレードする

既に説明したように、ILM 2007 FP1 SP1 と FIM 2010 では、Exchange Server 2010 のメールボックスが有効なオブジェクトを準備できます。準備プロセスでは、Windows PowerShell 経由のリモート実行を使用するので、サーバー名を指定する必要があります (このことについては「準備プロセスの概要」の「Exchange Server 2010」で説明しました)。[Create Management Agent] (管理エージェントの作成) ダイアログ ボックスの左ウィンドウで [Configure Extensions] (拡張機能の構成) をクリックした後に、ドロップダウン メニューから Exchange Server のバージョンを選択できます (図 9 参照)。

[Exchange 2010] を選択し、表示されたテキスト ボックスに Exchange Server 2010 のリモート PowerShell (RPS) サーバーの URI を入力します。このボックスには、必ずデータを入力する必要があります。また、値は http://<cas server>/powershell という形式で指定する必要があります。

 

図 9 Exchange Server 2003 または 2007 から Exchange Server 2010 にアップグレードする

Exchange Server 2007 を使用しているときに ILM 2007 FP1 を SP1 にアップグレードする

ILM 2007 FP1 SP1 にアップグレードした後も、ILM 2007 FP1 で展開した既存の管理エージェントは引き続き動作します。追加の構成や手順は必要ありません。必要に応じて、[Configure Extensions] (拡張機能の構成) の設定でサーバー名を指定して、Update-Recipient コマンドレットで接続する Exchange Server を制御することができます。ただし、これは必須の入力項目ではありません。

エクスポート プロセス

ILM 2007 と FIM 2010 で Exchange Server の準備の設定を構成したら、これらの製品では、エクスポート時に Active Directory と Exchange Server に接続してメールが有効なオブジェクトを作成します。このプロセスは、Exchange Server のバージョンによって若干異なります。

Exchange Server 2003

ILM 2007 と FIM 2010 では、 Exchange Server 2003 の準備プロセスで Exchange Server 2003 の RUS 機能を使用します。エクスポート時には、ADMA は、利用可能なドメイン コントローラーに接続し、(準備の構成で指定されたとおりに) メールが有効なオブジェクトをディレクトリに追加します。

既に説明したように、RUS では、ディレクトリに追加したメールが有効なオブジェクトの変化の状態を監視し、ILM 2007 と FIM 2010 で作成されたオブジェクトごとに準備プロセスを完了します。繰り返しになりますが、Exchange Server では、このような各オブジェクトを、オブジェクトの作成に必要な最小限の属性と共にディレクトリに書き込みます。そのため、RUS では、オブジェクトに Exchange Server のポリシーを適用し、Exchange Server の全機能をサポートするのに必要な属性をオブジェクトに追加します。

また、Exchange Server 2003 の準備で、ILM 2007 と FIM 2010 が接続する必要があるのは ADDC で、Exchange Server に対して直接接続を確立する必要はありません。

Exchange Server 2007

このセクションで提供する情報は、「準備プロセスの概要」の「Exchange Server 2007」で提供した情報と同じですが、便宜上、再度同じ情報を提供します。ILM 2007 FP1 と FIM 2010 では、Exchange Server 2007 の準備プロセスで Update-Recipient コマンドレットを使用しています。エクスポート時には、ADMA は、利用可能なドメイン コントローラーまたは優先ドメイン コントローラーに接続し、(準備の構成で指定されたとおりに) メールが有効なオブジェクトをディレクトリに追加します。

メールが有効なオブジェクトをディレクトリに準備したら、ILM 2007 と FIM 2010 では、ILM サーバーまたは FIM サーバーで Windows PowerShell の Update-Recipient コマンドレットを実行します。これには次のコマンド ラインを使用します。

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

山かっこで囲まれている文字列はプレースホルダーで、次の値に置き換える必要があります。

  • ExportedDN: 最後にエクスポートされたオブジェクトの識別名です。
  • PSCredential: ADMA 用に構成されたドメイン、ユーザー名、およびパスワードを使用して作成された Windows PowerShell の Credential オブジェクトに置き換えます。
  • Fqdn: このパラメーターの実際の値は、最後にエクスポートされたオブジェクトが書き込まれたドメイン コントローラーの完全修飾ドメイン名です。

また、ILM 2007 FP1 SP1 と FIM 2010 では、Update-Recipient コマンドレットで –Server パラメーターをサポートしています。Server パラメーターの値で MA が構成されている場合、ILM 2007 FP1 SP1 と FIM 2010 は、次のコマンド ラインを使用して、ILM サーバーまたは FIM サーバーで Update-Recipient コマンドレットを実行します。

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

山かっこで囲まれている文字列はプレースホルダーで、先ほど説明した値と次の値に置き換える必要があります。

  • ServerIdParameter: このパラメーターの代わりに管理エージェントの構成ダイアログ ボックスで指定したサーバー名を入力します。

Windows PowerShell を初期化または実行する際に発生したエラーは、実行プロファイルの結果を設定し、アプリケーション イベント ログに記録されます。具体的なエラーの詳細については、このコラムの「トラブルシューティング」を参照してください。

Exchange Server 2007 の Update-Recipient コマンドレットに関する詳細については、Microsoft TechNet Exchange Server TechCenter で「Update-Recipient」を参照してください。

Exchange Server 2010

「準備プロセスの概要」の「Exchange Server 2010」で説明したように、ILM 2007 FP1 SP1 と FIM 2010 では、Exchange Server 2010 の準備プロセスで Update-Recipient コマンドレットを使用しています。ただし、Exchange Server 2007 のプロセスとは異なり、コマンドレットは、Windows PowerShell 2.0 とリモート実行を使用して Exchange Server で直接実行されます。

ディレクトリにメールが有効なオブジェクトを準備したら、ILM 2007 FP1 SP1 と FIM 2010 では、次のコマンド ラインを使用して Exchange Server 2010 サーバーで Update-Recipient コマンドレットをリモートで実行します (この際、山かっこで囲まれている文字列は前述の値に置き換えます)。

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

ADMA で構成された資格情報は、Exchange Server へのリモート接続を確立するときに使うので、コマンド ラインで指定する必要はありません。

Windows PowerShell を初期化または実行する際に発生したエラーは、実行プロファイルの結果を設定し、アプリケーション イベント ログに記録されます。具体的なエラーの詳細については、このコラムの次のセクション「トラブルシューティング」を参照してください。

Exchange Server 2010 の Update-Recipient コマンドレットに関する詳細については、Microsoft TechNet Exchange Server TechCenter で「Update-Recipient」を参照してください。

トラブルシューティング

Windows PowerShell を初期化または実行する際に発生したエラーは、実行プロファイルの結果を設定し、アプリケーション イベント ログに記録されます。このセクションではエクスポート時によく発生するエラーを紹介します。

一般的なエラー

これ以降で紹介するトラブルシューティングの例では、エクスポート時にイベント ログに記録されるエラー メッセージを表すテキストは斜体表記で示します。エラー メッセージの後に続く、通常の (斜体ではない) テキストは、エラーの原因です。

メッセージ

Event Type: Error
Event Source: MIIServer
Event Category: Server
Event ID: 6801
.
.
.
Description: The extensible extension returned an unsupported error in MIIS. The stack trace is: Microsoft.MetadirectoryServices.ExtensionException: ExternalEmailAddress is mandatory on MailUser.The mail contact and mail user must have a valid external e-mail address. at Exch2007Extension.Exch2007ExtensionClass.AfterExportEntryToCd....

原因

これはエクスポート時に発生する最も一般的なエラーです。Update-Recipient コマンドレットでは、指定の DN を持つオブジェクトのメールを有効にしようとします。このコマンドレットでは、オブジェクトの属性を調査することで、さまざまなメールが有効なオブジェクトを操作し、最後に、オブジェクトを MailUser に変換します。メールボックスを作成するのに必要な属性が不足していたり、無効な属性が含まれている場合、Update-Recipient コマンドレットでは、オブジェクトをメールが有効なユーザーに変換できないため、このエラーが返されます。このエラーは、MA と Update-Recipient コマンドレットで通信するドメイン コントローラーが異なる場合にも発生することがあります。

このエラーは、次の問題のいずれかが原因で発生している可能性が高いと考えられます。

  • homeMDB 属性が不足しているか無効なオブジェクトをエクスポートしました。エクスポートしたオブジェクトに homeMDB 属性が存在し、有効なメールボックス データベースが指定されていることを確認します。
  • このエラーが Exchange Server 2010 で発生し、homeMDB 属性の値に問題がない場合は、msExchHomeServerName 属性が不足しているか、無効である可能性が高いと考えられます。エクスポートしたオブジェクトの msExchHomeServerName 属性の値が存在し、有効な Exchange Server が指定されていることを確認します。
  • Exchange Server 2007 SP2 以降の Exchange 管理ツールが ILM サーバーまたは FIM サーバーにインストールされていない場合には、Exchange Server 2007 でも、このエラー メッセージが発生することがあります。詳細については、KB 記事 963679 (英語) を参照してください。
  • また、ILM サーバーまたは FIM サーバーに Exchange Server 2007 の更新プログラムのロールアップ 4 以降がインストールされていない場合にも、Exchange Server 2007 でこのエラーが発生することがあります。詳細については、KB 記事 949858 (英語) を参照してください。

Exchange Server 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 Server 2007 の管理ツールがインストールされていない場合に発生します。ILM 2007 FP1 で、Update-Recipient コマンドレットを読み込もうとしたときに、Windows PowerShell でコマンドレットで管理ツールが検出されなかったことが原因です。

Exchange Server 2007、FIM 2010、および ILM 2007 FP1 SP1 のエラー

メッセージ

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: Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.Admin is not installed on the machine....

原因

このメッセージは、ILM 2007 FP1 SP1 サーバーに Exchange Server 2007 の管理ツールをインストールしていない場合に発生します。ILM 2007 FP1 SP1 で、Update-Recipient コマンドレットを読み込もうとしたときに、Windows PowerShell でコマンドレットで管理ツールが検出されなかったことが原因です。マイクロソフトでは、読み込み処理に小さな変更を加えました。そのため、同じ状況下でも、ILM 2007 FP1 SP1 と FIM 2010 では、ILM 2007 とは若干異なるメッセージが表示されます。

Exchange 2010

メッセージ

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: Could not load type 'System.Management.Automation.Runspaces.WSManConnectionInfo' from assembly '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 コマンドレットを読み込んで実行しようとしましたが、リモート実行をサポートする Windows PowerShell セッションを開くことができませんでした。

メッセージ

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:Microsoft.MetadirectoryServices.ExtensionException: Invalid URI: The format of the URI could not be determined....
at Exch2010Extension.Exch2010ExtensionClass.BeginExportToCd(String connectTo, String domain, String server, String user, String password)

原因

ILM 2007 FP1 SP1 の [Configure Extensions] (拡張機能の構成) ダイアログ ボックスで指定した CAS サーバーの値が適切な形式になっていません。適切な形式は、http://<cas server>/powershell です。

メッセージ

Event Category: Server
Event ID: 6801
Description: The extensible extension returned an unsupported error. The stack trace is:Microsoft.MetadirectoryServices.ExtensionException:Microsoft.MetadirectoryServices.ExtensionException: Connecting to remote server failed with the following error message : WinRM cannot process the request. The following error occured while using Kerberos authentication: The network path was not found.

原因

  • 無効なユーザー名またはパスワードを指定しました。
  • 認証方法またはユーザー名を指定せずに Kerberos 認証を使用しました。
  • ローカル ユーザー名を指定しました。Kerberos 認証ではドメイン ユーザー名を受け付けますが、ローカル ユーザー名は受け付けません。
  • リモート コンピューター名とポートのサービス プリンシパル名が存在しません。
  • クライアントとリモート コンピューターが異なるドメインに存在し、2 つのドメイン間に信頼関係がありません。

上記の問題を確認したら、次の操作を試してみてください。

  • 認証に関するイベントが記録されていないかどうかイベント ビューアーを確認する
  • 認証方法を変更し、接続先のコンピューターを WinRM の TrustedHosts 構成設定に追加するか、または HTTPS トランスポートを使用する

TrustedHosts の一覧に含まれるコンピューターは認証されない可能性があることに注意してください。WinRM の構成の詳細については、「winrm help config」というコマンドを実行してヘルプ情報を参照してください。詳細については、ヘルプ トピック「about_Remote_Troubleshooting」を参照してください。

このエラー メッセージは、ILM 2007 FP1 SP1 の [Configure Extensions] (拡張機能の構成) ダイアログ ボックスで入力した CAS サーバーの値が適切でないか、Windows PowerShell のリモート実行に対応するように CAS サーバーを構成していない場合に発生します。ILM 2007 FP1 SP1 では、リモートで Update-Recipient コマンドレットを読み込んで実行しようとしましたが、CAS サーバーの Windows PowerShell のリモート セッションに接続できませんでした。

考慮事項

ILM 2007 と FIM 2010

Exchange Server の準備は、ILM 2007、FIM 2010、および ADMA の主要機能です。最低限の構成で、Exchange Server 2003、2007、および 2010 のメールが有効なオブジェクトを簡単に準備できます。Exchange Server と ILM サーバーまたは FIM サーバーの間にファイアウォールがあるかどうかを意識する必要はなく、展開で許容できない構成は後から調整できます。

たとえば、Exchange Server と ILM サーバーの間にファイアウォールを実装することは、特に Exchange Server でリソース フォレストを実装する場合に一般的です。この構成では、ユーザーがアカウント フォレストにログインし、Exchange Server がリソース フォレスト (異なる AD フォレスト) でホストされている必要があります。

通常、このシナリオでは、アカウント フォレストに ILM サーバーを実装します。そのため、Exchange Server にメールが有効なオブジェクトまたはメールボックスが有効なオブジェクトを準備するには、AD ユーザー アカウントの準備に必要なファイアウォール ポート以外に、開かなければならないポートがあります。

通信プロトコルと通信ポート

ILM では、AD にアカウントを準備するのに次表のポートを使用しますが、AD と Exchange Server 2007 環境にメールまたはメールボックスが有効なユーザー オブジェクトを準備するためには追加のポートが必要になります。

Exchange Server 2007

既に説明したように、ILM 2007 FP1 では、準備プロセスで Windows PowerShell の Update-Recipient コマンドレットを使用して、Exchange Server 2007 にメールまたはメールボックスが有効なアカウントを作成します。このコマンドレットでは、AD ドメイン コントローラーへの接続に加えて、グローバル カタログと Exchange RUS サーバーへの接続も必要になります。ILM 2007 FP1 で Update-Recipient コマンドレットを使用すると、RUS を選択するアルゴリズムにより、環境内の任意の RUS サーバーが選択される可能性があるため、このシナリオは、さらに複雑になります。この操作を可能にするには、すべての Exchange RUS サーバーに対して、さまざまな RUS ポートを開く必要があります (図 10 参照)。

 

図 10 ファイアウォールがある場合の Exchange Server 2007 の準備

次の表に、Exchange Server 2007 環境でメールまたはメールボックスが有効なアカウントを準備するために開く必要があるファイアウォール ポートを示します。

DNS で DC/GC に接続する場合

 

RUS (メールボックス サーバー) に接続する場合

Exchange Server 2010

既に説明したように、ILM 2007 FP1 では、準備プロセスで Windows PowerShell の Update-Recipient コマンドレットを使用し、ILM サーバーでコマンドレットを実行して、Exchange Server 2010 にメールまたはメールボックスが有効なアカウントを作成します。Exchange Server 2010 では、Windows PowerShell のリモート実行機能を使用して、すべてのコマンドレットをリモートで実行できます。つまり、このシナリオで必要なポートは、Windows PowerShell をリモートで実行する必要がある場合にのみ開く必要があります (図 11 参照)。

 

図 11 ファイアウォールがある場合の Exchange Server 2010 の準備

次の表に、Exchange Server 2010 環境でメールまたはメールボックスが有効なアカウントを準備するために開く必要があるファイアウォール ポートを示します。

DNS で DC/GC に接続する場合

 

CAS (メールボックス サーバー) に接続する場合

Windows PowerShell のカスタム スクリプト

このセクションでは、指定のドメインで、現在メールボックスが有効になっていないユーザー アカウントを検出し、アカウントのメールボックスを有効にする Windows PowerShell を紹介します。このスクリプトは、AD ドメイン コントローラーで実行する必要がありますが、タスク スケジューラーを使用して実行時間を設定できます。図 12 のとおり、ILM 2007 FP1 でも AD ドメイン コントローラーにユーザー アカウントを準備することは可能で、Windows PowerShell スクリプトを使用してユーザー アカウントのメールを有効にしています。

 

図 12 Exchange Server 2007 と 2010 を準備するスクリプト

このスクリプトを使用して、ILM で準備されたユーザーのメールボックスを有効にすることはできますが、このスクリプトは homeMDB 属性または mailNickname 属性がないオブジェクトに対してしか機能しない点に注意してください。

$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. スクリプトによる準備を使用する場合: ExchangeUtils.CreateMailbox() の代わりに、管理エージェントの Connectors プロパティで StartNewConnector() メソッド オブジェクトを使用します。
  2. コード不要の準備を使用する: 同期規則の初期フローに属性を含めないようにします。

オプションで、Exchange 組織の一部またはすべてのオブジェクトに電子メール アドレス ポリシーを強制して、準備を完了することができます。次の短いスクリプトを実行すると、Exchange 組織の全オブジェクトに、すべての電子メール アドレス ポリシーが強制されます。

Get- EmailAddressPolicy | Update-EmailAddressPolicy

残念ながら、これはコストのかかる更新処理で、環境の複雑度によっては、数分かかることがあります。代わりに、次のスクリプトを使用して、Exchange 組織の全オブジェクトに特定の電子メール アドレス ポリシーを強制できます (AddressPolicy01 を、強制する電子メール アドレス ポリシーの ID に置き換えます)。

Update-EmailAddressPolicy -Identity AddressPolicy01

配布グループを準備する場合は、Exchange 組織のアドレス帳を更新する追加のスクリプトが必要になります。次のスクリプトを実行すると、Exchange 組織のすべてのアドレス帳が更新されます。

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

ですが、これもコストのかかる更新処理で、環境の複雑度によっては、数分かかることがあります。このスクリプトの代わりに、次のスクリプトを使用できます。

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

このスクリプトでは、Exchange 組織の特定のアドレス帳だけを更新します。このスクリプトを使用するには、All Contacts\AddressList01 を、更新するアドレス帳の ID に変更し、My Global Address List を更新するグローバル アドレス一覧の ID に変更します。

Exchange Server 2003 サーバーを活用する

ILM 2007 または FIM 2010 と Exchange Server の Windows PowerShell を使用して、Exchange Server の準備を有効にすることをお勧めします。ただし、企業のセキュリティ要件によっては、ファイアウォール経由で必要な通信を行えないことがあります。このような場合には、Exchange Server 2003 サーバーを使用して Exchange Server の準備を行えます。

Exchange Server 2007 の展開については、Exchange Server 2003 と Exchange Server 2007 を並行して実行し、Exchange Server 2003 で RUS が配置されているドメインで RUS 機能を実現できます。このように構成すると、ILM 2007 と FIM 2010 では、Exchange Server 2003 の準備モデルを使用して Exchange Server の準備プロセスを行えます (図 13 参照)。

 

図 13 RUS を使用した Exchange Server 2007 の準備

RUS では、Exchange Server 2003 の準備モデルと同じように、ILM と FIM でエクスポートされたメールが有効なオブジェクトを特定して準備を完了します。RUS では、Exchange Server 2003 と 2007 の両方について、メールが有効な連絡先とユーザーを有効にします。また、メールボックスの準備も行います。homeMDB 属性で Exchange Server 2003 が指定されている場合は、Exchange Server 2003 のメールボックスを準備します。必要なものが、メールが有効なユーザー、メールが有効な連絡先、および Exchange Server 2003 のメールボックス (Exchange Server 2007 のメールボックスは必要ない) で、このコラムで紹介した他の手順で対応できない場合は、Exchange Server 2003 の使用を検討してください。

ただし、Exchange Server 2003 を使用する場合、Exchange Server 2007 メールボックスの準備は不完全なものになります。homeMDB 属性で Exchange Server 2007 のメールボックスが指定されている場合、メールボックスは準備されますが、Exchange Server 2007 で必要なすべての属性が含まれません。Exchange Server 2007 のメールボックスは、Exchange Server 2007 の準備メカニズムを使用して準備する必要があります。ご使用のソリューションで、Exchange Server 2007 メールボックスを準備する必要がある場合は、ILM または Windows PowerShell のカスタム スクリプトの使用を検討してください。

Exchange Server 2003 と 2007 の共存の詳細については、TechNet の記事「Exchange 2007 を既存の Exchange Server 2003 組織にインストールする方法」を参照してください。

推奨事項

ILM 2007 FP1 または FIM 2010 を使用すると、手動による管理作業を削減できるだけでなく、エンド ユーザーの生産性を向上して、セキュリティを強化できます。ご使用の環境で、これらの製品が展開されている場合は、これらの製品をメールボックスの準備に使用することをお勧めします。既に説明したように、Exchange Server 2007 と ILM 2007 FP1 サーバーの間にファイアウォールが必要な場合は、ILM 2007 FP1 または FIM 2010 と Exchange Server 2007 の機能を補強するために、外部プロセスが必要になることがあります。ILM 2007 FP1 を使用して AD にユーザー オブジェクトまたは連絡先オブジェクトを準備してから、Windows PowerShell スクリプトを使用して、ILM で準備したオブジェクトのメールまたはメールボックスを有効にすることもできます。Windows PowerShell スクリプトは、企業で施行しているポリシーにより、ILM 2007 または FIM 2010 で使用するサービス アカウントに Exchange 受信者管理者の権限を与えられない場合に役立ちます。

Henna Kermani は、マイクロソフトの Identity and Security 部門で開発者として働いています。彼女はシアトルに住んでいますが、以前に飼っていた猫は引っ越すことを嫌がり 1,600 km 離れたところにいます。

Aung Oo は、マイクロソフトの公共部門である Civilian Practice でアーキテクトとして働いています。彼は、妻の Mya とバージニア州のリースバーグに住んでいます。

Rob Ward は、マイクロソフトの Identity and Security 部門で開発者として働いています。彼は、霧雨が多いアメリカ北西部の気候を気に入っています。

関連コンテンツ