Udostępnij za pośrednictwem


Rozwiązywanie problemów z programem CMPivot

CMPivot to narzędzie, które zapewnia dostęp do stanu urządzeń w czasie rzeczywistym w danym środowisku. Narzędzie CMPivot uruchamia zapytanie na wszystkich aktualnie połączonych urządzeniach w kolekcji docelowej i zwraca wyniki.

Czasami może być konieczne rozwiązywanie problemów z programem CMPivot. Jeśli na przykład komunikat o stanie z klienta do programu CMPivot zostanie uszkodzony, serwer lokacji nie może przetworzyć komunikatu. Ten artykuł ułatwia zrozumienie przepływu informacji dotyczących programu CMPivot.

Rozwiązywanie problemów z programem CMPivot w wersji 1902 lub nowszej

W programie Configuration Manager w wersji 1902 lub nowszej można uruchomić program CMPivot z centralnej lokacji administracyjnej (CAS) w hierarchii. Lokacja główna nadal obsługuje komunikację z klientem.

Po uruchomieniu programu CMPivot z usługi CAS używa on szybkiego kanału subskrypcji komunikatów do komunikowania się z lokacją główną. Program CMPivot nie używa standardowej replikacji programu SQL Server między lokacjami. Jeśli wystąpienie programu SQL Server lub dostawca programu SMS jest zdalne lub używasz zawsze włączonej grupy dostępności programu SQL Server, będziesz mieć "scenariusz podwójnego przeskoku" dla programu CMPivot. Aby uzyskać informacje na temat definiowania ograniczonego delegowania dla "scenariusza podwójnego przeskoku", zobacz CMPivot począwszy od wersji 1902.

Ważna

Podczas rozwiązywania problemów z programem CMPivot włącz pełne rejestrowanie punktów zarządzania i SMS_MESSAGE_PROCESSING_ENGINE serwera lokacji, aby uzyskać więcej informacji. Ponadto, jeśli dane wyjściowe klienta są większe niż 80 KB, włącz pełne rejestrowanie na serwerze MP i składniku SMS_STATE_SYSTEM serwera lokacji. Aby uzyskać informacje o sposobie włączania pełnego rejestrowania, zobacz Opcje rejestrowania serwera lokacji.

Pobieranie informacji z serwera lokacji

Domyślnie pliki dziennika serwera lokacji znajdują się w C:\Program Files\Microsoft Configuration Manager\logsfolderze . Ta lokalizacja może być inna, jeśli określono inny niż domyślny katalog instalacyjny lub odciążono elementy, takie jak dostawca programu SMS, na inny serwer. Jeśli uruchomisz polecenie CMPivot z serwera CAS, dzienniki znajdują się na serwerze lokacji głównej.

smsprov.log Poszukaj następujących wierszy:

  • Configuration Manager w wersji 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager w wersji 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 to Script-Guid dla programu CMPivot. Ten identyfikator GUID można również wyświetlić w komunikatach o stanie inspekcji programu CMPivot.

Następnie znajdź identyfikator w oknie CMPivot. Ten identyfikator to ClientOperationID.

Okno CMPivot z wyróżnionym identyfikatorem ClientOperationID w wersji 1902

Znajdź element TaskID z tabeli ClientAction. Element TaskID odpowiada wartości w UniqueID tabeli ClientAction.

select * from ClientAction where ClientOperationId=<id>

W BgbServer.logprogramie poszukaj danych zebranych TaskID z programu SQL Server i zanotuj ciąg PushID. Element TaskID ma etykietę TaskGUID. Przykład:

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

Dzienniki klientów

Po zapoznaniu się z informacjami z serwera lokacji sprawdź dzienniki klienta. Domyślnie dzienniki klienta znajdują się w C:\Windows\CCM\Logsfolderze .

W CcmNotificationAgent.logprogramie poszukaj wpisów dziennika, które wyglądają jak następujące wiersze:

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.

Sprawdź Scripts.log element TaskID. W poniższym przykładzie zobaczysz: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}

Uwaga

Jeśli w programie nie widzisz komunikatu Scripts.log"(fast)", dane prawdopodobnie mają ponad 80 KB. W takim przypadku informacje są wysyłane do serwera lokacji jako komunikat o stanie. Użyj klienta StateMessage.log i serwera lokacji Statesys.log.

Przeglądanie komunikatów na serwerze lokacji

Po włączeniu pełnego rejestrowania w punkcie zarządzania można zobaczyć, jak są obsługiwane przychodzące komunikaty klientów. W MP_RelayMsgMgr.logpliku poszukaj elementu TaskID.

