什么是WMI的非行话定义?

时间:2011-05-26 20:42:45

标签: .net wmi terminology

我一直在阅读有关WMI的内容,并试图了解它是什么,但这看起来像是很多术语和循环定义。

HereWindows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems.

“基础设施”?咦?

是否只是操作系统的一些钩子,用于访问系统资源和设备?什么?如果是这样,它是由什么组成的?这些是COM类吗?

什么是WMI?

2 个答案:

答案 0 :(得分:8)

概述

嗯,WMI是一个允许查询有关机器信息的系统。 WMI由许多不同的提供者和类组成,每个类都可以有属性和方法,与.NET不同。提供者负责返回课程。

您可以在本地或远程查询WMI。这就是为什么它被认为是一个管理基础设施。 IT人员可以使用WMI远程获取信息并使用WMI执行操作。例如,如果您想知道机器上的驱动器类型,可以运行如下的WQL查询:

SELECT * FROM Win32_DiskDrive

这将返回Win32_DiskDrive的集合并告诉您有关它的信息。由于它们是对象,因此它们也有方法。

有时,WMI可以告诉您有关环境的信息,您无法在其他地方获取该信息,例如使用Win32_Mainboard获取有关主板的信息。

第三方开发人员可能会编写自己的WMI提供程序和类,以允许使用WMI管理其应用程序,这可能是IT人员已经熟悉的,他们不想重新发明轮子。

详细

Provider是一个COM对象,它在WMI和管理对象/类之间起作用。类以MOF(托管对象格式)定义。因此,底层的事情是提供程序被注册为类的处理程序,并且当要求该类的信息时,提供程序被激活。与.NET一样,管理对象在命名空间中作用域并定义。大部分微软都在\ROOT\cimv2

提供程序将实现接口IWbemProviderInitIWbemProviderInitSinkhere

有一些很好的细节

由于它是一个COM对象,因此可以在.NET中编写WMI提供程序并使用ComVisible来公开提供程序。

开发完成后,您需要register it。您也可以考虑在开发之前注册它以帮助调试。

Microsoft在http://msdn.microsoft.com/en-us/library/aa393677(v=vs.85).aspx上有一个简单的例子。

答案 1 :(得分:2)

我认为technet FAQ可能会有所帮助。

  

WMI中的“Instrumentation”一词指的是WMI可以获取有关计算机系统内部状态的信息,就像汽车的仪表板仪器可以检索和显示有关引擎状态的信息一样。 WMI通过建模Windows系统中的磁盘,进程或其他对象等对象来“设备”。这些计算机系统对象使用诸如Win32_LogicalDisk或Win32_Process之类的类建模;正如您所料,Win32_LogicalDisk类为计算机上安装的逻辑磁盘建模,Win32_Process类为当前在计算机上运行的任何进程建模。类基于称为公共信息模型(CIM)的可扩展模式。 CIM模式是分布式管理任务组(http://www.dmtf.org)的公共标准。

这只是一种程序化界面,可以让您获得系统信息。 Here你可以看看它的架构,它可能会回答你的一些问题。