WMI基础
WMI的起源,主要有计算机公司BMC软件、Cisco系统公司、Intel公司、Microsoft公司联合在一起形成万维网的企业管理
(WBEM,Web Based Enterprise Management)标准,后来WBEM交给了DMTF标准组织,而且DMTF启动了 一个称为通用信息模型
(CIM,Common Information Model)的项目。CIM想成为一种管理工具,它不受任何特定的实现环境。CIM是以面向对象原理
为基础的,并且规定了一个模型(称为Schema)和一种语言。
CIM Schema
Schema是具有各种特征的组织结构。在CIM的条件下,这种结构就是类的层次结构以及它们的方法、属性、限定词,等等。
CIM
把管理区域分为物理域和逻辑域,它们分别表示管理环境的物理和逻辑元素。逻辑域可以进一步分出如下子域:
系统域—与计算机、应用程序和网络系统(操作系统、设备和进程等)有关。
设备域—包含一些部件,以对系统域中的对象(储存、进程等)提供支持。
应用程序域—紧紧的围绕着应用程序的生命周期,从他们的安装到更新,再到重新安装。
网络域—代表协议、网络访问、拓扑和连接。
CIM分为两层—核心层和普通层。核心层是最抽象的,因为他与域和平台无关。普通层处理特定的域,他与人和平台无关。
WMI类,windows的wmi只是一种扩展,切忌。
WMI名称空间
WMI引入了名字空间的概念,用于对相同环境中存在的类进行分组。此外,名字空间也用于强加安全限制。名字空间有一个层
次结构,类似文件系统中的文件夹层次结构。
WMI创建的名字空间:
root—作为所用其他名字空间的占位符。包含WMI系统类。
root/Default—与windows注册表操作有关的主机类。
root/Security—用于与windows安全有关的类。
root/CIMV2—包含从CIM Schema派生的类,它们代表着我们最常工作的win32环境。
WMI结构
从概念上讲,WMI系统结构是多个不见得多层结构的一个例子。这些部件中的每个部件都有一个不同的实现和功能。
WMI结构组件
WMI结构包括一个客户端(管理应用程序),一个中介程序(作为CIM对象管理器实现),静态(CIM存储库)和动态(提供程
序)数据源和存储在不同层的被管理部件。
———————|
管理应用程序 |
———————|
|
|
———————| |———————|
COM对象管理器 |————| CIM储存设备 |
———————| |———————|
|
|
———————|
提供程序 |
———————|
|
|
———————|
被管理对象 |
———————|
CIM对象部件是结构的中心部件,控制着信息流程。这样一来,管理应用程序不需要关心数据的来源。同样,提供程序完全能
够把响应传递到客户请求,以及把事件通知传递到CIM对象管理器,而不必关心数据的最终目的地。
通信流程
数据的获取一般包括如下步骤
1、管理应用程序发送请求给CIM对象管理器。
2、CIM对象管理器确定被请求的数据是静态的,还是动态的。
3、如果数据是静态的,那么CIM对象管理器就直接从储存库获取数据,如果是动态的,那么CIMOM根据提供程序注册信息把请
求引向恰当的提供程序。
4、提供程序提取数据并把它发回到CIM对象管理器。然后CIM对象管理器把它发送到原始请求数据的应用程序中。
CIM存储库
CIM存储库存储了WMI结构的静态部件:包括类,实例和它们的属性。
访问CIM存储库中的对象
1、WMI对象路径
WMI对象路径用于在一个CIM存储库中定位类或他的实例。
例如,引导本地系统root/CIMV2名字空间中指向Win32_Service类的WMI对象路径是:
//./root/CIMV2:Win32_Service
为了访问类的特定实例,需要指定这个事例的键属性值。
例如,为了访问WMIITest1计算机上的工作站服务实例,引导实例的对象路径将是:
//WMITest1/root/CIMV2:Win32_Service.name*'LanmanWorkstation'
提示确定由WMI脚本连接创建的一个对象路径时,下面的因素起了作用:
1、如果省略目标服务名,就假定是本地机器。
2、如果省略名字空间,就假定是默认的名字空间。一般是root/CIMV2,但只是派生自下面的注册表位置
HKEY_LOCAL_MACHINE/Software/Microsoft/WBEM/Scripting/ Default Namespace
3、当指定一个类或实例,名字空间不能省略。
WMI查询语言
只要是熟悉SQL,那么就可以熟悉WQL了,记住不同点,在WQL中不可以使用模糊查询,'like'不能使用。
WMI支持三种查询数据、事件和Schema查询,可以使用查询的连接和引用即ASSOCIATORS OF和REFERENCES OF语句。
换码字符
注意这样的实例:
SELECT * FROM Win32_Share Where Path = "c:/temp" 是错误的
SELECT * FROM Win32_Share Where Path = "c://temp" 是正确的(其他的转码字符在后面讲,呵呵)
微软标准提供程序
微软在WMI核心部件和微软WMI软件开发工具中包括了很多提供程序。
Win32提供程序—处理Win32系统特征,CIM存储库把这些信息存储为使用Win32为前缀的类中的root/CIMV2名字空间的一部分,
例如,Win32_LogicalDisk,Win32_Service,Win32_Process,Win32_Processor等等。
安全提供程序—访问安全设置,比如,所有权,审计和访问权限,但是用局限性。
目录服务提供程序(WMI SDK)—提供了对windows2000活动目录Schema和实例的读写访问。有关活动目录的信息映射到
root/directory/LDAP名字空间。
注册表提供程序—允许获取和修改注册数据。
事件日志提供程序—提供对windows事件日志内容的访问。
性能计数器提供程序—传递未加工的性能计数器数据,并存储在派生自root/CIMV2名字空间中的Win32_PerfRawData类的子类
中。
WMI事件
内部事件、外部事件、计时事件
WMI用户
临时用户、永久用户
winmgmt.exe的使用,可以使用“win”+R然后输入winmgmt.exe /?查看使用的命令。
呵呵,今天就到这里了,这节主要讲的是WMI的基础概念,下一章我们将讨论一些应用程序,可以浏览WMI名字空间和类的层次结构、枚举实例及其属性、执·行方法及执行WQL查询。