W tym przykładzie MP_RelayMsgMgr.log można zobaczyć identyfikator (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) klienta i Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}element . Identyfikator komunikatu jest przypisywany do odpowiedzi klienta przed wysłaniem go do aparatu przetwarzania komunikatów:

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

Po włączeniu pełnego rejestrowania w SMS_MESSAGE_PROCESSING_ENGINE.logprogramie są przetwarzane wyniki klienta. Użyj identyfikatora komunikatu znalezionego w pliku MP_RelayMsgMgr.log. Wpisy dziennika przetwarzania są podobne do następującego przykładu:

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]

Porada

Jeśli podczas przetwarzania wystąpi wyjątek, możesz go przejrzeć, uruchamiając następujące zapytanie SQL i przeglądając kolumnę Wyjątek. Po przetworzeniu komunikatu nie będzie on już znajdować się w MPE_RequestMessages_Instant tabeli.

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

W BgbServer.logprogramie poszukaj elementu , PushID aby wyświetlić liczbę klientów, którzy zgłosili lub zawiedli.

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)

Sprawdź widok monitorowania programu CMPivot z programu SQL Server przy użyciu polecenia TaskID.

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

Zapytania CMPivot SQL dotyczące rozwiązywania problemów w wersji 1902

Rozwiązywanie problemów z programem CMPivot w wersji 1810 lub starszej

W programie Configuration Manager w wersji 1810 lub starszej serwer lokacji obsługuje komunikację z klientem.

Pobieranie informacji z serwera lokacji

Domyślnie pliki dziennika serwera lokacji znajdują się w C:\Program Files\Microsoft Configuration Manager\logsfolderze . Ta lokalizacja może być inna, jeśli określono inny niż domyślny katalog instalacyjny lub odciążono elementy, takie jak dostawca programu SMS, na inny serwer.

smsprov.log Poszukaj tego wiersza:

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

Znajdź identyfikator w oknie CMPivot. Ten identyfikator to ClientOperationID.

Okno CMPivot z wyróżnionym identyfikatorem ClientOperationID

Znajdź element TaskID z tabeli ClientAction. Element TaskID odpowiada wartości w UniqueID tabeli ClientAction.

select * from ClientAction where ClientOperationId=<id>

W BgbServer.logprogramie poszukaj danych zebranych w języku TaskID SQL. Jest oznaczona etykietą TaskGUID. Przykład:

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

Dzienniki klientów

Po zapoznaniu się z informacjami z serwera lokacji sprawdź dzienniki klienta. Domyślnie dzienniki klienta znajdują się w C:\Windows\CCM\Logsfolderze .

W CcmNotificationAgent.logprogramie poszukaj dzienników, które są podobne do następującego wpisu:

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

Poszukaj pliku Scripts.logTaskID. W poniższym przykładzie widzimy 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}

Zajrzyj do pliku StateMessage.log. W poniższym przykładzie widać, że TaskID znajduje się on w dolnej części komunikatu obok <Param>pozycji :

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)

Przeglądanie komunikatów na serwerze lokacji

Otwórz statesys.log , aby sprawdzić, czy komunikat został odebrany i przetworzony. W poniższym przykładzie widać TaskID w dolnej części komunikatu obok <Param>. Włącz pełne rejestrowanie składnika SMS_STATE_SYSTEM, aby wyświetlić te wpisy dziennika.

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

Jeśli komunikat nie został przetworzony, sprawdź skrzynkę odbiorczą komunikatu o stanie. Domyślna lokalizacja skrzynki odbiorczej to C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Poszukaj plików w tych lokalizacjach:

  • Przychodzący
  • Uszkodzony
  • Proces

Sprawdź widok monitorowania programu CMPivot za pomocą następującego zapytania SQL przy użyciu TaskIDpolecenia :

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

Uwaga

W przypadku klientów korzystających z wersji 1810 lub nowszej komunikaty o stanie nie są używane, chyba że dane wyjściowe są większe niż 80 KB. Podczas rozwiązywania problemów z programem CMPivot w takich przypadkach można uzyskać więcej informacji po włączeniu pełnego rejestrowania na serwerach deputowanych i SMS_MESSAGE_PROCESSING_ENGINE serwera lokacji. Aby uzyskać informacje na temat włączania pełnego rejestrowania, zobacz Opcje rejestrowania serwera lokacji.

Aby rozwiązać problemy, zapoznaj się z następującymi dziennikami:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Następne kroki