我有一个System.Management.WqlEventQuery监听"__InstanceOperationEvent"
事件。此事件是、 和事件的基类"__InstanceCreationEvent"
,因此它捕获所有三个。"__InstanceDeletionEvent"
"__InstanceModificationEvent"
当我的WqlEventQuery.Condition为"TargetInstance ISA 'Win32_LogicalDisk'"
时,我只获得逻辑磁盘的事件,正如预期的那样。
但是,当我的WqlEventQuery.Condition为时"(TargetInstance ISA 'Win32_LogicalDisk' or TargetInstance ISA 'Win32_MappedLogicalDisk')"
,我仍然只收到Win32_LogicalDisk事件。或者,我也应该能够使用WqlEventQuery.Condition set as "TargetInstance ISA 'CIM_LogicalDisk'"
,因为CIM_LogicalDisk是Win32_LogicalDisk和Win32_MappedLogicalDisk的基类。不幸的是,这个替代查询也只返回Win32_LogicalDisk事件。
总之,我似乎无法捕获Win32_MappedLogicalDisk事件。我的假设是,当我右键单击网络共享并将其作为网络驱动器映射到新的驱动器号时,应该会生成这样的事件。尽管这个新的映射驱动器在资源管理器中显示得很好,但我的程序从未收到任何事件。
我的任何假设是错误的吗?什么是Win32_MappedLogicalDrive ,或者它与DriveType为“NetworkDrive”的Win32_LogicalDrive有何区别?如何使用 WMI 捕获连接/断开网络驱动器的事件?
更新:我在这里发布了更多关于这个问题的信息:http : //social.technet.microsoft.com/Forums/en-US/ocsmanagement/thread/1c92f08b-b9c9-4f27-a1bb-0c16a8868d19 结果是不幸的一面- UAC 的影响,除了在管理帐户下创建重复的驱动器映射外,没有其他解决方法。