首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows WMI 详解之WMI事件

WMI查询语言来过滤审核特定的事件,一个事件过滤器接受一个WMI事件查询参数,同时EventFilter事件过滤器可以对Intrinsic Events (内部事件)和Extrinsic Events...(外部事件)进行事件查询。...,一般情况下,WMI为存储在WMI存储库中的对象创建内部事件,提供程序为动态类生成内部事件,如果没有可用的提供程序,WMI将会为动态类创建一个实例,以下为WMI用于报告内部事件的系统类。...2)永久消费者类实例注册在WMI命名空间中,一直有效直至注销(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在),永久事件使用者一直运行到其注册被显式取消,然后在 WMI 或系统重新启动时启动...\\root\\subscription")2.创建_EventFilter类的实例并使用其查询属性来存储您的WQL事件查询

27310
您找到你想要的搜索结果了吗?
是的
没有找到

WMI技术介绍和应用——事件通知

介绍了这么多基础知识了,那如何查询事件通知呢?在《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中,我们讲解WMI查询静态数据时,我们可以使用同步查询和半同步查询两种查询方式。...而本文主要讲解的查询事件通知,它是动态发生的。即可能我查询的即刻,那个事件还未发生,我们需要等待一段时间,才会在事件发生后接收到通知。...这就意味着查询事件通知,是不可能使用同步查询方式,我们可以选择异步查询或者半同步查询方式。        ...临时事件使用者是我们未来最早接触到的一个使用者,顾名思义,它是指WMI接收事件通知的生命周期和发起查询的应用程序一致。WMI包含一个统一的接口用来向客户端应用程序提供WMI事件。        ...对于如何编写WMI事件提供者,我们会在之后介绍。         我们再回到查询事件通知,首先我们要编写一个异步事件查询类。

1.1K20

技术分享-持久性-WMI事件订阅

通常,通过 WMI 事件订阅的持久性需要创建以下三个类,它们用于存储有效负载或任意命令,指定将触发有效负载的事件并将两个类(__EventConsumer &__EventFilter)关联起来,以便执行和触发绑定一起...通过 WMI 事件订阅的持久性可以通过使用常见的 Microsoft 实用程序来实现,因此无需将文件放入磁盘。...PowerShell PowerShell 包含可以查询 WMI 对象并将信息检索回控制台的 cmdlet。以下命令可用于验证是否已创建任意事件以及恶意负载/命令是否存储在 WMI 存储库中。...该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。...事件,并自动将修改的 WMI 对象的结果返回到控制台屏幕上以供验证。

2.5K10

WMI技术介绍和应用——查询硬件信息

查询BIOS信息 如何使用WMI查询BIOS的序列号? SELECT SerialNumber FROM Win32_BIOS ? 如何使用WMI查询BIOS的厂商?...如何使用WMI查询内存信息? SELECT * FROM Win32_MemoryDevice ? 查询显示器信息 如何使用WMI查询显示器的分辨率?...查询CPU信息 如何使用WMI查询CPU的序列号? SELECT ProcessorId FROM Win32_Processor ? 如何使用WMI查询CPU的名称?...这个数据说明T9400是双核双线程CPU。 如何使用WMI判断当前系统是32位系统还是64位系统?...至此,使用WMI查询的内容就讲完了。之后我将讲解如何使用WMI监听事件,这也是个非常强大和有趣的功能,我们拭目以待吧。         工程源码见《WMI技术介绍和应用——WMI概述》结尾。

1.8K20

WMI技术介绍和应用——查询系统信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。...如果我们想知道本次电脑的启动方式,就可以使用这个方法查询到。同时,我们可以由此推断,在安全模式下,WMI也是可以使用的。 如何使用WMI查询当前系统所属的域?...如果当前系统不在任何域中,则这个查询将返回工作组(WorkGroup)名字。那怎么辨别呢,我们看下面一个查询。 如何使用WMI查询当前系统是否属于某个域?...如果通过对PartOfDomain的查询得出FALSE的答案,则可以查询Workgroup字段,查看该系统属于哪个工作组。 如何使用WMI查询当前系统属于域或工作组中属于什么角色?...如何使用WMI查询是否设置了键盘密码(Keyboard Password)?

1.3K30

WMI Series :管理对象的信息查询和方法访问

管理对象的信息查询和方法访问 在这一节内容,我们将通过几个实例来学习如何查询管理对象信息和访问管理对象提供的方法,这一部分内容将使用到我们在前面讲述到的 System.Management 命名空间中的相关类对象...管理对象的信息查询 管理对象的信息查询有两种方式,一种是直接枚举管理对象的各种属性,而获取我们感兴趣的数据;一种方法是通过 SQL 查询语句的方式来过滤冗余的数据,而得到感兴趣的数据。...上面访问的方法其实很简单,我们再看看如何通过 SQL 查询的方式来访问管理对象的数据。以下的例子是以 win32_Process管理对象为例。...创建一个进程,需要调用 Win32_Process WMI对象的Create方法。...由于WMI对象是如此之多,每个被管理的WMI对象的公开的方法又是不同的,InvokeMethod()方法是如何能区分这些不同的WMI对象以及WMI对象不同的公开方法,因为方法的不同就意味这参数不一样,因此我们还得知道

48410

线程-事件

创建  CreateEvent 销毁  CloseHandle 事件变为有信号(可以使用信号)  SetEvent 事件变为无信号(不可以使用信号)  ResetEvent 事件的创建 HANDLECreateEvent...打个小小比方,手动置位事件相当于教室门,教室门一旦打开(被触发),所以有人都可以进入直到老师去关上教室门(事件变成未触发)。...自动置位事件就相当于医院里拍X光的房间门,门打开后只能进入一个人,这个人进去后会将门关上,其它人不能进入除非门重新被打开(事件重新被触发)。 第三个参数表示事件的初始状态,传入TRUR表示已触发。...第四个参数表示事件的名称,传入NULL表示匿名事件。...SetEvent 函数功能:触发事件 函数原型:BOOLSetEvent(HANDLEhEvent); 函数说明:每次触发后,必有一个或多个处于等待状态下的线程变成可调度状态。

83180

WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类

在《WMI技术介绍和应用——VC开发WMI应用的基本步骤》文中,我们介绍了VC使用WMI技术的基本框架。本节我将讲解封装和实现一个用于半同步查询WMI的类。...(转载请指明出于breaksoftware的csdn博客)         我曾思考过如何编写一个比较有用的类,因为不同平台上WMI查询结果集是不同的,很难做个通用的类。...当我们调用一个半同步操作后,函数内部会启动线程去执行查询工作,之后会立即返回到我们的调用处。...当半同步内部线程查询到并封装完一个对象后,便会通知我们外面枚举结果的函数,告诉我们:一个结果准备好了,你可以使用了。这个相当于将合并结果集的过程去掉。...在之前对半同步的介绍中,我们说道:半同步函数启动的线程需要查询和封装下一个结果,其实这个可以看成是个异步操作,于是枚举结果这边需要等待那个实际查询线程完成一个结果。我给此参数设置为“一直等待”。

79820
领券