Menerapkan Langganan Peristiwa Permanen Antar Nama Ruang

Disarankan agar semua langganan permanen dikompilasi ke dalam namespace \root\subscription. Ini mencegah kebutuhan untuk mengkompilasi konsumen permanen ke dalam setiap namespace yang digunakan, yang berarti bahwa hanya ada satu namespace untuk mencari langganan permanen. Gunakan properti EventNamespace__EventFilter untuk menerapkan langganan lintas-namespace.

Saat menggunakan CommandLineEventConsumer, penting untuk mengamankan executable yang Anda luncurkan. Jika executable tidak berada di lokasi yang aman, atau diamankan dengan daftar kontrol akses (ACL) yang kuat, siapa pun dapat mengganti executable Anda dengan salah satu dari mereka sendiri. Untuk informasi selengkapnya tentang ACL, lihat Membuat Deskriptor Keamanan untuk Objek Baru di C++.

Contoh kode Managed Object Format (MOF) berikut menunjukkan langganan lintas namespace.

#pragma namespace("\\root\\subscription")

instance of __EventFilter as $FLT
{
  Name = "Filter";
  Query = "SELECT * FROM __InstanceModificationEvent "
          "WHERE TargetInstance ISA \"Win32_LocalTime\" "
          "AND TargetInstance.Hour = 8 "
          "AND TargetInstance.Minute = 0 "
          "AND TargetInstance.Second = 0 "
          "AND TargetInstance.DayOfWeek = 6";
  QueryLanguage = "WQL";
  EventNamespace = "root\\cimv2";
};

instance of CommandLineEventConsumer as $CONS
{
  ExecutablePath = "cmd.exe";
  ShowWindowCommand = 7;
  RunInteractively = true;
};

instance of __FilterToConsumerBinding
{
  Consumer = $CONS;
  Filter = $FLT;
};