Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
WMI contém um conjunto de classes para resolução de problemas em aplicações cliente que usam provedores WMI. As classes de evento de solução de problemas são acopladas às classes de evento WMI, de modo que você possa acompanhar a execução do aplicativo usando um log de eventos de solução de problemas capturados.
A lista a seguir contém exemplos de classes de evento de solução de problemas:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
Gerado antes das chamadas WMI IWbemServices::ExecMethodAsync() no fornecedor.
Msft_WmiProvider_ExecMethodAsyncEvent_Post
Gerado depois que o WMI chama IWbemServices::ExecMethodAsync() no provedor.
O procedimento a seguir mostra como solucionar problemas de execução de aplicativos.
Para configurar a solução de problemas do WMI
- Crie e compile um arquivo MOF para usar o consumidor de eventos de log WMI.
- Execute seu aplicativo cliente.
- Exiba o arquivo de log de solução de problemas para todos os eventos de operação e falha do provedor e analise o log para diagnosticar os problemas do cliente que você está encontrando.
Outra abordagem de solução de problemas é exibir a lista de provedores atualmente no cache do computador, enumerando MSFT_Providers no namespace root\cimv2. Há métodos nessa classe que permitem carregar e descarregar provedores para fins de depuração ou configuração.
O exemplo de código a seguir usa o consumidor de eventos de log WMI para capturar todos os eventos da classe de evento pai, capturando assim todos os eventos de operação do provedor.
#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 ;
} ;
Quando as mensagens de erro indicarem falha de carregamento do provedor, use MSFT_WmiProvider_LoadOperationFailureEvent para identificar qual provedor causou a falha.
Tópicos relacionados