WMI入门(一):什么是WMI

WMI出现至今已经二十多年了,但很多人对它并不熟悉。知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么?现在我跟大家说说我的理解。。。

  WMI有一组API。我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API。这些API是在系统安装WMI模块的时候安装的,通过他们我们能够能拿到我们想要的类。

  WMI有一个存储库。尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或者称为类的蓝图或者Schema。

  WMI有一个Service。WMI总是能够响应用户的访问,那是因为它有一个一直运行的Windows服务,名字叫Winmgmt。停止这个服务,所有对WMI的操作都将没有反应。

  WMI是可扩展的。人人都知道WMI能干很多事情,读取本机硬盘信息、读取远程计算机的用户信息、读取域用户信息等等。基本上,你能想到的获取或者更改资源的操作,它都能干。可谓吃得少,干得多。它为什么这么能干呢?这基于WMI的可扩展性。WMI对资源的操作,不是它自己实现了什么方法,而完全取决于向它注册的提供程序。

  WMI是管理员日常必备的强大工具之一,是脚本伴侣。当然也可以把一个大型系统建立在WMI以及WMI的提供程序之上。以下给两个使用WMI的例子:

示例一:

本示例利用VB Script检查本机的物理内存量:

strComputer = "."

Set wbemServices = Getobject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")

For Each wbemObject In wbemObjectSet
    WScript.Echo "Total Physical Memory (kb): " & wbemObject.TotalPhysicalMemory
Next

示例二:
本示例利用PowerShell检查本机的逻辑硬盘情况:

PS C:\Users\v-lukez> Get-WmiObject -Class Win32_LogicalDisk

结语:
  WMI功能强大,而且一直在发展,但是因为用的人不多,所以一直不温不火。希望更多的人能够慧眼识珠,看到的潜力。

时间: 2024-08-01 20:43:44

WMI入门(一):什么是WMI的相关文章

WMI入门

转:http://www.cnblogs.com/ceachy/archive/2013/03/21/WMI_What.html WMI入门(一):什么是WMI WMI出现至今已经二十多年了,但很多人对它并不熟悉.知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么?现在我跟大家说说我的理解... WMI有一组API.我们不管使用VBScript.PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API.这些API是在系统安装WMI模块的时候安装的,

SSIS常用的包—WMI数据读取任务和WMI事件监听任务

Windows Management Instrumentation (WMI)是Windows的最高机密之一,它允许你通过一个脚本界面来管理Windows平台.WMI数据读取任务通过WQL语言(WMA专用语言)来 接触管理服务器或者工作平台(例如查看系统日志).查询语句可以将结果输出到变量中.WMI数据读取任务可以完成下面的工作. 在事务日志中查询可能的错误信息 查询正在运行的应用程序 查询在包运行过程中有多少可用RAM 判断有多少可用的磁盘空间 在编辑界面中可以配置WMI数据读取任务,如图3

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

使用Python玩转WMI

最近在网上搜索Python和WMI相关资料时,发现大部分文章都千篇一律,并且基本上只说了很基础的使用,并未深入说明如何使用WMI.本文打算更进一步,让我们使用Python玩转WMI. 1 什么是WMI 具体请看微软官网对WMI的介绍.这里简单说明下,WMI的全称是Windows Management Instrumentation,即Windows管理规范.它是Windows操作系统上管理数据和操作的基础设施.我们可以使用WMI脚本或者应用自动化管理任务等. 从Using WMI可以知道WMI支

简易的WMI操作工具类CWmiUtilities

简介:      CWmiUtilities类是简易的WMI操作工具,它封装了Windows提供的部分WMI COM API,主要可用于读取或设置WMI实例的属性,比如可以通过WMI来读取,设置系统的各种信息,状态等. 用法:      CWmiUtilities类形似于ADODB.RecordSet,具体用法参考如下代码(实现读取系统CPU信息的功能). //构造CWmiUtilities CWmiUtilities wmi; //连接到WMI命名空间“root\CIMV2” if (!wmi

通过一个具体实例来理解WMI脚本编程-读取BIOS信息

Option Explicit 'WMI对象模型以及参考手册在MSDN2001中的位置: 'Platform SDK '   ->Setup and System Administration '   ->Windows Management Instrumentation '   ->WMI Reference '   ->Scripting API for WMI '对于Visual Stdio 2008: 'ms-help://MS.VSCC.v90/MS.MSDNQTR.v

使用WMI对象收集计算机信息

WMI(windows管理规范),是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础. CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口.有了WMI,工具软件和脚本程序访问操作系统的不同部分时不需要使用不同的API:相反,操作系统的不同部分都可以插入WMI,如

关于WMI对象 Get-WmiObject

一什么是WMI对象 Windows Management Instrumentation (WMI) 是 Windows 系统管理的核心技术,因为它可以按统一的方式公开各种类型的信息. 我们在针对Powershell学习的过程中,经常会看到一些针对WMI调取的命令或脚本,但是依然不知道WMI到底可以执行那些操作. 下面就以一些实例说明相关的问题. 二 Get-Wmiobject 我们需要首先知道自己的windows计算机支持那些可用的WMI类. 可以看到的类大概有上千个,那么这些类都能获取到那些

Windows Management Instrumentation WMI Security Technology Learning

目录 0. 引言 1. WMI(Windows Management Instrumentation)简介 2. 基于WMI的攻击向量 3. WMI编程示例 0. 引言 在进行服务器主机的入侵检测.安全攻防的研究中,常常会涉及到大量的和windows操作系统功能.资源.设备相关的操作(例如通过WMI COM API关闭FTP匿名登录等),而WMI提供了一个对windows操作系统底层各种异构模块/资源的统一接口,通过研究WMI(Windows Management Instruction)技术可