Udostępnij za pośrednictwem


Rozwiązywanie problemów z aplikacjami klienckimi usługi WMI

Usługa WMI zawiera zestaw klas do rozwiązywania problemów aplikacji klienckich korzystających z dostawców usługi WMI. Klasy zdarzeń rozwiązywania problemów są powiązane z klasami zdarzeń usługi WMI, dzięki czemu można śledzić wykonywanie aplikacji przy użyciu dziennika przechwyconych zdarzeń rozwiązywania problemów.

Poniższa lista zawiera przykłady rozwiązywania problemów z klasami zdarzeń:

Poniższa procedura przedstawia sposób rozwiązywania problemów z wykonywaniem aplikacji.

Aby skonfigurować rozwiązywanie problemów z WMI

  1. Utwórz i skompiluj plik MOF, aby użyć odbiorcy zdarzeń rejestrowania usługi WMI.
  2. Uruchom aplikację kliencką.
  3. Wyświetl plik dziennika rozwiązywania problemów dla wszystkich zdarzeń operacji i awarii dostawcy oraz przeanalizuj dziennik, aby zdiagnozować napotkane problemy klienta.

Innym podejściem do rozwiązywania problemów jest wyświetlenie listy dostawców aktualnie obecnych w pamięci podręcznej komputera, poprzez wyliczenie MSFT_Providers w przestrzeni nazw root\cimv2. Istnieją metody w tej klasie, które umożliwiają ładowanie i usuwanie dostawców na potrzeby debugowania lub konfigurowania.

Poniższy przykład kodu używa odbiorcy zdarzeń rejestrowania usługi WMI do przechwytywania wszystkich zdarzeń klasy zdarzeń nadrzędnych, co umożliwia przechwytywanie wszystkich zdarzeń operacyjnych dostawcy.

#pragma autorecover
#pragma namespace("\\\\.\\root\\subscription")

instance of __EventFilter as $Filter
{
  Name = "ProviderOperationEvents" ;
  EventNamespace = "root\\cimv2" ;
  Query = "SELECT * FROM MSFT_WmiProvider_OperationEvent" ;
  QueryLanguage = "WQL" ;
} ;

Instance of LogFileEventConsumer as $Consumer
{
  Name = "ProviderOperationEvents" ;
  FileName = "C:\\test.txt" ;
  Text = "Operation - %__TEXT%" ;
} ;

instance of __FilterToConsumerBinding
{
  Filter = $Filter ;
  Consumer = $Consumer ;
  MaintainSecurityContext = TRUE ;
} ;

Gdy komunikaty o błędach wskazują błąd ładowania dostawcy, użyj MSFT_WmiProvider_LoadOperationFailureEvent, aby zidentyfikować, który dostawca spowodował błąd.

Rozwiązywanie problemów z WMI

Klasy diagnostyczne WMI