CMPivot のトラブルシューティング

CMPivot は、環境内のデバイスのリアルタイム状態へのアクセスを提供するツールです。 CMPivot は、ターゲット コレクション内の現在接続されているすべてのデバイスに対してクエリを実行し、結果を返します。

場合によっては、CMPivot のトラブルシューティングが必要になる場合があります。 たとえば、クライアントから CMPivot への状態メッセージが破損した場合、サイト サーバーはメッセージを処理できません。 この記事は、CMPivot の情報フローを理解するのに役立ちます。

バージョン 1902 以降の CMPivot のトラブルシューティング

バージョン 1902 以降Configuration Managerでは、階層の中央管理サイト (CAS) から CMPivot を実行できます。 プライマリ サイトは引き続きクライアントへの通信を処理します。

CAS から CMPivot を実行すると、高速メッセージ サブスクリプション チャネルを使用してプライマリ サイトと通信します。 CMPivot では、サイト間の標準SQL Serverレプリケーションは使用されません。 SQL Server インスタンスまたは SMS プロバイダーがリモートの場合、またはSQL Server Always On可用性グループを使用する場合は、CMPivot の "ダブル ホップ シナリオ" があります。 "ダブル ホップ シナリオ" の制約付き委任を定義する方法については、「 バージョン 1902 以降の CMPivot」を参照してください。

重要

CMPivot のトラブルシューティングを行う場合は、管理ポイント (MP) とサイト サーバーのSMS_MESSAGE_PROCESSING_ENGINEに関する詳細なログ記録を有効にして、詳細情報を取得します。 また、クライアントの出力が 80 KB を超える場合は、MP とサイト サーバーのSMS_STATE_SYSTEM コンポーネントで詳細ログを有効にします。 詳細ログを有効にする方法については、「 サイト サーバーのログ オプション」を参照してください。

サイト サーバーから情報を取得する

既定では、サイト サーバーのログ ファイルは にあります C:\Program Files\Microsoft Configuration Manager\logs。 既定以外のインストール ディレクトリまたは SMS プロバイダーなどのオフロードされた項目を別のサーバーに指定した場合、この場所は異なる場合があります。 CAS から CMPivot を実行すると、ログはプライマリ サイト サーバー上にあります。

次の smsprov.log 行を探します。

  • Configuration Manager バージョン 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • バージョン 1902 Configuration Manager:

    Type parameter is 135.
    Auditing: User <username> ran script 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 with hash dc6c2ad05f1bfda88d880c54121c8b5cea6a394282425a88dd4d8714547dc4a2 on collection <CollectionId>.
    

7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 は CMPivot のScript-Guidです。 この GUID は 、CMPivot 監査ステータス メッセージでも確認できます。

次に、CMPivot ウィンドウで ID を見つけます。 この ID は です ClientOperationID

ClientOperationID が強調表示された CMPivot ウィンドウ(バージョン 1902)

ClientAction テーブルから を TaskID 見つけます。 は TaskIDUniqueID ClientAction テーブル内の に対応します。

select * from ClientAction where ClientOperationId=<id>

BgbServer.log、SQL Serverから収集した を探TaskIDし、 をメモしますPushID。 には TaskID というラベルが付けられます TaskGUID。 例:

Starting to send push task (PushID: 9 TaskID: 12 TaskGUID: 9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0 TaskType: 15 TaskParam: PFNjcmlwdENvbnRlbnQgU2NyaXB0R3VpZD0nN0RDNkI2RjEtRTdGNi00M0MxL (truncated log entry)
Finished sending push task (PushID: 9 TaskID: 12) to 2 clients

クライアント ログ

サイト サーバーから情報を取得したら、クライアント ログを確認します。 既定では、クライアント ログは にあります C:\Windows\CCM\Logs

CcmNotificationAgent.log、次の行のようなログ エントリを探します。

Receive task from server with pushid=9, taskid=12, taskguid=9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0, tasktype=15 and taskParam=PFNjcmlwdEhhc2ggU2NyaXB0SGF (truncated log entry)
Send Task response message <BgbResponseMessage TimeStamp="2019-09-13T17:29:09Z"><PushID>5</PushID><TaskID>4</TaskID><ReturnCode>1</ReturnCode></BgbResponseMessage> successfuly.

を確認 Scripts.log します TaskID。 次の例では、 が表示されます Task ID{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}

Sending script state message (fast): {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Result are sent for ScriptGuid: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 and TaskID: {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}

注:

に "(fast)" が Scripts.log表示されない場合、データは 80 KB を超える可能性があります。 この場合、情報は状態メッセージとしてサイト サーバーに送信されます。 クライアント StateMessage.log とサイト サーバーの Statesys.logを使用します。

サイト サーバー上のメッセージを確認する

管理ポイントで 詳細ログが 有効になっている場合は、受信クライアント メッセージの処理方法を確認できます。 で MP_RelayMsgMgr.log、 を探します TaskID

この MP_RelayMsgMgr.log 例では、クライアントの ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783)Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}を確認できます。 メッセージ ID は、メッセージ処理エンジンに送信される前に、クライアントの応答に割り当てられます。

