Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
WMI содержит набор классов для устранения неполадок клиентских приложений, использующих поставщиков WMI. Классы событий устранения неполадок связаны с классами событий WMI, таким образом, чтобы отслеживать выполнение приложения с помощью журнала записанных событий устранения неполадок.
В следующем списке содержатся примеры устранения неполадок классов событий:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
Вызывается перед вызовами WMI IWbemServices::ExecMethodAsync() на поставщике.
Msft_WmiProvider_ExecMethodAsyncEvent_Post
Вызывается после вызовов WMI IWbemServices::ExecMethodAsync() на поставщике.
В следующей процедуре показано, как устранить неполадки с выполнением приложения.
Чтобы настроить устранение неполадок WMI
- Создайте и скомпилируйте MOF-файл для использования потребителя событий ведения журнала WMI.
- Запустите клиентское приложение.
- Просмотрите файл журнала устранения неполадок для всех событий поставщика и событий сбоя, а также проанализируйте журнал, чтобы диагностировать возникающие проблемы клиента.
Другим способом устранения неполадок является просмотр списка поставщиков в кэше компьютера, перечислив MSFT_Providers в пространстве имен root\cimv2. В этом классе есть методы, позволяющие загружать и выгружать провайдеров для отладки или настройки.
В следующем примере кода используется потребитель события логирования WMI для записи всех событий родительского класса, что позволяет записывать все операционные события поставщика.
#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 ;
} ;
Если сообщения об ошибках указывают на сбой загрузки поставщика, используйте MSFT_WmiProvider_LoadOperationFailureEvent, чтобы определить, какой поставщик вызвал ошибку.
Связанные разделы