다음을 통해 공유


네임스페이스 간 영구 이벤트 구독 구현

모든 영구 구독을 \root\subscription 네임스페이스로 컴파일하는 것이 좋습니다. 이렇게 하면 영구 소비자를 사용 중인 각 네임스페이스로 컴파일할 필요가 없으므로 영구 구독을 찾을 네임스페이스가 하나만 있습니다. __EventFilterEventNamespace 속성을 사용하여 네임스페이스 간 구독을 구현합니다.

CommandLineEventConsumer사용하는 경우 시작하는 실행 파일을 보호하는 것이 중요합니다. 실행 파일이 안전한 위치에 있지 않거나 강력한 ACL(액세스 제어 목록)으로 보호되는 경우 누구나 실행 파일을 자신의 실행 파일 중 하나로 바꿀 수 있습니다. ACL에 대한 자세한 내용은 C++새 개체에 대한 보안 설명자 만들기를 참조하세요.

다음 MOF(Managed Object Format) 코드 예제에서는 네임스페이스 간 구독을 보여 줍니다.

#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;
};