- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
最近在学习WMI和WQL。我找到了可以查询的 Win32 类列表(来自 MSDN),但我无法找到事件类列表(应该是 Win32 类列表的子集,不是吗?)有这个 list 或某种备忘单吗?我只是出于好奇而问这个。
事件类示例 - Win32_ProcessStartTrace
最佳答案
以下是使用 C# 和 System.Management
列出 root\cimv2
命名空间中的 WMI 事件类的方法:
using System;
using System.Management;
class Program
{
static void Main()
{
string query =
@"Select * From Meta_Class Where __This Isa '__Event'";
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
foreach (ManagementBaseObject cimv2Class in searcher.Get())
{
Console.WriteLine(cimv2Class.ClassPath.ClassName);
}
}
}
root\cimv2
是默认的 WMI 命名空间,因此您不必使用 ManagementScope
实例。传递给 ManagementObjectSearcher
的 WQL 查询是一个 WMI 元数据查询。它使用:
Meta_Class
将查询指定为架构查询,以及__This
属性递归列出 __Event
子类如果 WMI 类的提供者实现为事件 WMI 提供者并且必须是 __Event
的子类,则 WMI 类是一个事件类。这并不意味着您不能在 WQL 事件查询中使用“普通”WMI 类,例如 Win32_Process
和 Win32_Service
。您只需使用 __InstanceOperationEvent
派生的帮助程序类之一,如 __InstanceCreationEvent
或 __InstanceDeletionEvent
,WMI 将使用其自己的事件子系统来传递事件。
这是订阅 Win32_Process
创建事件的示例 WQL 查询:
Select * From __InstanceCreationEvent Within 5 Where TargetInstance Isa 'Win32_Process'
在这种情况下,您必须使用 Within
条款。
关于c# - WMIEvent 类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1043220/
最近在学习WMI和WQL。我找到了可以查询的 Win32 类列表(来自 MSDN),但我无法找到事件类列表(应该是 Win32 类列表的子集,不是吗?)有这个 list 或某种备忘单吗?我只是出于好奇
我正在尝试编写一个高效 Windows 8.1 PowerShell 4.0 脚本,它将捕获/触发两种类型的事件。我希望能够捕获这些事件/触发器,以便我可以执行一些操作,例如运行脚本或启动/停止服务或
我是一名优秀的程序员,十分优秀!