2013-05-05 51 views
0

我通常会做我的wmi查询asnyc和通常我的大部分,我没有 与他们的问题。我设置了一个具有所有权限的ManangementScope和 必要的dcom安全性[用于远程查询]。整个代码的一个小片段短路是这样的:Win32_LocalTime异步WMI查询不会触发事件

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(); 

如前所述,很少有这样的问题,但现在:-( queryed类是“Win32_LocalTime”和查询开始,但 做不给任何事件在WBEMTEST,这个工程

这是查询:!

select * from __InstanceModificationEvent where targetinstance isa 'Win32_LocalTime' 

有一件事,我看到的是,该类是一个单身,我可能 将不得不使用一个特殊句法在查询中指定单例类,但我无法弄清楚。

此外,我尝试了一个与PowerShell的异步查询,它的工作。然后,我用PS来查询“Win32_LocalTime”并且不起作用!

提示,提示或指针的进一步信息将 真的很棒!

感谢这么远, 问候

++ mabra

+0

尝试指定轮询间隔像这样'SELECT * FROM __InstanceModificationEvent在1哪里TargetInstance ISA“Win32_LocalTime'' – RRUZ 2013-05-06 01:45:03

+0

谢谢,你是对的,它不是一个事件类。这是 - 在一个点上 - 只是另一个尝试。在主要问题[见我自己的答案]解决后,我得到了错误信息,正是这样说的;-) – mabra 2013-05-06 19:44:05

回答

0

问题解决了, “不小心” .... ;-)

的问题是在我的事件处理程序。在此,我正在访问 NewEvent.SystemProperties [“服务器”],它是空的, 线程死亡,恕不另行通知。 MSD说,他们不会改变这种行为:-(]我不知道这个行为是怎么回事, 。

直到我用了节目查询,它被认为是一个小“事件诊断器”, 我从来没有见过SystemProperties.Server beeing空:-(

现在我会改变一些代码。

无论如何,最好的问候!

++ mabra