Solución de problemas de CMPivot

CMPivot es una herramienta que proporciona acceso a un estado en tiempo real de los dispositivos del entorno. CMPivot ejecuta una consulta en todos los dispositivos conectados actualmente en la colección de destino y devuelve los resultados.

En ocasiones, es posible que tenga que solucionar problemas de CMPivot. Por ejemplo, si un mensaje de estado de un cliente a CMPivot se daña, el servidor de sitio no puede procesar el mensaje. Este artículo le ayuda a comprender el flujo de información de CMPivot.

Solución de problemas de CMPivot en la versión 1902 y posteriores

En Configuration Manager versiones 1902 y posteriores, puede ejecutar CMPivot desde el sitio de administración central (CAS) en una jerarquía. El sitio primario todavía controla la comunicación con el cliente.

Cuando se ejecuta CMPivot desde CAS, se usa el canal de suscripción de mensajes de alta velocidad para comunicarse con el sitio primario. CMPivot no usa la replicación SQL Server estándar entre sitios. Si la instancia de SQL Server o el proveedor de SMS son remotos o si usa un grupo de disponibilidad de SQL Server Always On, tendrá un "escenario de salto doble" para CMPivot. Para obtener información sobre cómo definir la delegación restringida para un "escenario de salto doble", vea CMPivot a partir de la versión 1902.

Importante

Al solucionar problemas de CMPivot, habilite el registro detallado en los puntos de administración (MP) y en la SMS_MESSAGE_PROCESSING_ENGINE del servidor de sitio para obtener más información. Además, si la salida del cliente es mayor que 80 KB, habilite el registro detallado en el mp y el componente de SMS_STATE_SYSTEM del servidor de sitio. Para obtener información sobre cómo habilitar el registro detallado, consulte Opciones de registro del servidor de sitio.

Obtener información del servidor de sitio

De forma predeterminada, los archivos de registro del servidor de sitio se encuentran en C:\Program Files\Microsoft Configuration Manager\logs. Esta ubicación puede ser diferente si especificó un directorio de instalación no predeterminado o elementos descargados como el proveedor de SMS en otro servidor. Si ejecuta CMPivot desde cas, los registros se encuentran en el servidor de sitio principal.

smsprov.log Busque estas líneas:

  • Configuration Manager versión 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager versión 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 es la Script-Guid de CMPivot. También puede ver este GUID en mensajes de estado de auditoría de CMPivot.

A continuación, busque el identificador en la ventana CMPivot. Este identificador es .ClientOperationID

Ventana CMPivot con ClientOperationID resaltado, versión 1902

Busque en TaskID la tabla ClientAction. TaskID corresponde a en UniqueID la tabla ClientAction.

select * from ClientAction where ClientOperationId=<id>

En BgbServer.log, busque el TaskID que recopiló de SQL Server y anote .PushID se TaskID etiqueta como TaskGUID. Por ejemplo:

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

Registros de cliente

Una vez que tenga la información del servidor de sitio, compruebe los registros de cliente. De forma predeterminada, los registros de cliente se encuentran en C:\Windows\CCM\Logs.

En CcmNotificationAgent.log, busque entradas de registro que se parezcan a las siguientes líneas:

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.

Compruebe Scripts.log si hay .TaskID En el ejemplo siguiente, verá 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:

Si no ve "(fast)" en Scripts.log, es probable que los datos supere los 80 KB. En este caso, la información se envía al servidor de sitio como un mensaje de estado. Use el StateMessage.log cliente y el servidor de Statesys.logsitio.

Revisión de mensajes en el servidor de sitio

Cuando se habilita el registro detallado en el punto de administración, puede ver cómo se controlan los mensajes de cliente entrantes. En MP_RelayMsgMgr.log, busque .TaskID

En el MP_RelayMsgMgr.log ejemplo, puede ver el identificador (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) del cliente y .Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0} Un identificador de mensaje se asigna a la respuesta del cliente antes de que se envíe al motor de procesamiento de mensajes:

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

Cuando el registro detallado está habilitado en SMS_MESSAGE_PROCESSING_ENGINE.log, se procesan los resultados del cliente. Use el identificador de mensaje que encontró en .MP_RelayMsgMgr.log Las entradas del registro de procesamiento son similares al ejemplo siguiente:

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]

Sugerencia

Si obtiene una excepción durante el procesamiento, puede revisarla ejecutando la siguiente consulta SQL y examinando la columna Excepción. Una vez procesado el mensaje, ya no estará en la MPE_RequestMessages_Instant tabla.

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

En BgbServer.log, busque para PushID ver el número de clientes que notificaron o no.

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)

Compruebe la vista de supervisión de CMPivot desde SQL Server mediante TaskID.

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

Consultas SQL de CMPivot para solucionar problemas en la versión 1902

Solución de problemas de CMPivot en 1810 y versiones anteriores

En Configuration Manager versiones 1810 y anteriores, el servidor de sitio controla la comunicación con el cliente.

Obtener información del servidor de sitio

De forma predeterminada, los archivos de registro del servidor de sitio se encuentran en C:\Program Files\Microsoft Configuration Manager\logs. Esta ubicación puede ser diferente si especificó un directorio de instalación no predeterminado o elementos descargados como el proveedor de SMS en otro servidor.

smsprov.log Busque esta línea:

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

Busque el identificador en la ventana CMPivot. Este identificador es .ClientOperationID

Ventana CMPivot con ClientOperationID resaltado

Busque en TaskID la tabla ClientAction. TaskID corresponde a en UniqueID la tabla ClientAction.

select * from ClientAction where ClientOperationId=<id>

En BgbServer.log, busque el TaskID que recopiló de SQL. Se etiqueta como TaskGUID. Por ejemplo:

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

Registros de cliente

Una vez que tenga la información del servidor de sitio, compruebe los registros de cliente. De forma predeterminada, los registros de cliente se encuentran en C:\Windows\CCM\Logs.

En CcmNotificationAgent.log, busque registros similares a la entrada siguiente:

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

Scripts.log Busque .TaskID En el ejemplo siguiente, vemos 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}

Busque en StateMessage.log. En el ejemplo siguiente, verá que TaskID está cerca de la parte inferior del mensaje junto 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)

Revisión de mensajes en el servidor de sitio

Abra statesys.log para ver si el mensaje se recibe y se procesa. En el ejemplo siguiente, verá TaskID cerca de la parte inferior del mensaje junto a <Param>. Habilite el registro detallado en el componente SMS_STATE_SYSTEM para ver estas entradas de registro.

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 el mensaje no se ha procesado, compruebe la bandeja de entrada del mensaje de estado. La ubicación predeterminada de la bandeja de entrada es C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Busque los archivos en estas ubicaciones:

  • Entrante
  • Dañado
  • Proceso

Compruebe la vista de supervisión de CMPivot mediante la siguiente consulta SQL mediante TaskID:

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

Nota:

En el caso de los clientes que usan la versión 1810 o posterior, la mensajería de estado no se usa a menos que la salida sea superior a 80 KB. Al solucionar problemas de CMPivot en estos casos, puede obtener más información al habilitar el registro detallado en los MP y el SMS_MESSAGE_PROCESSING_ENGINE del servidor de sitio. Para obtener información sobre cómo habilitar el registro detallado, consulte Opciones de registro del servidor de sitio.

Para solucionar problemas, consulte los registros siguientes:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Pasos siguientes