SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Exchange 2007 → 2010 への移行時のパブリックフォルダのあれこれ – その 1 –

leave a comment

最近は Exchange 案件に携わることが多く、Exchange 2010 への移行を担当することもちらほらと。

2003 → 2010 への移行は自習書があるのですが、2007 からの移行に関しては自習書がないため、手探りで
勉強をしているところです。

私の Exchange のスキルのベースは Exchange 2007 + Outlook 2007 の環境を構築して独学で勉強をしたものなので、
パブリックフォルダが苦手なんですよね…。
勉強を開始した当初は自分が Exchange に携わる時は Outlook 2007 が一般的だろうと思っていたのですが、実際には
そんなこともなく XP + Outlook 2003 の組み合わせはまだまだ現役ですよね。
そのため、Exchange 2010 を使用する場合には情報共有目的としてのパブリックフォルダではなく、システム用途としての
パブリックフォルダが必須となります。

勉強をする中で、移行時のパブリックフォルダについてわかったことがありますので複数回に分けて投稿していきたいと思います。
# 今の Microsoft 製品の表記では [パブリックフォルダ] という表記が正しいんですよね。長音記号打ち忘れてます…。
  ある程度書き上げてから気づいたので本投稿は長音記号なしでいきます!

■Exchange 2000 / 2003 → 2007 → 2010 の場合の注意点

既に Exchange 2007 を導入済みの環境を 2010 に移行する場合は、このパターンになっていることが多いと思います。

今回の検証で使用している環境が下図になります。

image 

Exchange 2000 から 2010 にアップグレードする際に 2007 を経由する、一般的なパターンだと思います。
Exchange 2007 へ移行したタイミングで Exchange 2000 を撤去し、Exchange 2010 を追加しています。

[①移行後撤去] のタイミングで Exchange 2000 用に使用していた Windows Server 2003 のドメインコントローラーも
合わせて撤去しています。
# Exchange 2000 では Windows Server 2008 を認証用のドメインコントローラーとして使用することができません。

この状態になった場合、Exchange 2010 のサーバーの [アプリケーション] の [イベント ビューアー]に  [15 分間隔] で
以下のエラーが出力されるようになることがあります。

image

ログの名前:         Application
ソース:           MSExchange Store Driver
日付:            2010/02/06 9:15:26
イベント ID:       1020
タスクのカテゴリ:      MSExchangeStoreDriver
レベル:           エラー
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       EXCHANGE-MBX-01.exchange.local
説明:
ストア ドライバーは、次のエラーが発生したため、パブリック フォルダー レプリケーション メッセージ "Hierarchy (PublicFolderDatabase@exchange.local)" を配信できませんでした: Active Directory ユーザーが見つかりませんでした。
イベント XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchange Store Driver" />
    <EventID Qualifiers="49156">1020</EventID>
    <Level>2</Level>
    <Task>1</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-06T00:15:26.000000000Z" />
    <EventRecordID>2282</EventRecordID>
    <Channel>Application</Channel>
    <Computer>EXCHANGE-MBX-01.exchange.local</Computer>
    <Security />
  </System>
  <EventData>
    <Data>"Hierarchy (PublicFolderDatabase@exchange.local)"</Data>
    <Data>Active Directory ユーザーが見つかりませんでした。</Data>
  </EventData>
</Event>

メールアドレスを見ていただくとわかるかと思いますが、パブリックフォルダ絡みでエラーが発生しています。
# [PublicFolderDatabase@exchange.local] は Exchange 2007 に存在するパブリックフォルダの内部アドレスです。

ここで Exchange 2007 と Exchange 2010 でパブリックフォルダ複製のメッセージ追跡ログを確認してみたいと思います。

[Exchange 2007]

Exchange 2007 から Exchange 2010 のパブリックフォルダに送信されたメッセージをメッセージ追跡ログから確認します。
image

[EventId] が [FAIL] のものは見当たらないですね。
Exchange 2007 から 2010 への配信に関しては問題なさそうです。
[PublicFolderDatabase@exchange.local] が Exchange 2007 にあるパブリックフォルダで
[PublicFolderDatabase2010@exchange.local] が Exchange 2010 にあるパブリックフォルダになります。
# 検証環境の画面サイズ上文字が一部切れています。

image

[Exchange 2010]

続いて Exchange 2010 のメッセージ追跡ログがら Exchange 2010 のパブリックフォルダが受信したメッセージを確認します。

image
出力された結果がこちら。
[FAIL] になっているものがありますね。
Exchange 2007 から受け取ったメッセージの格納でエラーになっているようですね。

image 

[FAIL] になっている行の、[RecepientStatus] を確認すると以下の情報が表示されています。

