Outlook の動作履歴について
Exchange サーバーの提供する Autodiscover や Web サービスへのアクセスについてトラブルシュートする際に有効なOutlook の動作履歴をご紹介いたします。
Outlook の動作履歴は一般的に Outlook のトラブルシュートの際に取得しますが、Autodiscover や Web サービスへのアクセスのトラブルシュートについても有効です。
取得方法
Outlook を起動して、[ファイル]-[オプション]-[詳細設定] から [その他] に記載の [トラブル シューティングを記録する] にチェックを入れて OK をクリックします。Outlook を再起動後、現象を再現します。
ログは、%TEMP% に出力されますが、今回、Autodiscover や Web サービスについては以下のファイルとフォルダが対象となります。
olkas フォルダ
outlook logging フォルダ
olkdisc.log
それでは、各ログについてご紹介します。
olkdisc.log
こちらは、Autodiscover に関するログとなります。
いくつか例を見てみます。以下は最もシンプルなログとなりますが、最初の autodiscover.example.local へのアクセスで成功している状態です (この例ではクライアントはワークグループ環境となっているため、最初に autodiscover.<SMTP ドメイン> へのアクセスを行っています)。
Thread Tick Count Date/Time Description
1064 1022611843 11/02/12 14:44:44 Autodiscover to https://autodiscover.example.local/autodiscover/autodiscover.xml starting <<< こちらが、アクセスを試みている URL となります。
1064 1022612000 11/02/12 14:44:45 Autodiscover XML Received <<< 以下が取得した XML の内容です
---BEGIN XML---
<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="https://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="https://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
… <省略> …
</Response>
</Autodiscover>
----END XML----
1064 1022612015 11/02/12 14:44:45 Autodiscover to https://autodiscover.example.local/autodiscover/autodiscover.xml Succeeded (0x00000000)
次も成功時ですが、上記とは異なり、最初の autodiscover.example.local へのアクセスは失敗していますが、Srv Record を介して取得した mail.example.local へのアクセスは成功している状況です
※ ここでは HOSTS ファイルで意図的に autodiscover.example.local を Exchange サーバーではないサーバーの IP アドレスへ設定させて失敗している状況です。
Thread Tick Count Date/Time Description
2960 1023454625 11/02/12 14:58:47 Autodiscover to https://autodiscover.example.local/autodiscover/autodiscover.xml starting
2960 1023455843 11/02/12 14:58:48 Autodiscover to https://autodiscover.example.local/autodiscover/autodiscover.xml Failed (0x800C8203)
2960 1023455843 11/02/12 14:58:48 Local autodiscover for example.local starting
2960 1023455843 11/02/12 14:58:48 Local autodiscover for example.local Failed (0x8004010F)
2960 1023455843 11/02/12 14:58:48 Redirect check to https://autodiscover.example.local/autodiscover/autodiscover.xml starting
2960 1023455937 11/02/12 14:58:49 Srv Record lookup for https://autodiscover.example.local/autodiscover/autodiscover.xml Failed (0x80004005)
2960 1023455937 11/02/12 14:58:49 Srv Record lookup for example.local starting
2960 1023455937 11/02/12 14:58:49 Autodiscover URL redirection to https://mail.example.local/autodiscover/autodiscover.xml <<< mail.example.local は Srv レコードを介して取得したホスト名です
2960 1023455937 11/02/12 14:58:49 Autodiscover to https://mail.example.local/autodiscover/autodiscover.xml starting
2960 1023456078 11/02/12 14:58:49 Autodiscover XML Received
---BEGIN XML---
<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="https://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="https://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
… <省略> …
</Response>
</Autodiscover>
----END XML----
2960 1023456093 11/02/12 14:58:49 Autodiscover to https://mail.example.local/autodiscover/autodiscover.xml Succeeded (0x00000000)
2960 1023456093 11/02/12 14:58:49 Srv Record lookup for example.local Succeeded (0x00000000)
Outlook は Autodiscover において上記のように順番にURL へのアクセスを試みますが、すべてにおいて失敗した場合には autodiscover.xml を取得することができず、その結果各 Web サービスへのアクセス URL も取得できないために、不在時のアシスタント、OAB のダウンロード、空き時間の参照などの利用ができなくなります。完全に失敗している場合には、上記のように取得した XML がログに記録されていないことから確認できます。
※ Outlook はAutodiscover.xml をローカルに (Windows Vista/7 では %LOCALAPPDATA%\Microsoft\Outlook に隠しファイルとして) キャッシュするために、一度取得できていた場合、次の取得などで一時的に失敗しているだけであれば影響はありません。ただし、Autodiscover に含まれる情報をサーバー側から更新しているような場合には、古い情報を参照している可能性はあります。キャッシュされている XML の内容から取得した場合においても、olkdisc.log には XML の内容が記録されます。
oof.log
%TEMP%\Outlook Logging フォルダ内に "<日時>-oof.log" というファイル名で記録されるログとなり、こちらは
OOF (不在時のアシスタント) に関するログとなります。
以下は成功例です。
アクセスしている先の URL、リクエストと応答の XML の内容を確認することができます。
2012/11/02 14:47:36.411: Request to URL: https://e2010-1-a.example.local/EWS/Exchange.asmx <<< OOF の取得のためにアクセスしている、Autodiscover にて取得した URL です
2012/11/02 14:47:36.411: Request action: https://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings
2012/11/02 14:47:36.411: Request XML: <?xml version="1.0"?>
<q:Envelope xmlns:q="https://schemas.xmlsoap.org/soap/envelope/"><q:Body><ex12m:GetUserOofSettingsRequest xmlns:ex12m="https://schemas.microsoft.com/exchange/services/2006/messages"><ex12t:Mailbox xmlns:ex12t="https://schemas.microsoft.com/exchange/services/2006/types"><ex12t:Address>user03@example.local</ex12t:Address><ex12t:RoutingType>SMTP</ex12t:RoutingType></ex12t:Mailbox></ex12m:GetUserOofSettingsRequest></q:Body></q:Envelope>
2012/11/02 14:47:36.411: Sending request
2012/11/02 14:47:36.521: Request sent
2012/11/02 14:47:36.521: Response error code: 00000000
2012/11/02 14:47:36.521: HTTP status code: 200 <<< 成功して、以下の XML が応答されていることが分かります
2012/11/02 14:47:36.521: XML response:<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ServerVersionInfo MajorVersion="14" MinorVersion="2" MajorBuildNumber="247" MinorBuildNumber="3" xmlns:h="https://schemas.microsoft.com/exchange/services/2006/types" xmlns="https://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"/></s:Header><s:Body xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><GetUserOofSettingsResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"><ResponseMessage ResponseClass="Success"><ResponseCode>NoError</ResponseCode></ResponseMessage><OofSettings xmlns="https://schemas.microsoft.com/exchange/services/2006/types"><OofState>Disabled</OofState><ExternalAudience>All</ExternalAudience><Duration><StartTime>2012-11-02T05:00:00Z</StartTime><EndTime>2012-11-03T05:00:00Z</EndTime></Duration><InternalReply><Message/></InternalReply><ExternalReply><Message/></ExternalReply></OofSettings><AllowExternalOof>All</AllowExternalOof></GetUserOofSettingsResponse></s:Body></s:Envelope>
以下は失敗例です。Autodiscover で取得した URL (ここでは "bogus.example.local") へアクセスできていないために失敗しています。
2012/11/02 15:38:25.877: Request to URL: https://bogus.example.local/EWS/Exchange.asmx
2012/11/02 15:38:25.877: Request action: https://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings
2012/11/02 15:38:25.877: Request XML: <?xml version="1.0"?>
<q:Envelope xmlns:q="https://schemas.xmlsoap.org/soap/envelope/"><q:Body><ex12m:GetUserOofSettingsRequest xmlns:ex12m="https://schemas.microsoft.com/exchange/services/2006/messages"><ex12t:Mailbox xmlns:ex12t="https://schemas.microsoft.com/exchange/services/2006/types"><ex12t:Address>user03@example.local</ex12t:Address><ex12t:RoutingType>SMTP</ex12t:RoutingType></ex12t:Mailbox></ex12m:GetUserOofSettingsRequest></q:Body></q:Envelope>
2012/11/02 15:38:25.877: Sending request
2012/11/02 15:38:28.127: Request sent
2012/11/02 15:38:28.127: Response error code: 00000000
2012/11/02 15:38:28.127: HTTP status code: 0
2012/11/02 15:38:28.127: -------------------------------
2012/11/02 15:38:28.127: There is an error in request/response.
2012/11/02 15:38:28.127: XML response:
2012/11/02 15:38:28.127: -------------------------------
空き時間情報につきましては、%TEMP%\OlkAs フォルダ内の、<日時>-AS.log に記録されます。内容とは oof.log とほぼ同様です (Request action が GetUserOofSettings のかわりに、GetUserAvailabilityRequest になります)。
Web サービスへのアクセスは基本的に HTTPS にて実施されるため、ネットワーク パケット採取しても通信内容までは確認できませんが、上記のように Outlook 動作履歴の各ログにてより詳細を確認することができます。
以前ご案内したプロキシ設定に関連して、意図せずプロキシ サーバーへリクエストが送られているような場合についても、上記の内容を基に確認することが可能な場合も多いです。例えば、プロキシ サーバーから HTTP ステータス コード 407 ("プロキシ認証が必要です"、"Proxy Authentication Required") が応答されている場合にはそのように記録されます。プロキシ サーバーから応答が返されている場合には、プロキシ サーバーを経由しないようプロキシの除外設定を行ってください。
Outlook の動作履歴についてはクライアントにて簡単に採取できるものでもありますため、トラブルシュートの際にご活用いただければと存じます。