Win2000自动化管理的实现

与以前的操作系统相比,Windows 2K/XP的优点之一是具有更好的可管理性 。例如它支持Windows 2000服务器终端服务下的远程管理模式,支持Microsoft管理控制台(MMC), 再有一个就是支持WMI 。WMI是Windows Management Instrumentation的缩写,即Windows 管理规范 。WMI有许多用途,其中之一就是通过脚本编程实现管理自动化 。
一、为什么要用脚本?
回顾九十年代,Windows NT之所以获得成功,原因之一就在于相对而言这个操作系统比较容易使用,任何能够使用Windows 3.1的用户差不多就可以管理一个简单的NT网络(这在今天听起来有点不可思议,但事实是,NT 3.1比Windows 2K/XP功能少得多,因而简单得多) 。只要看看NT的控制面板,这个操作系统可以做些什么就大致有个印象了 。
随着操作系统的发展,原来友好的界面变得更加友好 。在Windows 2K/XP中,几乎每一个操作过程都有向导,每一个操作系统级的对象都有图形化的属性页;不同的操作选择引导你到达最终完成任务的对话框,MMC允许你把常用的工具(甚至是第三方的工具)插入到定制的工具集 。
然而,高级用户感到友好的GUI实在太繁琐了 。另外,尽管在命令行上也可以执行某些任务,但命令行没有图形工具那样完备的功能 。为了让Windows 2K/XP下的操作任务自动化,一种较好的途径是通过脚本程序直接访问图形化工具访问的管理接口 。WMI允许用户通过一个统一的接口,用脚本语言访问操作系统的几乎任意一个部分 。当然,用脚本对WMI编程也有一些限制,例如不能直接访问Win32 API 。
二、WMI是什么?
WMI是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件 。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口 。有了WMI,工具软件和脚本程序访问操作系统的不同部分时不需要使用不同的API;相反,操作系统的不同部分都可以插入WMI,如图一所示(该图来自MSDN),工具软件和WMI可以方便地读写WMI 。

图一 Windows 2K/XP和Windows 98 都支持WMI;如果为NT 4.0和Windows 95加上了 Service Pack 4或更高版本,NT 4.0和Win95也支持WMI 。因此,用WMI进行远程管理时,并非一定要用Windows 2K/XP(当然,如果WMI脚本在一台没有性能监视器的Win9x机器上运行,就不能在远程Win9x系统上查询Windows 2K/XP的性能监视器 。如前所述,WMI允许通过一个公共的接口访问多种操作系统构成单元,因此不必分别对待各种底层接口或所谓的“提供者” 。利用WMI可以高效地管理远程和本地的计算机;与此相对,并非所有的Windows 2K/XP命令行工具都支持远程运行 。WMI是WBEM模型的一种实现 。WBEM即Web-Based Enterprise Management,或基于Web的企业管理,WBEM由DMTF(Distributed Management Task Force,分布式管理任务组)在许多厂商的帮助下创立,包括Compaq、Sun、Microsoft等 。WBEM的目标是,为管理企业环境开发一个标准的接口集 。WBEM模型最关键的部分是它的数据模型(或描述和定义对象的方式)、编码规范(Encoding Specification),以及在客户端和服务器端之间传输数据的模式 。WBEM的数据模型是CIM(Common Information Model,公共信息模型) 。CIM是一个用来命名计算机的物理和逻辑单元的标准的命名系统(或称为命名模式),例如硬盘的逻辑分区、正在运行的应用的一个实例,或者一条电缆 。CIM是一个面向对象的模型,使用一组面向对象的术语进行描述 。CIM包含类(Class),类是被管理单元的模板 。类的实例称为对象(Object),对象代表着底层系统的一个具体单元 。名称空间(Namespace)是一个类的集合,每个名称空间面向一个特定的管理领域 。类包含属性(Property)和方法(Method) 。三、WMI软件开发包 利用WMI软件开发包(SDK)可以方便地查看可用的CIM和Win32类 。WMI SDK可以从http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/566/msdncompositedoc.xml下载,有8M多,可谓不小 。WMI SDK要求操作系统必须是Windows 2K/XP或者NT 4.0 SP4或更高版本;尽管Win9x系统上可以安装WMI支持软件,但SDK不能在Win9x上运行 。另外,为支持SDK的ActiveX控件,SDK还要求有IE 5.0或更高版本 。SDK对机器性能的最低要求是:Pentium处理器,32 Mb的RAM,40 Mb的磁盘空间,以及至少要有800 x 600、256色的显示设备 。对于运行Windows 2K/XP的机器来说,这些要求应该不会成为问题 。CIMOM默认以服务的形式运行,但如果机器没有网卡,CIMOM不能作为服务运行,不过此时可以作为一个应用运行,只需执行winmgmt.exe即可 。winmgmt.exe在%systemroot%system32wbem的WMI主目录下 。SDK必须由管理员组的成员安装 。安装过程很简单,执行WMISdk.exe启动向导,指定安装的目标目录(默认是program fileswmi) 。选择要安装的可选组件(默认安装除了SNMP支持以外的所有组件),最后点击Finish 。安装SDK不需要重新启动 。安装完成后,“开始/程序”菜单上会增加一个WMI SDK组 。点击WMI SDK程序组的WMI CIM Studio 。CIM Studio提示连接名称空间,并显示默认连接的名称空间是rootcimv2,确认即可 。如果你用Administrator身分登录Windows,再次点击确定以当前身份登录;如果你用其他的身份登录Windows,请改用Administrator登录 。

推荐阅读