Résoudre les problèmes liés à CMPivot

CMPivot est un outil qui permet d’accéder à un état en temps réel des appareils de votre environnement. CMPivot exécute une requête sur tous les appareils actuellement connectés dans le regroupement cible et retourne les résultats.

Parfois, vous devrez peut-être résoudre les problèmes de CMPivot. Par exemple, si un message d’état d’un client vers CMPivot est endommagé, le serveur de site ne peut pas traiter le message. Cet article vous aide à comprendre le flux d’informations pour CMPivot.

Résoudre les problèmes de CMPivot dans la version 1902 et les versions ultérieures

Dans Configuration Manager versions 1902 et ultérieures, vous pouvez exécuter CMPivot à partir du site d’administration centrale (CAS) dans une hiérarchie. Le site principal gère toujours la communication avec le client.

Lorsque vous exécutez CMPivot à partir du site d’administration centrale, il utilise le canal d’abonnement aux messages à haut débit pour communiquer avec le site principal. CMPivot n’utilise pas la réplication SQL Server standard entre les sites. Si votre instance SQL Server ou votre fournisseur SMS est distant, ou si vous utilisez un groupe de disponibilité SQL Server Always On, vous disposez d’un « scénario de tronçon double » pour CMPivot. Pour plus d’informations sur la définition de la délégation contrainte pour un « scénario à double tronçon », consultez CMPivot à partir de la version 1902.

Importante

Lors de la résolution des problèmes de CMPivot, activez la journalisation détaillée sur vos points de gestion (MPs) et sur les SMS_MESSAGE_PROCESSING_ENGINE du serveur de site pour obtenir plus d’informations. En outre, si la sortie du client est supérieure à 80 Ko, activez la journalisation détaillée sur le mp mp et le composant SMS_STATE_SYSTEM du serveur de site. Pour plus d’informations sur l’activation de la journalisation détaillée, consultez Options de journalisation du serveur de site.

Obtenir des informations à partir du serveur de site

Par défaut, les fichiers journaux du serveur de site se trouvent dans C:\Program Files\Microsoft Configuration Manager\logs. Cet emplacement peut être différent si vous avez spécifié un répertoire d’installation autre que celui par défaut ou si vous avez déchargé des éléments tels que le fournisseur SMS sur un autre serveur. Si vous exécutez CMPivot à partir du site d’administration centrale, les journaux se trouvent sur le serveur de site principal.

Recherchez les smsprov.log lignes suivantes :

  • Configuration Manager version 1906 :

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager version 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 est le Script-Guid pour CMPivot. Vous pouvez également voir ce GUID dans les messages d’état d’audit CMPivot.

Ensuite, recherchez l’ID dans la fenêtre CMPivot. Cet ID est .ClientOperationID

Fenêtre CMPivot avec ClientOperationID mis en surbrillance, version 1902

Recherchez le dans TaskID la table ClientAction. correspond TaskID au dans UniqueID la table ClientAction.

select * from ClientAction where ClientOperationId=<id>

Dans BgbServer.log, recherchez le TaskID que vous avez collecté à partir de SQL Server et notez le PushID. est TaskID étiqueté TaskGUID. Par exemple :

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

Journaux clients

Une fois que vous disposez des informations du serveur de site, vérifiez les journaux du client. Par défaut, les journaux du client se trouvent dans C:\Windows\CCM\Logs.

Dans CcmNotificationAgent.log, recherchez les entrées de journal qui ressemblent aux lignes suivantes :

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.

Recherchez Scripts.log le TaskID. Dans l’exemple suivant, vous voyez 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}

Remarque

Si vous ne voyez pas « (rapide) » dans , Scripts.logles données sont probablement supérieures à 80 Ko. Dans ce cas, les informations sont envoyées au serveur de site sous forme de message d’état. Utilisez le client StateMessage.log et le serveur de Statesys.logsite.

Passer en revue les messages sur le serveur de site

Lorsque la journalisation détaillée est activée sur le point de gestion, vous pouvez voir comment les messages clients entrants sont gérés. Dans MP_RelayMsgMgr.log, recherchez .TaskID

