Risolvere i problemi relativi a CMPivot
CMPivot è uno strumento che consente 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 standard di SQL Server tra siti. Se l'istanza di SQL Server o il provider SMS è remoto o se si usa un gruppo di disponibilità Always On di SQL Server, 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 componente MP 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
.
Trovare dalla TaskID
tabella ClientAction.
TaskID
Corrisponde a UniqueID
nella tabella ClientAction.
select * from ClientAction where ClientOperationId=<id>
In BgbServer.log
cercare 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.log
cercare 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.log
sito.
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.log
cercare 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.log
cercare 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}'
Risolvere i problemi di CMPivot nel 1810 e versioni precedenti
Nelle versioni 1810 e precedenti di Configuration Manager 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
.
Trovare dalla TaskID
tabella ClientAction.
TaskID
Corrisponde a UniqueID
nella tabella ClientAction.
select * from ClientAction where ClientOperationId=<id>
In BgbServer.log
cercare 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.log
cercare 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 arrivo
- 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 sui propri parlamentari e sui 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