針對 CMPivot 進行疑難排解

CMPivot 是一種工具,可讓您存取環境中裝置的即時狀態。 CMPivot 會在目標集合中所有目前連線的裝置上執行查詢,並傳回結果。

有時候,您可能需要針對 CMPivot 進行疑難排解。 例如,如果用戶端到 CMPivot 的狀態訊息損毀,月臺伺服器就無法處理訊息。 本文可協助您瞭解 CMPivot 的資訊流程。

針對 1902 版和更新版本中的 CMPivot 進行疑難排解

在 Configuration Manager 1902 版和更新版本中,您可以從管理中心網站執行 CMPivot (階層中的 CAS) 。 主要月臺仍會處理與用戶端的通訊。

當您從 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。 您也可以在 CMPivot 稽核狀態訊息中看到此 GUID。

接下來,在 CMPivot 視窗中尋找識別碼。 此識別碼為 ClientOperationID

醒目提示 ClientOperationID 的 CMPivot 視窗,版本 1902

從 ClientAction TaskID 資料表中尋找 。 對 TaskID 應至 UniqueID ClientAction 資料表中的 。

select * from ClientAction where ClientOperationId=<id>

BgbServer.log 中, TaskID 尋找您從 SQL Server收集的 ,並記下 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}

注意事項

如果您在 中看不到「 (快速) 」 Scripts.log ,則資料可能超過 80 KB。 在此情況下,資訊會以狀態訊息傳送至月臺伺服器。 使用用戶端的 StateMessage.log 和月臺伺服器的 Statesys.log

檢閱月臺伺服器上的訊息

在管理點上啟用 詳細資訊記錄 時,您可以查看處理傳入用戶端訊息的方式。 在 中 MP_RelayMsgMgr.log ,尋找 TaskID

在範例中 MP_RelayMsgMgr.log ,您可以看到用戶端的識別碼 (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783)Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0} 。 訊息識別碼會在傳送至訊息處理引擎之前指派給用戶端的回應:

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 。 處理記錄專案類似下列範例:

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)

使用 從 SQL Server 檢查 CMPivot 的 TaskID 監視檢視。

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 視窗中尋找識別碼。 此識別碼為 ClientOperationID

已醒目提示 ClientOperationID 的 CMPivot 視窗

從 ClientAction TaskID 資料表中尋找 。 對 TaskID 應至 UniqueID ClientAction 資料表中的 。

select * from ClientAction where ClientOperationId=<id>

BgbServer.log 中, TaskID 尋找您從 SQL 收集的 。 其標示為 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查看 。 在下列範例中,您會看到 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\ 。 尋找這些位置中的檔案:

  • 傳入
  • 損壞
  • 程序

使用 透過下列 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

後續步驟