ハイブリッド環境で行うトラブル シューティング - 空き時間/予定表参照 -

こんにちは。Exchange サポート チームの竹本です。
Exchange サーバー / Exchange Online のハイブリッド構成についてはこれまでにもこの Blog にて多く紹介させていただいてきましたが、今回は空き時間情報や予定表共有がうまくいかない場合の第一歩について、ご紹介したいと思います。

ハイブリッド環境で発生する問題は要因が非常に多岐にわたるため、残念ながら確実なトラブル シューティング方法やステップのようなものがありません。そのため今回ご紹介させていただくのは、あくまでもまず第一に確認いただきたい事、そして弊社にてご支援させていただく際に採取いただきたい情報についてがメインとなっております。

 
- まずは状況を整理


この問題に限った話ではありませんが、何よりも重要なことは事象を正確に把握することです。A) だれが、B) だれの、C) 何を、D) どのようにして、取得しようとしているのか。まずは整理しましょう。
例えば以下のような形です。(もちろん、以下は一例ですので他にもパターンはあります。)

1) A) オンプレミス Exchange 2010 ユーザーが、B) Exchange Online のユーザーの、C) 空き時間を、D) OWA (スケジュール アシスタント) から取得できない
2) A) オンプレミス Exchange 2010 ユーザーが、B) Exchange Online のユーザーの、C) 予定表を、D) Outlook (左ペインの "共有の予定表") から取得できない
3) A) Exchange Online のユーザーが、B) オンプレミス Exchange 2010 ユーザーの、C) 空き時間を、D) Outlook (スケジュール アシスタント) から取得できない

特に "空き時間情報の共有" と "予定表の共有" は、以下の Blog でも紹介している通り似て非なるものとなるため、明確に区別する必要があります。
* ちなみに設定方法や基本的な動作についてはこの記事でまとめてご紹介おりますので、まだ見ていらっしゃらない方はぜひご参照ください。

Title : 異なる Exchange 組織間での空き時間及び予定表参照について
URL : https://blogs.technet.microsoft.com/exchangeteamjp/2016/03/16/exchange-9/

この状況によって、トラブルシューティングの方法や有効と考えられる対処方法も大きく変わってきます。全てのパターンを網羅することはできませんが、上記 3 つのパターンを例にとりポイントを挙げてみましょう。

 
- 基本構成を確認


クラウド環境は常に変化します。そのためそこと連携する必要のあるオンプレミスのバージョンについても、原則として N-1 以上である必要があります。

Title : ハイブリッド展開の前提条件
URL : https://technet.microsoft.com/ja-jp/library/hh534377(v=exchg.150).aspx

--- 抜粋ここから ---
オンプレミスの Exchange のリリース ハイブリッド展開には、オンプレミスの組織にインストールした Exchange のバージョンで利用できる最新の累積更新プログラムまたは更新プログラムのロールアップが必要です。最新の累積更新プログラムまたは更新プログラムのロールアップをインストールできない場合でも、直前のリリースがサポートされます。それ以前の累積更新プログラムまたは更新プログラムのロールアップはサポートされません。
--- 抜粋ここまで ---

これ以前のバージョンを使っているからと言ってお問い合わせを受け付けないといったことはありません。しかしながら調査の結果、更新プログラムの適用をご案内させていただく可能性はありますので、あらかじめご留意いただけると幸いです。

また、バージョンではなく構成上の基本的な問題が発生していないかを確認するといった観点で、各種テストをしてみるのもいいでしょう。
例えばフェデレーション信頼の構成を確認するためには、以下を実行します。各テストの Type がすべて Success と表示されていれば問題ありません。

Test-FederationTrust

フェデレーション周りが怪しい場合には、以下の通りメタデータの更新を一度試してみるのも有効です。

Get-Federationtrust | Set-FederationTrust –RefreshMetadata

また、他組織と空き時間を共有するための "組織の関係" が正しく構成されているかを確認するためには、以下が有効です。これも RESULT がすべて Success であるかどうかが一つの指標になります。

Test-OrganizationRelationship -Identity -UserIdentity

 
- OWA の場合は F12 トレースが有効


例えばパターン 1) を例に挙げます。

1) A) オンプレミス Exchange 2010 ユーザーが、B) Exchange Online のユーザーの、C) 空き時間を、D) OWA (スケジュール アシスタント) から取得できない

