- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《WMI轻松入门帮助教程(基础+进阶》.doc
WMI轻松入门之一——
基本概念2007年07月15日 星期日 上午 01:12其实我给文章起这样的名字,绝对没有轻视WMI的意思,事实上就连微软也有“WMI非常难于学习而且更难于使用”的说法,在近日的学习过程中更感觉到了WMI检索功能的强大,之所以起个“轻松入门”的名字,我只是有感于外国人写教程在思路上和国人不太一致,西方式的幽默看起来困难无比,再加上一上手就在类的基本结构上展开讨论,吓跑了无数Vbs的爱好者,想从国人常见的角度出发来说说怎么学习WMI而已。百度空间的长度限制太讨厌了,一次发不完,只好分割成三部分,题目只能大致起了,见谅。
一、什么是WMI?微软有很多说法,大家可以到脚本中心查阅,我这样理解,WMI是一个用于管理Windows系统资源的对象,其内部应是一个树状的数据库,数据库中包含了很多个分支,每个分支被称作命名空间,每个命名空间包含了很多个对托管资源的抽象定义,这种定义叫做类。在很多计算机教材中喜欢把类比作建筑蓝图,依据蓝图建造的楼宇叫做类的实例,我更喜欢将类和其实例的关系比作表格,类就是表格的字段定义,而表中的数据就是一个个的类的实例,也许我这样说会让很多朋友更加糊涂,但是依此类推,WMI中最终存在的是各种软硬件资源的抽象定义,我们利用WMI,就是要按图索骥,通过类定义,获得类实例,检索出符合要求的属性,调用其内置的方法,实现我们的目标。相信很多朋友已经发现,我将WMI等同于CIM库了,我清楚他们不是一回事,但我相信这样更容易理解。如图:
二、WMI的基本结构
严格说来,WMI由四部分组成:
1、 公共信息模型对象管理器——CIMOM
2、 公共信息模型——CIM
3、 WMI提供程序
4、 WMI脚本对象库
其中其第1、2、3三个部分,在使用中很少加以区别,我们一般统称为CIM库。
所以我们可以认为WMI实际是由两部分组成:CIM库和WMI脚本对象库。在具体使用过程中,我们是通过WMI脚本对象库去访问CIM库,管理托管的资源。也就是说,在我们编写脚本的过程大致可以分为这么几步:
1、 创建WMI对象脚本库的指针实例;
2、 调用其实例的方法,连接到CIM库,并指明需要访问的资源的逻辑位置;
3、 获得托管资源也就是类的实例的集合;
4、 枚举实例,完成工作。
这几个步骤在我们将来编写的代码中可以明确的反映出来。
三、常用的命名空间
命名空间是个很复杂的概念,相信在微软的网站上一定有很多的篇幅介绍这个概念,据我个人理解,命名空间是对类所处逻辑位置的一个约定。打个比方说:张家也有个孩子叫小强,李家也有个孩子小强。大家站在一起,你大声叫小强,你说这到底是叫哪一个小强呢?张家,李家都是一个姓,一个人的姓实际上就是现实中的一种名字空间。好了,现在你大声叫“张小强”,我们就明确的知道你到底是叫哪一个小强了。这就好比在变量名前加上名字空间前缀。所以可以通俗的说,名字空间就是一个变量的姓氏。问题是这样我们还会碰到一个问题,世界上有很多姓张的,也有可能有很多的张小强,这怎么办呢?这时候我们可以这样说张老三家的小强,张是一个名字空间,张老三又是张下面的二级名字空间.
张.老三的家.小强 = 110
张.三丰的家.小强= 119
也许说的更糊涂,但大致就这样吧,我本来也就不是说明这个的。
据微软称,WMI的命名空间共有16个,不过不用担心,我们常用的只有两个:
1、 root\cimv2 在这个命名空间里包括了绝大多数与计算机、操作系统相关联的类。
2、 root\default 管理注册表的类
在使用中,我们用一个字符串表示命名空间,就像文件路径一样。
◎WMI轻松入门之二——连接到指定的CIM命名空间2007年07月15日 星期日 上午 01:13四、常用的脚本对象库
WMI脚本对象库由24个对象组成,在脚本中心有一副脚本库对象模型的图,有兴趣的朋友可以参考一下,作为入门,我们一般只用到其中的四个对象,其继承和层级关系如下:
SwbemLocator教本库对象→SwbemServicesWMI服务对象→SwbemObjectSet类实例集合对象→SwbemObject类的实例
好了,现在让我们来举个例子,详细说明一下这四个对象在脚本中的应用方法:
例一:用来检索计算机上安装的光驱:
strComputer = .
Set objSWbemLocator = CreateObject(WbemScripting.SWbemLocator)
Set objSWbemServices = objSWbemLocator.ConnectServer
Set col
文档评论(0)