ric*_*ard 5 .net wmi terminology
我一直在阅读有关WMI的内容,并尝试了解它是什么,但这看起来像是很多行话和循环定义.
这里:Windows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems.
一个"基础设施"?咦?
它只是操作系统中用于访问系统资源和设备的一些钩子吗?什么?如果是这样,它是由什么组成的?这些COM类是?
什么是WMI?
好吧,WMI是一个允许查询机器信息的系统.WMI由许多不同的提供者和类组成,每个类都可以有属性和方法,与.NET不同.提供者负责返回课程.
您可以在本地或远程查询WMI.这就是为什么它被认为是一个管理基础设施.IT人员可以使用WMI远程获取信息并使用WMI执行操作.例如,如果您想知道计算机上的驱动器类型,可以运行如下的WQL查询:
SELECT * FROM Win32_DiskDrive
Run Code Online (Sandbox Code Playgroud)
这将返回Win32_DiskDrive的集合并告诉您有关它的信息.由于它们是对象,因此它们也有方法.
有时,WMI可以告诉您有关环境的信息,您无法在其他地方获取该信息,例如使用Win32_Mainboard获取有关主板的信息.
第三方开发人员可以编写自己的WMI提供程序和类,使他们的应用程序使用WMI进行管理,一些IT人员可能已经熟悉了,他们不想推倒重来.
Provider是在WMI和管理对象/类之间起作用的COM对象.类以MOF(托管对象格式)定义.因此,底层的事情是提供程序被注册为类的处理程序,并且当要求该类的信息时,提供程序被激活.与.NET一样,管理对象在命名空间中作用域并定义.微软的大部分都在\ROOT\cimv2.
提供者将实现接口IWbemProviderInit和IWbemProviderInitSink.有对一些好的细节在这里
由于它是一个COM对象,因此可以在.NET中编写WMI提供程序并用于ComVisible公开提供程序.
一旦你开发了它,你需要注册它.您也可以考虑在开发之前注册它以进行调试.
Microsoft在http://msdn.microsoft.com/en-us/library/aa393677(v=vs.85).aspx上有一个简单的例子.