WMI的非术语定义是什么?

5

"基础设施" - 指系统或组织的基本、底层框架或特征。它是支撑体系的骨干。 - JAB
基础设施是什么? - richard
不确定它能帮多少忙,但维基百科页面有一些详细信息。http://en.wikipedia.org/wiki/Windows_Management_Instrumentation - JAB
2
WMI 概述位于 http://technet.microsoft.com/en-us/library/cc787057(WS.10).aspx 提供了一个合理的描述。从 http://msdn.microsoft.com/library/Aa394582.aspx 开始的文档会告诉你如何使用它。底层 API 是 COM。 - Jim Mischel
2个回答

8

概述

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

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

SELECT * FROM Win32_DiskDrive

那将返回一个 Win32_DiskDrive 集合,并告诉您有关它的信息。由于它们是对象,因此它们也具有方法。
有时,WMI 可以告诉您有关环境的信息,您无法从其他地方获取该信息,例如使用 Win32_Mainboard 获取有关主板的信息。
第三方开发人员可能会编写自己的 WMI 提供程序和类,以允许使用 WMI 管理其应用程序,IT 人员很可能已经熟悉这一点,他们不想重复造轮子。
提供程序是充当 WMI 和管理对象/类之间的 COM 对象。类在 MOF(托管对象格式)中定义。因此,提供程序作为处理程序注册为类,当要求该类的信息时,提供程序会启动。与 .NET 类似,管理对象是有范围的,并在命名空间中定义。Microsoft 的大部分管理对象都在 \ROOT\cimv2 中。
提供程序将实现接口 IWbemProviderInitIWbemProviderInitSink。这里有一些关于此的良好细节here
由于它是一个COM对象,因此可以在.NET中编写WMI提供程序并使用ComVisible来公开提供程序。
开发完成后,您需要注册它。您可能还考虑在开发之前注册它以帮助调试。
Microsoft在http://msdn.microsoft.com/en-us/library/aa393677(v=vs.85).aspx上提供了一个简单的示例。

这是一个很好的开始。WMI由什么组成? - richard
@Richard 我添加了一点内容。 - vcsjones

2
我认为Technet FAQ可能会有一些帮助。在WMI中,“Instrumentation”一词指的是WMI可以获取关于计算机系统内部状态的信息,就像汽车仪表盘仪器可以检索和显示有关引擎状态的信息一样。 WMI通过对Windows系统中发现的磁盘、进程或其他对象建模来“instrument”这些计算机系统对象。这些计算机系统对象使用类进行建模,例如Win32_LogicalDisk或Win32_Process。正如您所期望的那样,Win32_LogicalDisk类对计算机上安装的逻辑磁盘进行建模,而Win32_Process类对计算机上当前运行的任何进程进行建模。类基于称为公共信息模型(CIM)的可扩展模式。 CIM模式是分布式管理任务力量(http://www.dmtf.org)的公共标准。
它只是一种编程接口,允许您获取系统信息。 这里 您可以查看其架构,它可能会回答您的一些问题。

还有一个有用的答案。WMI是如何钩入系统的?它在哪里/如何安装? - richard
自Win2k以来,它已经成为系统的一部分。它是Windows服务之一。此链接显示如何打开/关闭它http://msdn.microsoft.com/en-us/library/aa826517(v=vs.85).aspx,因为我不记得它是否默认启用。 - Silx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接