WMI 与 Windows API

Posted

技术标签:

【中文标题】WMI 与 Windows API【英文标题】:WMI vs Windows APIs 【发布时间】:2009-11-11 06:16:39 【问题描述】:

使用WMI而不是Windows API访问系统信息有什么优点或缺点?如速度、额外权限、内存使用情况。

还是取决于 WMI 类以及 WMI 如何实现对信息的访问?

【问题讨论】:

【参考方案1】:

WMI 的主要缺点是速度,查询数据很慢,如果您在启动期间尝试使用它可能会延迟您的启动,因为 WMI 服务需要很长时间才能启动。

但是,WMI 信息更丰富,因为有时您需要进行多次 API 调用才能获得相同的数量,因此某些信息更容易获得,过滤语法可以大大减少您必须编写的代码量。

如果速度不是一个大问题,我总是倾向于 WMI。

【讨论】:

WMI 的另一个优点是所有“实体”都以标准化的方式(即类)表示。【参考方案2】:

缺点:速度优点:包装原生 API,因此当 API 调用发生变化时,除非 WMI 也发生变化,否则您将(可能)获得好处。它还可以为您节省一些编码。

【讨论】:

【参考方案3】:

还有更丰富的数据。由于程序员可以编写自己的 WMI 提供程序,因此您可以从第三方软件获取数据。这就是微软在其安全中心界面中所做的事情——从第三方防病毒和防火墙软件中获取数据。

【讨论】:

【参考方案4】:

WMI的优势:可以像当前机器一样轻松获取远程机器的信息

【讨论】:

【参考方案5】:

还有模仿! 您可以让您的程序与非授权用户一起运行,但通过指定凭据来访问远程计算机。

【讨论】:

【参考方案6】:

如果是系统作用域

WMI 的优势:

    不需要实施额外的驱动程序 WMI 的缺点: 需要 Bios 来包装代码 仅适用于 Windows。没有 Linux 收件箱驱动程序。

【讨论】:

以上是关于WMI 与 Windows API的主要内容,如果未能解决你的问题,请参考以下文章

转载 WMI方式:windows系统接入

作为 Windows 服务托管时,远程 WMI 不起作用

java调用windows的wmi获取设备性能数据

windows server 2008 r2 WMI服务不能启动

APIWindows 获取电池电量信息

APIWindows 程序提升权限函数