我通常做我的大多数 wmi 查询 asnyc 并且通常我对它们没有问题。我设置了一个具有所有权限和必要 dcom 安全性的 ManangementScope [用于远程查询]。整个代码的一小段是这样的:
ManagementPath mp = new ManagementPath();
mp.NamespacePath = @"\root\cimv2";
mp.Server = computerName;
this.ms = new ManagementScope(mp, co); //privs + dcom [outside]
this.ms.Connect();
EventQuery eq = new EventQuery(query);
ManagementEventWatcher mew = new ManagementEventWatcher(this.ms, eq);
mew.EventArrived += new EventArrivedEventHandler(this.OnEventArrived);
mew.Stopped += new StoppedEventHandler(this.OnStopped);
mew.Start();
如前所述,很少有这个问题,但现在:-(查询的类是'Win32_LocalTime'并且查询开始,但不提供任何事件。在WBemTest中,这有效!
这是查询:
select * from __InstanceModificationEvent where targetinstance isa 'Win32_LocalTime'
我看到的一件事是,该类是单例,我可能必须使用特殊语法在查询中指定单例类,但我无法弄清楚。
此外,我尝试了一个使用 powershell 的异步查询并且它有效。然后,我用 PS 查询 'Win32_LocalTime' 并不起作用!
提示,提示或指向更多信息的指针真的很棒!
感谢到目前为止和最好的问候
++马布拉