この場合、OWA で F12 開発者ツールのトレース機能を使用して HTTP 通信をキャプチャすることで、参照元のサーバーが参照先のサーバーに対するリクエストをどう処理したのか、より詳細を確認することができます。
IE 11 の場合、採取の手順は以下の通りです。

--- 手順ここから ---
1. F12 キーをクリックし、F12 開発者ツールを起動します。
2. [ネットワーク] タブを開き、採取開始ボタンをクリックします。
3. 予定表メニューより、新規予定アイテムの作成画面の右上の [スケジュール アシスタント] をクリックします。
4. [出席者] に参照先となるユーザーのアドレスを入力し、名前解決されることを確認した後 Enter を押下し、少し時間をおいて、空き時間情報が取得できないことを確認します。
5. [キャプチャの停止] をクリックし、隣の保存ボタンで、トレースの結果を保存します。
--- 手順ここまで ---

以下は 4 を実行した際に記録されるログの例です。GetUserAvailabilityInternal というメソッドに注目してみましょう。HTTP リクエストの応答を見てみると、"Request could not be processed in time. Timeout occurred during 'waiting-For-Request-Completion'" ということで、タイムアウトが発生してしまっていることが分かります。おそらく MBX11 というサーバーの負荷が高い状況にあったのか、またはプロキシ先となる Exchange Online との NW 環境に問題があり、応答を時間内に受けるけることができなかったのか、ということが想定されますね。
ちなみに Timeout エラーの場合はタイミング依存という可能性もあるため、ユーザーを変えたり、複数回試してみることも有効です。(この画面ショットを採取した環境では、アプリケーション プール起動直後ということもありタイムアウトが発生していましたが、2回目以降は問題なく成功していました。)
 
2016072202
 
なおこのような場合、通常は参照元 Exchange サーバーのイベント ログにもエラー イベント (MSExchange Availability 4002) が記録されますが、参照元が Exchange Online の場合はイベント ログを確認するわけにもいかないので、こういったクライアント側のログが非常に有益です。

 
- 予定表共有は、招待メッセージを送りあっていますか


続けてパターン 2) を見てみましょう。

2) A) オンプレミス Exchange 2010 ユーザーが、B) Exchange Online のユーザーの、C) 予定表を、D) Outlook (左ペインの "共有の予定表") から取得できない

前述したとおり、空き時間情報の共有と予定表の共有は処理が大きく異なります。またスケジュール アシスタントから空き時間を参照するのではなく、Outlook や OWA から "共有の予定表" としてクロス プレミスのユーザーの予定表を参照したい場合には、必ず招待メッセージ (Sharing Invitation) を送りあう必要があります。招待メッセージに添付されたリンクから作成された共有の予定表を開く場合のみ、クロス プレミスでの予定表共有はサポートされます。
 
2016072201
 
なお、Outlook のバージョンや構成によっては、直接 Outlook が相手先のメールボックスに Outlook Anywhere 接続を行うことで、招待メッセージを送りあうことなく予定表を共有できる場合も発生しますが、そのシナリオはサポートされません。そのため、必ず招待メッセージを送りあう必要があることにご注意ください。

 
- Outlook を使った場合の問題でも、まずは OWA で切り分けを


最後にパターン3) です。

3) A) Exchange Online のユーザーが、B) オンプレミス Exchange 2010 ユーザーの、C) 空き時間を、D) Outlook (スケジュール アシスタント) から取得できない

この場合、考えられる要因としては主に以下のいずれかです。

Outlook - Exchange Online 間で正しく情報が取得できていない。
Exchange Online - オンプレミス Exchange サーバー間で正しく情報が取得できていない。

比率的には後者が多いのですが、その切り分けと裏付けのためにも、まずは上述した OWA でのアクセスを試してログをとってみるのが最も効果的でしょう。OWA で問題なく Outlook でのみ空き時間が参照できない、ということになると、今度は Outlook – Exchange Online 間の EWS 接続が正しくできているのかといった観点で、Outlook 動作履歴ログなどを追っていくことになります。

 
- お問合せいただく前に


これまでに紹介した情報 (OWA のトレースや切り分け結果など) は、是非お問合せ時にもお寄せください。
また、最初からすべての情報が必要となることはまずありませんが、以下はトラブルシューティングを進めるうえで必要となる可能性が高いコマンドの結果です。もし可能であれば、これらは事前に採取いただけると大変幸いです。