554 5.6.0 STOREDRV.Deliver.Exception:ObjectNotFoundException; Failed to process message due to a permanent exception with message Active Directory

Exchange 2007 から 2010 宛のパブリックフォルダのメッセージを受信した際に格納しようとして、エラーとなっているようですね。
そのエラーが追跡ログとイベントビューアーに表示されているようです。
Active Directory と出力がありますので AD も関係していそうですね。

■解決策

ここまでの情報をもとに調べてみたところ以下の事象が当てはまるようです。
Public folders not replicating betwen exchange 2007 and 2010
Public Folder Mayhem Exchange 2010

日本語の情報が見当たらない…。
私は英語はとても苦手 (TOEIC の点数びっくりするぐらい低いです) なのですが、日本語の情報が無いので背に腹は変えられません。

情報を読んでくと Exchange 2000 の時に使用していた管理グループの情報が影響して、本現象が発生してしまっているようですね。

私の検証環境には Exchange 2007 → 2010 に移行した環境があるので、見比べてみたいと思います。

[Exchange 2007 → 2010 への移行環境]

Exchange の情報は AD の構成パーティションに格納されています。
それでは、AD DS 上で ADSI エディターを実行して情報を確認してみます。
# こちらの環境は AD DS は 2008 R2 を使用しています。
image

エディターが開いたらメニューバーの [操作] → [接続] を選択します。
image

[既知の名前付けコンテキストを選択する] を [構成] にして、[OK] をクリックします。

image

そうすると構成パーティションを表示できるようになります。
image

Exchange の基本的な構成情報は [CN=Configuraiton, DC=<ドメイン名>, CN=Services, CN=Microsoft Exchange] に格納されています。
image

構成パーティションは、[Enterprise Admins] が管理をするパーティションですが、Exchange 関連のコンテナに関しては、
[Exchange Organization Administrators] もフルコントロールを持っています。
そのため、このグループに入っているユーザーであれば、EMC を介して Exchange の設定を変更し、その変更情報を
AD 上に格納することができるといった流れになっているかと思います。
image

今回、確認したいのは Exchange の管理グループの情報になります。
[CN=Configuraiton, DC=<ドメイン名>, CN=Services, CN=Microsoft Exchange, CN=<Exchange 組織名>, CN=Administrative Groups]
が、管理グループの格納場所になります。

Exchange 2007 以降の場合は管理グループは [Exchange Administrative Group (FYDIBOHF23SPDLT)] が既定です。
# この管理グループ名は、変更できない / してはいけなかったはずです。
image
Exchange 2007 からの移行時は一つしか管理グループがない状態ですね。

[Exchange 2000 → 2007 → 2010 への移行環境] 

それでは Exchange 2000 から移行した環境をみてみましょう。
管理グループが 2 つありますね。
[CN=最初の管理グループ] が Exchange 2000 で使っていた管理グループになります。
# 検証なので初期の管理グループしか使っていませんでした。

image

 

Exchange 2007 → 2010  / Exchange 2000 → 2007 → 2010 へ移行を行った環境では管理グループの設定状況に差があります。
Exchange 2000 の撤去時にアンインストールを実行し、正常に完了しているのですが、管理グループの情報は消えないようですね。

英語サイトの情報をみるとこの Exchange 2000 時代の管理グループの [CN=Servers] が本現象の原因となっているようです。
image

このコンテナは名前変更ができません…。
# 頑張ればできるのでしょうけど。
image

このコンテナの配下が空のことを確認して思い切って削除します。

 image

image image

削除したら次の複製タイミング (デフォルト 15 分間隔) まで小休止です。
私の環境では気づいたら複製が止まっていたので適当なパブリックフォルダを Exchange 2007 で作って
複製要求を Exchange 2007 から 2010 に出してもらいました。

以下が Exchange 2010 の追跡ログの内容です。

9:30 まではパブリックフォルダのメッセージを受信するたびにエラーとなっていたのですが、ADSI エディタで
変更した後 (10:30 すぎぐらい) に受信したパブリックフォルダのメッセージは正常に受信ができています。
image

[MSExchange Store Dirver] のエラーも止まったようです。

image

せっかくなので、追跡ログだけでなく接続ログも見てみたいと思います。

[Exchange 2010]

