论文部分内容阅读
摘要:随着计算机及网络技术的迅猛发展,实时、高效、安全地管理计算机,更好地共享资源的各种技术成为人们研究的重点。本文针对传统C/S管理模式存在的问题,提出采用WMI技术来实现对计算机进行高效管理的方法,并给出获取远程计算机信息和远程控制计算机的具体实现。
关键词:WMI;C/S;远程控制;WMI脚本;VB.NET
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2008)11-20370-02
1 引言
随着计算机技术和网络技术的飞速发展,计算机应用已经广泛普及到各行各业,为了更好地共享使用设备,对计算机管理也提出了越来越高的要求。传统的管理方法是采取严格的C/S模式,客户机必须运行特定的终端程序,时刻监听服务器,才能保证客户机实时响应。如果客户机因为某种原因退出终端程序,那么服务器就无法管理该客户机。因此,传统管理计算机的方法不仅增加了客户端的系统开销,而且对各种故障难以检测,其管理效率很难得到较大改善。本文首先介绍一种高效管理计算机的技术—WMI(Windows Management Instrumentation)—Windows管理规范,然后提出一种基于WMI技术对计算机进行高效管理的方法,给出获取远程计算机信息和远程控制计算机的WMI技术实现,结合应用实例说明这种方法的有效性。
2 WMI技术概述
WMI是Microsoft基于Web的企业管理(WBEM)的实现,同时也是一种基于标准的系统管理接口。
WMI技术是微软提供的Windows下的系统管理工具,通过该工具可以在本地管理客户端系统中几乎一切的信息,很多专业的网络管理工具都是基于WMI开发的。WMI是一种轻松获取系统信息的强大工具,信息源可能是一个硬件、操作系统或软件应用程序,数据源提供的信息称为规范。
WMI作为Windows 2000操作系统的一部分提供了可伸缩的,可扩展的管理架构.公共信息模型(CIM)是由分布式管理任务标准协会(DMTF)设计的一种可扩展的、面向对象的架构,用于管理系统、网络、应用程序、数据库和设备。Windows管理规范也称作CIM for Windows,提供了统一的访问管理信息的方式。利用WMI,可以监视、跟踪和控制有关软件应用程序、硬件组件和网络的系统事件,将来自不同来源的数据用通用、标准且逻辑上有组织的方式映像出去,以便在管理数据之间建立相互关系和关联,而不必考虑这些数据的类型、内容或来源。
使用WMI可以获得统一的编程API,远程管理,可发现和导航,过滤查询,强大的事件发布和订阅等功能。它由管理架构、WMI提供者、WMI使用者、CIM(Common Information Model, 公共信息模型)储存库和CIMOM (Common Information Model object manager, 公共信息模型对象管理器)五部分组成。在现代计算机管理中,系统管理员更为关注的是监视应用程序的运行状况、检测瓶颈或故障、管理和配置应用程序、查询应用程序数据、执行无缝的本地或远程管理等操作,并能在最短时间,最有效率的处理或规避上述问题。而WMI(Windows Management Instrumentation),即:视窗管理规范技术提供了一个统一的、基于标准的、可扩展的面向对象接口,除此之外,WMI还 提供了与系统管理信息和基础 WMI API 交互的标准方法,这些标准都是本例中基于WMI的计算机管理技术平台实现的基础。
3 基于WMI的计算机管理技术的实现
笔者在研究与开发学校机房管理系统的过程中,充分利用了WMI技术在计算机管理方面的强大功能,采用WEB形式对机房和实验室设备进行综合管理。本文给出了基于结合WMI和WEB服务技术来获取远程计算机信息、远程控制计算机及具体的实现方法,其它的管理功能如监视应用程序的运行状况、管理和配置应用程序等,均可采用类似的方法实现。
3.1 使用WMI获取远程计算机信息
现在的计算机以及网络组成十分复杂,例如系统硬件方面就有主板、硬盘、网卡等;软件方面有
操作系统、系统中安装的软件、正在运行的进程等;网络方面有域、工作组等等,对这些信息的收集和数据的处理是现代计算机管理中非常重要的任务。WMI的功能十分强大,可以管理windows的方方面面,从常见的文件操作到硬件管理,都可以通过WMI来实现。以下介绍笔者使用WMI和.NET框架一起来获取远程计算机软硬件的实现方法。
首先需要引入System.Management命名空间。在.NET中,使用System.Management命名空间,通过对class的操作,可以查询系统软硬件的信息。此命名空间是.NET 框架中的 WMI 命名空间,它提供的类对象为访问各种管理对象提供了面向对象的编程接口,并包括下列支持 WMI 操作的第一级类对象:
(1)ManagementObject 或 ManagementClass:分别为单个管理对象或类;
(2)ManagementEventWatcher:用于预订来自 WMI 的事件通知;
(3)ManagementQuery:用作所有查询类的基础;
(4)ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
System.Management 类的使用编码范例对.NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。应用程序和服务可以通过使用从 ManagementObjectSearcher 和 ManagementQuery 派生的类,查询其感兴趣的管理信息(例如在磁盘上还剩多少可用空间、当前 CPU 利用率是多少、某一应用程序正连接到哪一数据库等等);或者它们可以通过使用 ManagementEventWatcher 类来预订各种管理事件。
笔者在学习了上述相关理论知识后,了解在.NET中如何与WMI进行通讯以便达到获取信息的目的,并着手编写了一些利用System.Management下面的类来获取系统相关信息的代码,在此做一些简单介绍。
获取硬件信息(以下是一段获取主板的序列号以及制造商的代码):
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard")
Dim share As ManagementObject
For Each share In searcher.Get()
Debug.WriteLine("主板制造商:"
关键词:WMI;C/S;远程控制;WMI脚本;VB.NET
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2008)11-20370-02
1 引言
随着计算机技术和网络技术的飞速发展,计算机应用已经广泛普及到各行各业,为了更好地共享使用设备,对计算机管理也提出了越来越高的要求。传统的管理方法是采取严格的C/S模式,客户机必须运行特定的终端程序,时刻监听服务器,才能保证客户机实时响应。如果客户机因为某种原因退出终端程序,那么服务器就无法管理该客户机。因此,传统管理计算机的方法不仅增加了客户端的系统开销,而且对各种故障难以检测,其管理效率很难得到较大改善。本文首先介绍一种高效管理计算机的技术—WMI(Windows Management Instrumentation)—Windows管理规范,然后提出一种基于WMI技术对计算机进行高效管理的方法,给出获取远程计算机信息和远程控制计算机的WMI技术实现,结合应用实例说明这种方法的有效性。
2 WMI技术概述
WMI是Microsoft基于Web的企业管理(WBEM)的实现,同时也是一种基于标准的系统管理接口。
WMI技术是微软提供的Windows下的系统管理工具,通过该工具可以在本地管理客户端系统中几乎一切的信息,很多专业的网络管理工具都是基于WMI开发的。WMI是一种轻松获取系统信息的强大工具,信息源可能是一个硬件、操作系统或软件应用程序,数据源提供的信息称为规范。
WMI作为Windows 2000操作系统的一部分提供了可伸缩的,可扩展的管理架构.公共信息模型(CIM)是由分布式管理任务标准协会(DMTF)设计的一种可扩展的、面向对象的架构,用于管理系统、网络、应用程序、数据库和设备。Windows管理规范也称作CIM for Windows,提供了统一的访问管理信息的方式。利用WMI,可以监视、跟踪和控制有关软件应用程序、硬件组件和网络的系统事件,将来自不同来源的数据用通用、标准且逻辑上有组织的方式映像出去,以便在管理数据之间建立相互关系和关联,而不必考虑这些数据的类型、内容或来源。
使用WMI可以获得统一的编程API,远程管理,可发现和导航,过滤查询,强大的事件发布和订阅等功能。它由管理架构、WMI提供者、WMI使用者、CIM(Common Information Model, 公共信息模型)储存库和CIMOM (Common Information Model object manager, 公共信息模型对象管理器)五部分组成。在现代计算机管理中,系统管理员更为关注的是监视应用程序的运行状况、检测瓶颈或故障、管理和配置应用程序、查询应用程序数据、执行无缝的本地或远程管理等操作,并能在最短时间,最有效率的处理或规避上述问题。而WMI(Windows Management Instrumentation),即:视窗管理规范技术提供了一个统一的、基于标准的、可扩展的面向对象接口,除此之外,WMI还 提供了与系统管理信息和基础 WMI API 交互的标准方法,这些标准都是本例中基于WMI的计算机管理技术平台实现的基础。
3 基于WMI的计算机管理技术的实现
笔者在研究与开发学校机房管理系统的过程中,充分利用了WMI技术在计算机管理方面的强大功能,采用WEB形式对机房和实验室设备进行综合管理。本文给出了基于结合WMI和WEB服务技术来获取远程计算机信息、远程控制计算机及具体的实现方法,其它的管理功能如监视应用程序的运行状况、管理和配置应用程序等,均可采用类似的方法实现。
3.1 使用WMI获取远程计算机信息
现在的计算机以及网络组成十分复杂,例如系统硬件方面就有主板、硬盘、网卡等;软件方面有
操作系统、系统中安装的软件、正在运行的进程等;网络方面有域、工作组等等,对这些信息的收集和数据的处理是现代计算机管理中非常重要的任务。WMI的功能十分强大,可以管理windows的方方面面,从常见的文件操作到硬件管理,都可以通过WMI来实现。以下介绍笔者使用WMI和.NET框架一起来获取远程计算机软硬件的实现方法。
首先需要引入System.Management命名空间。在.NET中,使用System.Management命名空间,通过对class的操作,可以查询系统软硬件的信息。此命名空间是.NET 框架中的 WMI 命名空间,它提供的类对象为访问各种管理对象提供了面向对象的编程接口,并包括下列支持 WMI 操作的第一级类对象:
(1)ManagementObject 或 ManagementClass:分别为单个管理对象或类;
(2)ManagementEventWatcher:用于预订来自 WMI 的事件通知;
(3)ManagementQuery:用作所有查询类的基础;
(4)ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
System.Management 类的使用编码范例对.NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。应用程序和服务可以通过使用从 ManagementObjectSearcher 和 ManagementQuery 派生的类,查询其感兴趣的管理信息(例如在磁盘上还剩多少可用空间、当前 CPU 利用率是多少、某一应用程序正连接到哪一数据库等等);或者它们可以通过使用 ManagementEventWatcher 类来预订各种管理事件。
笔者在学习了上述相关理论知识后,了解在.NET中如何与WMI进行通讯以便达到获取信息的目的,并着手编写了一些利用System.Management下面的类来获取系统相关信息的代码,在此做一些简单介绍。
获取硬件信息(以下是一段获取主板的序列号以及制造商的代码):
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard")
Dim share As ManagementObject
For Each share In searcher.Get()
Debug.WriteLine("主板制造商:"