// 任意のオンプレミス Exchange 2013 で Exchange 管理シェルより以下のコマンドを実行します。(Exchange 2010 では対応していないコマンドが一部含まれておりますので、実行できるものだけで問題ありません。)

Get-OrganizationRelationship | Export-Clixml -Path "C:\temp\OrgRelationship_Onprem.xml"

Get-SharingPolicy | Export-Clixml -Path "C:\temp\OrgRelationship_Onprem.xml"

Get-Mailbox -Identity | Export-Clixml -Path "C:\temp\Mailbox_Onprem.xml"

Get-FederationTrust | Export-Clixml -Path "C:\temp\FederationTrust _Onprem.xml"

Get-FederatedOrganizationIdentifier | Export-Clixml -Path "C:\temp\FederatedOrganizationIdentifier _Onprem.xml"

Get-WebServicesVirtualDirectory | Export-Clixml -Path "C:\temp\WebServicesVirtualDirectory_Onprem.xml"

Get-AutoDiscoverVirtualDirectory | Export-Clixml -Path "C:\temp\AutoDiscoverVirtualDirectory_Onprem.xml"

Get-AuthServer | Export-Clixml -Path "C:\temp\AuthServer_Onprem.xml"

Get-PartnerApplication | Export-Clixml -Path "C:\temp\PartnerApplication_Onprem.xml"

Get-AuthConfig | Export-Clixml -Path "C:\temp\AuthConfig_Onprem.xml"

Get-ExchangeCertificate | Export-Clixml -Path "C:\temp\ExchangeCertificate_Onprem.xml"

Get-IntraOrganizationConfiguration | Export-Clixml -Path "C:\temp\IntraOrganizationConfiguration_Onprem.xml"

Get-IntraOrganizationConnector | Export-Clixml -Path "C:\temp\IntraOrganizationConnector_Onprem.xml"

Test-OAuthConnectivity -Service EWS -TargetUri https://outlook.office365.com/ews/exchange.asmx -Mailbox "" | Export-Clixml -Path "C:\temp\TestOAuthConnectivity_Onprem.xml"

Test-FederationTrust -UserIdentity | Export-Clixml -Path "C:\temp\TestFederationTrust_Onprem.xml"

Test-FederationTrustCertificate | Export-Clixml -Path "C:\temp\TestFederationTrustCertificate_Onprem.xml"

Get-AvailabilityAddressSpace | Export-Clixml -Path "C:\temp\AvailabilityAddressSpace_Onprem.xml"

※ 空き時間参照参照先のユーザー (Exchange Online 側) に対応するメールユーザ―などを作成している場合は以下も採取してください。

Get-Recipient | Export-Clixml -Path "C:\temp\MailUser_Onprem.xml"

// PowerShell より Exchange Online へ接続し、同様に以下のコマンドを実行します。

Get-OrganizationRelationship | Export-Clixml -Path "C:\temp\OrgRelationship_EXO.xml"

Get-SharingPolicy | Export-Clixml -Path "C:\temp\OrgRelationship_EXO.xml"

Get-Mailbox -Identity | Export-Clixml -Path "C:\temp\Mailbox_EXO.xml"

Get-FederationTrust | Export-Clixml -Path "C:\temp\FederationTrust _EXO.xml"

Get-FederatedOrganizationIdentifier | Export-Clixml -Path "C:\temp\FederatedOrganizationIdentifier _EXO.xml"

Get-AvailabilityAddressSpace | Export-Clixml -Path "C:\temp\AvailabilityAddressSpace_EXO.xml"

Get-IntraOrganizationConnector | Export-Clixml -Path "C:\temp\IntraOrganizationConnector_EXO.xml"

Get-IntraOrganizationConfiguration | Export-Clixml -Path "C:\temp\IntraOrganizationConfiguration_EXO.xml"

Get-PartnerApplication | Export-Clixml -Path "C:\temp\PartnerApplication_EXO.xml"

Get-FederationInformation -Domainname | Export-Clixml -Path "C:\temp\FederationInformation_EXO.xml"

 
以上となりますが、ハイブリッド環境の構築、Exchange Online への移行作業の一助となれましたら幸いです。
今後とも、Exchange サーバー並びに当サポートブログをよろしくお願いいたします。

 
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。