Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ń:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
Zgłoszone przed wywołaniami usługi WMI dostawcy IWbemServices::ExecMethodAsync().
Msft_WmiProvider_ExecMethodAsyncEvent_Post
Wywoływane po wykonaniu usług WMI IWbemServices::ExecMethodAsync() na dostawcy.
Poniższa procedura przedstawia sposób rozwiązywania problemów z wykonywaniem aplikacji.
Aby skonfigurować rozwiązywanie problemów z WMI
- Utwórz i skompiluj plik MOF, aby użyć odbiorcy zdarzeń rejestrowania usługi WMI.
- Uruchom aplikację kliencką.
- 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.
Tematy pokrewne