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
.
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 TaskGUID
como . 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.log
site .
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}'
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
.
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 TaskGUID
como . 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