Risoluzione dei problemi relativi alle applicazioni client WMI
WMI contiene un set di classi per la risoluzione dei problemi applicazioni client che usano provider WMI. Le classi di eventi di risoluzione dei problemi sono associate alle classi di evento WMI, in modo da poter tenere traccia dell'esecuzione dell'applicazione usando un log di eventi di risoluzione dei problemi acquisiti.
L'elenco seguente contiene esempi di classi di eventi per la risoluzione dei problemi:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
Generato prima che WMI chiami IWbemServices::ExecMethodAsync() nel provider.
Msft_WmiProvider_ExecMethodAsyncEvent_Post
Generato dopo che WMI chiama IWbemServices::ExecMethodAsync() nel provider.
La procedura seguente illustra come risolvere i problemi di esecuzione dell'applicazione.
Per configurare la risoluzione dei problemi WMI
- Creare e compilare un file MOF per utilizzare il consumer di eventi di log WMI.
- Avvia l'applicazione client.
- Visualizzare il file di log per la risoluzione dei problemi relativi a tutte le operazioni del provider e gli eventi di errore e analizzare il log per diagnosticare i problemi del client riscontrati.
Un altro approccio alla risoluzione dei problemi consiste nel visualizzare l'elenco dei provider attualmente presenti nella cache del computer, enumerando MSFT_Providers nello spazio dei nomi root\cimv2. In questa classe sono disponibili metodi che consentono di caricare e scaricare provider per scopi di debug o configurazione.
Nell'esempio di codice seguente, viene utilizzato il consumer di eventi di registrazione WMI per acquisire tutti gli eventi della classe evento principale, catturando così tutti gli eventi delle operazioni del provider.
#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 i messaggi di errore indicano un errore di caricamento del provider, usare MSFT_WmiProvider_LoadOperationFailureEvent per identificare il provider che ha causato l'errore.
Argomenti correlati