Pemecahan masalah Aplikasi Klien WMI
WMI berisi sekumpulan kelas untuk memecahkan masalah aplikasi klien yang menggunakan penyedia WMI. Kelas peristiwa pemecahan masalah digabungkan ke kelas peristiwa WMI, sehingga Anda dapat melacak eksekusi aplikasi menggunakan log peristiwa pemecahan masalah yang ditangkap.
Daftar berikut berisi contoh pemecahan masalah kelas peristiwa:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
Dinaikkan sebelum WMI memanggil IWbemServices::ExecMethodAsync() pada penyedia.
Msft_WmiProvider_ExecMethodAsyncEvent_Post
Dinaikkan setelah WMI memanggil IWbemServices::ExecMethodAsync() pada penyedia.
Prosedur berikut menunjukkan cara memecahkan masalah eksekusi aplikasi.
Untuk menyiapkan pemecahan masalah WMI
- Buat dan kompilasi file MOF untuk menggunakan konsumen peristiwa pengelogan WMI.
- Jalankan aplikasi klien Anda.
- Lihat file log pemecahan masalah untuk semua operasi penyedia dan peristiwa kegagalan, dan analisis log untuk mendiagnosis masalah klien yang Anda temui.
Pendekatan pemecahan masalah lainnya adalah melihat daftar penyedia yang saat ini ada di cache komputer, dengan menghitung MSFT_Providers di namespace root\cimv2 . Ada metode di kelas ini yang memungkinkan Anda memuat dan membongkar penyedia untuk tujuan penelusuran kesalahan atau penyiapan.
Contoh kode berikut menggunakan konsumen peristiwa pengelogan WMI untuk menangkap semua peristiwa kelas peristiwa induk, sehingga menangkap semua peristiwa operasi penyedia.
#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 ;
} ;
Saat pesan kesalahan menunjukkan kegagalan pemuatan penyedia, gunakan MSFT_WmiProvider_LoadOperationFailureEvent untuk mengidentifikasi penyedia mana yang menyebabkan kesalahan.
Topik terkait