gpt4 book ai didi

.net - WMI 的非行话定义是什么?

转载 作者:行者123 更新时间:2023-12-04 17:27:30 27 4
gpt4 key购买 nike

我一直在阅读有关 WMI 的一些信息,并试图了解它是什么,但这一切似乎都是很多行话和循环定义。

Here : Windows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems.
“基础设施”?嗯?

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

什么是 WMI?

最佳答案

概述

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

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

SELECT * FROM Win32_DiskDrive

这将返回 Win32_DiskDrive 的集合并告诉你有关它的信息。因为它们是对象,所以它们也有方法。

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

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

细节

Provider 是在 WMI 和管理对象/类之间起作用的 COM 对象。类在 MOF(托管对象格式)中定义。所以底层的事情是提供者被注册为类的处理程序,当请求来自该类的信息时,提供者被启动。与 .NET 一样,管理对象是在命名空间中限定和定义的。大部分微软都在 \ROOT\cimv2 .

提供者将实现接口(interface) IWbemProviderInitIWbemProviderInitSink .有一些很好的细节 here

由于它是 COM 对象,因此可以在 .NET 中编写 WMI Provider 并使用 ComVisible暴露提供者。

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

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

关于.net - WMI 的非行话定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com