Risolvere i problemi relativi a CMPivot

CMPivot è uno strumento che fornisce l'accesso a uno stato in tempo reale dei dispositivi nell'ambiente. CMPivot esegue una query su tutti i dispositivi attualmente connessi nella raccolta di destinazione e restituisce i risultati.

In alcuni casi, potrebbe essere necessario risolvere i problemi di CMPivot. Ad esempio, se un messaggio di stato da un client a CMPivot viene danneggiato, il server del sito non può elaborare il messaggio. Questo articolo consente di comprendere il flusso di informazioni per CMPivot.

Risolvere i problemi di CMPivot nella versione 1902 e successive

In Configuration Manager versioni 1902 e successive, è possibile eseguire CMPivot dal sito di amministrazione centrale (CAS) in una gerarchia. Il sito primario gestisce comunque la comunicazione con il client.

Quando si esegue CMPivot da CAS, viene usato il canale di sottoscrizione dei messaggi ad alta velocità per comunicare con il sito primario. CMPivot non usa la replica SQL Server standard tra siti. Se l'istanza di SQL Server o il provider SMS è remoto o se si usa un gruppo di disponibilità SQL Server Always On, si avrà uno "scenario a doppio hop" per CMPivot. Per informazioni su come definire la delega vincolata per uno "scenario a doppio hop", vedere CMPivot a partire dalla versione 1902.

Importante

Durante la risoluzione dei problemi di CMPivot, abilitare la registrazione dettagliata nei punti di gestione e nel SMS_MESSAGE_PROCESSING_ENGINE del server del sito per ottenere altre informazioni. Inoltre, se l'output del client è maggiore di 80 KB, abilitare la registrazione dettagliata nel server di gestione e nel componente SMS_STATE_SYSTEM del server del sito. Per informazioni su come abilitare la registrazione dettagliata, vedere Opzioni di registrazione del server del sito.

Ottenere informazioni dal server del sito

Per impostazione predefinita, i file di log del server del sito si trovano in C:\Program Files\Microsoft Configuration Manager\logs. Questo percorso potrebbe essere diverso se è stata specificata una directory di installazione non predefinita o elementi scaricati come il provider SMS in un altro server. Se si esegue CMPivot dal server di amministrazione centrale, i log si trovano nel server del sito primario.

smsprov.log Cercare queste righe:

  • Configuration Manager versione 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager versione 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 è il Script-Guid per CMPivot. È anche possibile visualizzare questo GUID nei messaggi di stato del controllo CMPivot.

Individuare quindi l'ID nella finestra CMPivot. Questo ID è l'oggetto ClientOperationID.

Finestra CMPivot con ClientOperationID evidenziato, versione 1902

Trovare dalla TaskID tabella ClientAction. TaskID Corrisponde a UniqueID nella tabella ClientAction.

select * from ClientAction where ClientOperationId=<id>

In BgbServer.logcercare l'oggetto TaskID raccolto da SQL Server e prendere nota di PushID. L'oggetto TaskID è etichettato .TaskGUID Ad esempio:

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

Registri dei client

Dopo aver ottenuto le informazioni dal server del sito, controllare i log client. Per impostazione predefinita, i log client si trovano in C:\Windows\CCM\Logs.

In CcmNotificationAgent.logcercare voci di log simili alle righe seguenti:

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.

Verificare Scripts.log la presenza di TaskID. Nell'esempio seguente viene visualizzato 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}

Nota

Se "(fast)" non viene visualizzato in Scripts.log, è probabile che i dati siano superiori a 80 KB. In questo caso, le informazioni vengono inviate al server del sito come messaggio di stato. Usare client StateMessage.log e il server del Statesys.logsito.

Esaminare i messaggi nel server del sito

Quando la registrazione dettagliata è abilitata nel punto di gestione, è possibile vedere come vengono gestiti i messaggi client in ingresso. In MP_RelayMsgMgr.logcercare l'oggetto TaskID.