Dans l’exemple MP_RelayMsgMgr.log , vous pouvez voir l’ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) du client et le Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}. Un ID de message est attribué à la réponse du client avant son envoi au moteur de traitement des messages :

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

Lorsque la journalisation détaillée est activée sur SMS_MESSAGE_PROCESSING_ENGINE.log, les résultats du client sont traités. Utilisez l’ID de message que vous avez trouvé dans .MP_RelayMsgMgr.log Les entrées du journal de traitement sont similaires à l’exemple suivant :

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]

Conseil

Si vous obtenez une exception pendant le traitement, vous pouvez l’examiner en exécutant la requête SQL suivante et en examinant la colonne Exception. Une fois le message traité, il ne figure plus dans la MPE_RequestMessages_Instant table.

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

Dans BgbServer.log, recherchez le PushID pour voir le nombre de clients qui ont signalé ou échoué.

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)

Vérifiez la vue de surveillance de CMPivot à partir de SQL Server à l’aide de TaskID.

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

Requêtes SQL CMPivot pour la résolution des problèmes dans la version 1902

Résoudre les problèmes de CMPivot dans les versions 1810 et antérieures

Dans Configuration Manager versions 1810 et antérieures, votre serveur de site gère la communication avec le client.

Obtenir des informations à partir du serveur de site

Par défaut, les fichiers journaux du serveur de site se trouvent dans C:\Program Files\Microsoft Configuration Manager\logs. Cet emplacement peut être différent si vous avez spécifié un répertoire d’installation autre que celui par défaut ou si vous avez déchargé des éléments tels que le fournisseur SMS sur un autre serveur.

smsprov.log Recherchez cette ligne :

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

Recherchez l’ID dans la fenêtre CMPivot. Cet ID est .ClientOperationID

Fenêtre CMPivot avec ClientOperationID mis en surbrillance

Recherchez le dans TaskID la table ClientAction. correspond TaskID au dans UniqueID la table ClientAction.

select * from ClientAction where ClientOperationId=<id>

Dans BgbServer.log, recherchez le que TaskID vous avez collecté à partir de SQL. Il est étiqueté TaskGUID. Par exemple :

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

Journaux clients

Une fois que vous disposez des informations du serveur de site, vérifiez les journaux du client. Par défaut, les journaux du client se trouvent dans C:\Windows\CCM\Logs.

Dans CcmNotificationAgent.log, recherchez les journaux d’activité similaires à l’entrée suivante :

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

Scripts.log Recherchez le TaskID. Dans l’exemple suivant, nous voyons 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}

Regardez dans StateMessage.log. Dans l’exemple suivant, vous voyez que TaskID se trouve près du bas du message en regard de <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)

Passer en revue les messages sur le serveur de site

Ouvrez statesys.log pour voir si le message est reçu et traité. Dans l’exemple suivant, vous voyez TaskID près du bas du message en regard de <Param>. Activez la journalisation détaillée sur le composant SMS_STATE_SYSTEM pour afficher ces entrées de journal.

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

Si le message n’a pas été traité, vérifiez la boîte de réception du message d’état. L’emplacement de la boîte de réception par défaut est C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Recherchez les fichiers dans les emplacements suivants :

  • Entrant
  • Endommagé
  • Processus

Vérifiez la vue de surveillance pour CMPivot via la requête SQL suivante à l’aide de :TaskID

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

Remarque

Pour les clients qui utilisent la version 1810 ou ultérieure, la messagerie d’état n’est pas utilisée, sauf si la sortie est supérieure à 80 Ko. Lors de la résolution des problèmes de CMPivot dans ces cas, vous pouvez obtenir plus d’informations lorsque vous activez la journalisation détaillée sur vos fournisseurs de services et les SMS_MESSAGE_PROCESSING_ENGINE du serveur de site. Pour plus d’informations sur l’activation de la journalisation détaillée, consultez Options de journalisation du serveur de site.

Pour résoudre les problèmes, reportez-vous aux journaux suivants :

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Prochaines étapes