#Software: Microsoft Exchange Server
#Version: 14.0.0.0
#Log-type: Transport Connectivity Log
#Date: 2010-02-06T00:15:15.496Z
#Fields: date-time,session,source,Destination,direction,description
2010-02-06T00:15:15.496Z,,Transport,,*,"service started,MaxConcurrentSubmissions=20;MaxConcurrentDeliveries=18;MaxSmtpOutConnections=1000"
2010-02-06T00:15:23.512Z,08CC74D89C38D309,MAPI,exchange-mbx-01.exchange.local,+,Delivery;QueueLength=1
2010-02-06T00:15:23.512Z,08CC74D89C38D309,MAPI,exchange-mbx-01.exchange.local,>,Starting delivery
2010-02-06T00:15:25.934Z,08CC74D89C38D309,MAPI,exchange-mbx-01.exchange.local,>,Connecting to server exchange-mbx-01.exchange.local session type Public Folder
2010-02-06T00:15:26.168Z,08CC74D89C38D309,MAPI,exchange-mbx-01.exchange.local,>,Failed to connect to server exchange-mbx-01.exchange.local
2010-02-06T00:15:26.231Z,08CC74D89C38D309,MAPI,exchange-mbx-01.exchange.local,-,Messages: 0 Bytes: 0 Recipients: 0
2010-02-06T00:30:05.238Z,08CC74D89C38D30B,MAPI,exchange-mbx-01.exchange.local,+,Delivery;QueueLength=1
2010-02-06T00:30:05.238Z,08CC74D89C38D30B,MAPI,exchange-mbx-01.exchange.local,>,Starting delivery
2010-02-06T00:30:05.238Z,08CC74D89C38D30B,MAPI,exchange-mbx-01.exchange.local,>,Connecting to server exchange-mbx-01.exchange.local session type Public Folder
2010-02-06T00:30:05.301Z,08CC74D89C38D30B,MAPI,exchange-mbx-01.exchange.local,>,Failed to connect to server exchange-mbx-01.exchange.local
2010-02-06T00:30:05.301Z,08CC74D89C38D30B,MAPI,exchange-mbx-01.exchange.local,-,Messages: 0 Bytes: 0 Recipients: 0
2010-02-06T02:00:02.448Z,08CC74D89C38D30D,MAPI,exchange-mbx-01.exchange.local,+,Delivery;QueueLength=1
2010-02-06T02:00:02.448Z,08CC74D89C38D30D,MAPI,exchange-mbx-01.exchange.local,>,Starting delivery
2010-02-06T02:00:02.464Z,08CC74D89C38D30D,MAPI,exchange-mbx-01.exchange.local,>,Connecting to server exchange-mbx-01.exchange.local session type Public Folder
2010-02-06T02:00:02.761Z,08CC74D89C38D30D,MAPI,exchange-mbx-01.exchange.local,-,Messages: 1 Bytes: 3999 Recipients: 1
2010-02-06T02:00:02.917Z,08CC74D89C38D30E,MAPI,exchange-mbx-01.exchange.local,+,Delivery;QueueLength=1
2010-02-06T02:00:02.917Z,08CC74D89C38D30E,MAPI,exchange-mbx-01.exchange.local,>,Starting delivery
2010-02-06T02:00:02.932Z,08CC74D89C38D30E,MAPI,exchange-mbx-01.exchange.local,>,Connecting to server exchange-mbx-01.exchange.local session type Public Folder
2010-02-06T02:00:02.964Z,08CC74D89C38D30E,MAPI,exchange-mbx-01.exchange.local,-,Messages: 1 Bytes: 4797 Recipients: 1
2010-02-06T02:00:22.521Z,08CC74D89C38D30F,SMTP,hub version 8,+,SmtpRelayWithinAdSite 61027a30-e9a9-4c2d-acb5-c1efc96d5d8b
2010-02-06T02:00:22.567Z,08CC74D89C38D30F,SMTP,hub version 8,>,EXCHANGE-MBX-02.exchange.local[10.1.0.2]
2010-02-06T02:00:22.599Z,08CC74D89C38D30F,SMTP,hub version 8,>,Established connection to 10.1.0.2
2010-02-06T02:00:22.942Z,08CC74D89C38D30F,SMTP,hub version 8,-,Messages: 1 Bytes: 8309 ()

Failed になっていたものが変更後は出力されなくなっていますね。
Exchange 2010 は接続ログがデフォルトで有効なのですが、Exchange 2007 ではデフォルト無効で、
私が設定変更していなかったので、Exchange 2007 の接続ログはお見せできません…。

サイトの情報をみていますと 2003 からのアップグレードの場合にも発生しているようですので、2000 だけではなく
2000 / 2003 から移行した場合に発生する可能性のある共通の事象なのではないでしょうか。

このような現象を RTM が出たばかりの 11 月に発見し、翌月には解決している海外のエンジニアの方ってすごいですね~。

2010 移行時にパブリックフォルダに関して気付いたことは他にもありましたのでそれらは次回に。

Written by masayuki.ozawa

2月 6th, 2010 at 2:31 am

Posted in Exchange

Leave a Reply

*