次の方法で共有


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

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

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

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

Configuration Manager バージョン 1902 以降では、階層で中央管理サイト (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>.
    
  • Configuration Manager バージョン 1902:

    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 を見つけます。 TaskIDは、ClientAction テーブルのUniqueIDに対応します。

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.

TaskIDScripts.logを確認します。 次の例では、 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}

注:

Scripts.logに "(fast)" が表示されない場合、データは 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詳細ログが有効になっている場合、クライアントの結果が処理されます。 MP_RelayMsgMgr.logから見つかったメッセージ ID を使用します。 処理ログ エントリは、次の例のようになります。

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.logで、PushIDを探して、報告または失敗したクライアントの数を確認します。

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)

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

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

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

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

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

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

既定では、サイト サーバーのログ ファイルは 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 を見つけます。 TaskIDは、ClientAction テーブルのUniqueIDに対応します。

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)

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

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\。 次の場所にあるファイルを探します。

  • 受信
  • 破損
  • プロセス

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

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

次の手順