Menerima Peristiwa setiap saat
Anda mungkin ingin menulis aplikasi yang dapat bereaksi terhadap peristiwa kapan saja. Misalnya, administrator mungkin ingin menerima pesan email saat tindakan performa tertentu menurun di server jaringan. Dalam hal ini, aplikasi Anda harus berjalan setiap saat. Namun, menjalankan aplikasi terus menerus bukanlah penggunaan sumber daya sistem yang efisien. Sebagai gantinya, WMI memungkinkan Anda membuat konsumen peristiwa permanen. Konsumen peristiwa permanen harus memenuhi persyaratan keamanan khusus. Untuk informasi selengkapnya, lihat Mengamankan Peristiwa WMI.
Konsumen peristiwa permanen menerima peristiwa sampai pendaftarannya dibatalkan secara eksplisit.
Konsumen peristiwa permanen adalah kombinasi dari kelas, filter, dan objek COM WMI berikut yang berada di sistem Anda:
- Objek COM yang disebut konsumen fisik. WMI memasok beberapa konsumen permanen standar. Misalnya, konsumen Peristiwa Skrip Aktif menjalankan skrip saat peristiwa terjadi.
- Kelas konsumen permanen baru.
- Instans kelas konsumen permanen yang disebut konsumen logis.
- Filter yang berisi kueri untuk peristiwa.
- Tautan antara konsumen dan filter.
Properti konsumen peristiwa logis menentukan tindakan yang akan dilakukan saat diberi tahu tentang suatu peristiwa, tetapi tidak menentukan kueri peristiwa yang terkait dengannya. Ketika disinyalkan, WMI secara otomatis memuat objek COM yang mewakili konsumen peristiwa permanen ke dalam memori aktif. Biasanya, ini terjadi selama startup atau sebagai respons terhadap peristiwa pemicu. Setelah diaktifkan, konsumen peristiwa permanen bertindak sebagai konsumen peristiwa normal, tetapi tetap sampai secara khusus dibongkar oleh sistem operasi.
Anda dapat menulis konsumen peristiwa permanen Anda sendiri atau menggunakan Kelas Konsumen Standar WMI yang telah diinstal sebelumnya, seperti ActiveScriptEventConsumer. Untuk informasi selengkapnya, lihat Kelas Konsumen Standar, Pemantauan, dan Respons Peristiwa dengan Konsumen Standar, dan Peristiwa Pemantauan.
Prosedur berikut menjelaskan cara membuat konsumen peristiwa permanen Anda sendiri.
Untuk membuat konsumen peristiwa permanen Anda sendiri
Tentukan jenis peristiwa apa yang ingin Anda terima.
WMI mendukung peristiwa intrinsik dan ekstrinsik. Peristiwa intrinsik adalah peristiwa yang telah ditentukan sebelumnya oleh WMI, sedangkan peristiwa ekstrinsik adalah peristiwa yang ditentukan oleh penyedia pihak ketiga. Untuk informasi selengkapnya, lihat Menentukan Jenis Peristiwa yang Akan Diterima.
-
Perbedaan utama antara aplikasi manajemen dan konsumen fisik adalah bahwa pengguna memuat dan membongkar aplikasi manajemen, sedangkan WMI memuat dan membongkar konsumen fisik. Sebagian besar pengkodian Anda harus berada di konsumen fisik.
Catatan
Langkah ini adalah yang pertama dalam prosedur untuk kemudahan penjelasan. Dalam hal pengkodian, Anda harus benar-benar membuat konsumen fisik terakhir. Dengan begitu Anda dapat menjabarkan parameter dan logika untuk penyedia peristiwa permanen Anda sebelum Memulai pengkodian panjang. Namun, tidak ada batasan untuk menulis konsumen fisik terlebih dahulu.
Buat kelas konsumen baru yang menjelaskan konsumen fisik.
Seperti kelas apa pun, kelas konsumen menjelaskan parameter umum konsumen peristiwa permanen ke WMI.
-
Seperti kelas WMI lainnya, Anda harus membuat instans kelas konsumen jika ingin menerapkan kelas . Instans kelas konsumen juga dikenal sebagai konsumen logis. Konsumen logis mewakili konsumen fisik untuk WMI.
-
Kueri peristiwa yang mengaktifkan konsumen peristiwa permanen disebut filter peristiwa. Satu filter peristiwa dapat dikaitkan dengan beberapa konsumen peristiwa logis. Selain itu, beberapa filter peristiwa dapat dikaitkan dengan satu konsumen peristiwa logis. Filter adalah instans __EventFilter.
Peristiwa Log NT dihasilkan saat kueri konsumen peristiwa permanen gagal. Sumber peristiwa adalah WinMgmt, ID peristiwa adalah 10, dan jenis peristiwanya adalah Kesalahan.
Tautkan filter peristiwa ke konsumen logis.
Dengan menautkan filter peristiwa ke konsumen logis, Anda menginstruksikan WMI tentang filter peristiwa mana yang termasuk dalam konsumen logis mana. Konsumen peristiwa logis dan filter peristiwa ditautkan oleh instans kelas asosiasi __FilterToConsumerBinding. Saat peristiwa diterima yang cocok dengan kueri peristiwa yang dijelaskan dalam filter peristiwa, WMI menemukan konsumen peristiwa logis terkait dengan melihat instans kelas asosiasi. Setelah instans konsumen peristiwa logis berada, WMI menggunakan instans kelas __EventConsumerProviderRegistration untuk menemukan dan menjalankan konsumen peristiwa fisik yang terkait dengan instans ini.
Menulis penyedia konsumen peristiwa.
Penyedia konsumen peristiwa adalah objek COM yang menemukan konsumen fisik untuk WMI.