Compartilhar via


Resolver problemas do CMPivot

O CMPivot é uma ferramenta que fornece acesso a um estado em tempo real dos dispositivos no seu ambiente. O CMPivot executa uma consulta em todos os dispositivos atualmente ligados na coleção de destino e devolve os resultados.

Ocasionalmente, poderá ter de resolver problemas do CMPivot. Por exemplo, se uma mensagem de estado de um cliente para CMPivot ficar danificada, o servidor do site não conseguirá processar a mensagem. Este artigo ajuda-o a compreender o fluxo de informações do CMPivot.

Resolver problemas do CMPivot na versão 1902 e posterior

Nas versões 1902 e posteriores do Configuration Manager, pode executar o CMPivot a partir do site de administração central (CAS) numa hierarquia. O site primário ainda processa a comunicação com o cliente.

Quando executa o CMPivot a partir do CAS, este utiliza o canal de subscrição de mensagens de alta velocidade para comunicar com o site primário. O CMPivot não utiliza a replicação padrão do SQL Server entre sites. Se a instância do SQL Server ou o seu fornecedor de SMS for remoto ou se utilizar um grupo de disponibilidade AlwaysOn do SQL Server, terá um "cenário de duplo salto" para o CMPivot. Para obter informações sobre como definir a delegação restrita para um "cenário de duplo salto", veja CMPivot a partir da versão 1902.

Importante

Ao resolver problemas do CMPivot, ative o registo verboso nos pontos de gestão (MPs) e no SMS_MESSAGE_PROCESSING_ENGINE do servidor do site para obter mais informações. Além disso, se a saída do cliente for superior a 80 KB, ative o registo verboso no MP e no componente SMS_STATE_SYSTEM do servidor do site. Para obter informações sobre como ativar o registo verboso, veja Opções de registo do servidor do site.

Obter informações do servidor do site

Por predefinição, os ficheiros de registo do servidor do site estão localizados em C:\Program Files\Microsoft Configuration Manager\logs. Esta localização poderá ser diferente se tiver especificado um diretório de instalação não predefinido ou tiver descarregado itens como o Fornecedor de SMS para outro servidor. Se executar o CMPivot a partir do CAS, os registos encontram-se no servidor do site primário.

smsprov.log Procure estas linhas:

  • Configuration Manager versão 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager versão 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 é o Script-Guid para CMPivot. Também pode ver este GUID em mensagens de estado de auditoria CMPivot.

Em seguida, localize o ID na janela CMPivot. Este ID é o ClientOperationID.

Janela CMPivot com ClientOperationID realçado, versão 1902

Localize o na TaskID tabela ClientAction. O TaskID corresponde ao UniqueID na tabela ClientAction.

select * from ClientAction where ClientOperationId=<id>

No BgbServer.log, procure o TaskID que recolheu do SQL Server e anote o PushID. O TaskID está etiquetado TaskGUIDcomo . Por exemplo:

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

Logs de clientes

Depois de ter as informações do servidor do site, verifique os registos do cliente. Por predefinição, os registos do cliente estão localizados em C:\Windows\CCM\Logs.

No CcmNotificationAgent.log, procure entradas de registo que se pareçam com as seguintes linhas:

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.

Verifique Scripts.log a TaskID. No exemplo seguinte, 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}

Observação

Se não vir "(fast)" no Scripts.log, os dados são provavelmente superiores a 80 KB. Neste caso, as informações são enviadas para o servidor do site como uma mensagem de estado. Utilize o cliente e StateMessage.log o servidor do Statesys.logsite .

Rever mensagens no servidor do site

Quando o registo verboso está ativado no ponto de gestão, pode ver como as mensagens de cliente recebidas são processadas. Em MP_RelayMsgMgr.log, procure o TaskID.

MP_RelayMsgMgr.log No exemplo, pode ver o ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) do cliente e o Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}. É atribuído um ID de mensagem à resposta do cliente antes de ser enviado para o motor de processamento de mensagens:

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 o registo verboso está ativado em SMS_MESSAGE_PROCESSING_ENGINE.log, os resultados do cliente são processados. Utilize o ID da mensagem que encontrou no MP_RelayMsgMgr.log. As entradas de registo de processamento são semelhantes ao seguinte exemplo:

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]

Dica

Se receber uma exceção durante o processamento, pode revê-la ao executar a seguinte consulta SQL e ver a coluna Exceção. Depois de a mensagem ser processada, deixará de estar na MPE_RequestMessages_Instant tabela.

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

No BgbServer.log, procure o PushID para ver o número de clientes que reportaram ou falharam.

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)

Verifique a vista de monitorização do CMPivot a partir do SQL Server com o TaskID.

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

CmPivot SQL queries for troubleshooting in version 1902 (Consultas SQL cmpivot para resolução de problemas na versão 1902)

Resolver problemas do CMPivot na versão 1810 e anterior

Nas versões 1810 e anteriores do Configuration Manager, o servidor do site processa a comunicação com o cliente.

Obter informações do servidor do site

Por predefinição, os ficheiros de registo do servidor do site estão localizados em C:\Program Files\Microsoft Configuration Manager\logs. Esta localização poderá ser diferente se tiver especificado um diretório de instalação não predefinido ou tiver descarregado itens como o Fornecedor de SMS para outro servidor.

smsprov.log Procure esta linha:

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

Localize o ID na janela CMPivot. Este ID é o ClientOperationID.

Janela CMPivot com ClientOperationID realçado

Localize o na TaskID tabela ClientAction. O TaskID corresponde ao UniqueID na tabela ClientAction.

select * from ClientAction where ClientOperationId=<id>

Em BgbServer.log, procure o TaskID que recolheu do SQL. Está etiquetado TaskGUIDcomo . Por exemplo:

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

Logs de clientes

Depois de ter as informações do servidor do site, verifique os registos do cliente. Por predefinição, os registos do cliente estão localizados em C:\Windows\CCM\Logs.

No CcmNotificationAgent.log, procure registos semelhantes à entrada seguinte:

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

Scripts.log Procure o TaskID. No exemplo seguinte, 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}

Procure em StateMessage.log. No exemplo seguinte, verá que TaskID está perto da parte inferior da mensagem 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)

Rever mensagens no servidor do site

Abra statesys.log para ver se a mensagem foi recebida e processada. No exemplo seguinte, verá TaskID junto à parte inferior da mensagem junto a <Param>. Ative o registo verboso no componente SMS_STATE_SYSTEM para ver estas entradas de registo.

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 a mensagem não tiver sido processada, selecione a caixa de entrada da mensagem de estado. A localização predefinida da caixa de entrada é C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Procure os ficheiros nestas localizações:

  • Entrada
  • Danificado
  • Processo

Verifique a vista de monitorização do CMPivot através da seguinte consulta SQL com :TaskID

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

Observação

Para clientes que estão a utilizar a versão 1810 ou superior, as mensagens de estado não são utilizadas, a menos que o resultado seja superior a 80 KB. Ao resolver problemas do CMPivot nestes casos, pode obter mais informações quando ativar o registo verboso nos seus MPs e no SMS_MESSAGE_PROCESSING_ENGINE do servidor do site. Para obter informações sobre como ativar o registo verboso, veja Opções de registo do servidor do site.

Para resolver problemas, veja os seguintes registos:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Próximas etapas