MessageKey: GUID:83F67728-2E6D-4E4F-8075-ED035C31B783{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Create message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Add message payload succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Put message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
CRelayMsgMgrHandler::HandleMessage(): ExecuteTask() succeeded

で詳細ログが有効になっているSMS_MESSAGE_PROCESSING_ENGINE.log場合、クライアントの結果が処理されます。 から見つかったメッセージ ID を使用します MP_RelayMsgMgr.log。 処理ログ エントリは、次の例のようになります。

Processing 2 messages with type Instant and IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]...
Processed 2 messages with type Instant. Failed to process 0 messages. All message IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]

ヒント

処理中に例外が発生した場合は、次の SQL クエリを実行し、[例外] 列を調べることで、例外を確認できます。 メッセージが処理されると、そのメッセージはテーブルに MPE_RequestMessages_Instant 表示されなくなります。

select * from MPE_RequestMessages_Instant where MessageID=<ID from SMS_MESSAGE_PROCESSING_ENGINE.log>

BgbServer.logPushID 探して、報告または失敗したクライアントの数を確認します。

Generated BGB task status report c:\ConfigMgr\inboxes\bgb.box\Bgb5c1db.BTS at 09/16/2019 16:46:39. (PushID: 9 ReportedClients: 2 FailedClients: 0)

を使用して、SQL Serverから CMPivot の監視ビューを確認しますTaskID

select * from vSMS_CMPivotStatus where TaskID='{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}'

バージョン 1902 でのトラブルシューティングのための CMPivot SQL クエリ

1810 以前の CMPivot のトラブルシューティング

バージョン 1810 以前Configuration Managerでは、サイト サーバーがクライアントへの通信を処理します。

サイト サーバーから情報を取得する

既定では、サイト サーバーのログ ファイルは にあります C:\Program Files\Microsoft Configuration Manager\logs。 既定以外のインストール ディレクトリまたは SMS プロバイダーなどのオフロードされた項目を別のサーバーに指定した場合、この場所は異なる場合があります。

次の smsprov.log 行を探します。

Auditing: User <username> initiated client operation 135 to collection <CollectionId>.

[CMPivot] ウィンドウで ID を見つけます。 この ID は です ClientOperationID

ClientOperationID が強調表示されている CMPivot ウィンドウ

ClientAction テーブルから を TaskID 見つけます。 は TaskIDUniqueID ClientAction テーブル内の に対応します。

select * from ClientAction where ClientOperationId=<id>

BgbServer.log、SQL から収集したを探 TaskID します。 というラベルが付けられます TaskGUID。 例:

Starting to send push task (PushID: 260 TaskID: 258 TaskGUID: F8C7C37F-B42B-4C0A-B050-2BB44DF1098A TaskType: 15
TaskParam: PFNjcmlwdEhhc2ggU2NyaXB0SGF...truncated...to 5 clients with throttling (strategy: 1 param: 42)
Finished sending push task (PushID: 260 TaskID: 258) to 5 clients

クライアント ログ

サイト サーバーから情報を取得したら、クライアント ログを確認します。 既定では、クライアント ログは にあります C:\Windows\CCM\Logs

CcmNotificationAgent.log、次のエントリのようなログを探します。

Error! Bookmark not defined.+PFNjcmlwdEhhc2ggU2NyaXB0SGFzaEFsZz0nU0hBMjU2Jz42YzZmNDY0OGYzZjU3M2MyNTQyNWZiNT
g2ZDVjYTIwNzRjNmViZmQ1NTg5MDZlMWI5NDRmYTEzNmFiMDE0ZGNjPC9TY3JpcHRIYXNoPjxTY3Jp (truncated log entry)

Scripts.log 探します TaskID。 次の例では、 が表示されます Task ID {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}

Sending script state message: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14
State message: Task Id {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}

を見てください StateMessage.log。 次の例では、 の横<Param>にあるメッセージの下部付近にあることがわかりますTaskID

StateMessage body: <?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>

Successfully forwarded State Messages to the MP StateMessage 7/3/2018 11:44:47 AM 5036 (0x13AC)

サイト サーバー上のメッセージを確認する

を開 statesys.log いて、メッセージが受信され、処理されているかどうかを確認します。 次の例では、 の横にメッセージの下部付近が<Param>表示TaskIDされます。 SMS_STATE_SYSTEM コンポーネントで 詳細ログ を有効にして、これらのログ エントリを表示します。

CMessageProcessor - the cmdline to DB exec dbo.spProcessStateReport N'?<?xml version="1.0" encoding="UTF-
16"?>~~<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>~~'

メッセージが処理されていない場合は、状態メッセージの受信トレイを確認します。 既定の受信トレイの場所は です C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\。 次の場所にあるファイルを探します。

  • 受信
  • 破損
  • プロセス

を使用して、次の SQL クエリを使用して CMPivot の監視ビューを確認します TaskID

select * from vSMS_CMPivotStatus where TaskID='{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}'

注:

バージョン 1810 以降を使用しているクライアントの場合、出力が 80 KB を超えない限り、状態メッセージングは使用されません。 このような場合に CMPivot のトラブルシューティングを行う場合は、MP とサイト サーバーのSMS_MESSAGE_PROCESSING_ENGINEで詳細なログ記録を有効にすると、詳細情報を取得できます。 詳細ログを有効にする方法については、「 サイト サーバーのログ オプション」を参照してください。

トラブルシューティングを行うには、次のログを参照してください。

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

次の手順