Nell'esempio MP_RelayMsgMgr.log è possibile visualizzare l'ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) del client e .Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0} Un ID messaggio viene assegnato alla risposta del client prima che venga inviato al motore di elaborazione dei messaggi:

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

Quando la registrazione dettagliata è abilitata in SMS_MESSAGE_PROCESSING_ENGINE.log, i risultati del client vengono elaborati. Usare l'ID messaggio trovato da MP_RelayMsgMgr.log. Le voci del log di elaborazione sono simili all'esempio seguente:

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]

Consiglio

Se si riceve un'eccezione durante l'elaborazione, è possibile esaminarla eseguendo la query SQL seguente e esaminando la colonna Eccezione. Dopo l'elaborazione, il messaggio non sarà più presente nella MPE_RequestMessages_Instant tabella.

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

In BgbServer.logcercare per PushID visualizzare il numero di client che hanno segnalato o non sono riusciti.

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)

Controllare la visualizzazione di monitoraggio per CMPivot da SQL Server usando TaskID.

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

Query SQL CMPivot per la risoluzione dei problemi nella versione 1902

Risolvere i problemi di CMPivot nel 1810 e versioni precedenti

In Configuration Manager versioni 1810 e precedenti, il server del sito gestisce la comunicazione con il client.

Ottenere informazioni dal server del sito

Per impostazione predefinita, i file di log del server del sito si trovano in C:\Program Files\Microsoft Configuration Manager\logs. Questo percorso potrebbe essere diverso se è stata specificata una directory di installazione non predefinita o elementi scaricati come il provider SMS in un altro server.

Cercare questa smsprov.log riga:

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

Trovare l'ID nella finestra CMPivot. Questo ID è l'oggetto ClientOperationID.

Finestra CMPivot con ClientOperationID evidenziato

Trovare dalla TaskID tabella ClientAction. TaskID Corrisponde a UniqueID nella tabella ClientAction.

select * from ClientAction where ClientOperationId=<id>

In BgbServer.logcercare l'oggetto TaskID raccolto da SQL. È etichettato come TaskGUID. Ad esempio:

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

Registri dei client

Dopo aver ottenuto le informazioni dal server del sito, controllare i log client. Per impostazione predefinita, i log client si trovano in C:\Windows\CCM\Logs.

In CcmNotificationAgent.logcercare i log simili alla voce seguente:

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

Scripts.log Cercare l'oggetto TaskID. Nell'esempio seguente viene visualizzato 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}

Cercare in StateMessage.log. Nell'esempio seguente viene visualizzato che TaskID si trova nella parte inferiore del messaggio accanto a <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)

Esaminare i messaggi nel server del sito

Aprire statesys.log per verificare se il messaggio viene ricevuto ed elaborato. Nell'esempio seguente viene visualizzato TaskID nella parte inferiore del messaggio accanto a <Param>. Abilitare la registrazione dettagliata nel componente SMS_STATE_SYSTEM per visualizzare queste voci di log.

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>~~'

Se il messaggio non è stato elaborato, controllare la posta in arrivo del messaggio di stato. Il percorso predefinito della posta in arrivo è C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Cercare i file in questi percorsi:

  • In ingresso
  • Danneggiato
  • Procedura

Controllare la visualizzazione di monitoraggio per CMPivot tramite la query SQL seguente usando TaskID:

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

Nota

Per i client che usano la versione 1810 o successiva, la messaggistica di stato non viene usata a meno che l'output non sia maggiore di 80 KB. Quando si risoluzione dei problemi di CMPivot in questi casi, è possibile ottenere altre informazioni quando si abilita la registrazione dettagliata nei propri mvp e nella SMS_MESSAGE_PROCESSING_ENGINE del server del sito. Per informazioni su come abilitare la registrazione dettagliata, vedere Opzioni di registrazione del server del sito.

Per risolvere i problemi, vedere i log seguenti:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Passaggi successivi