实现Windows管理的各种技术概述
让我们来先看看作为一个系统管理员经常要做的工作:
ü 监视应用程序的运行状况。
ü 检测瓶颈或故障。
ü 管理和配置应用程序。
ü 查询应用程序数据(使用对象关系的遍历和查询)。
ü 执行无缝的本地或远程管理操作。
上面任何一个任务的完成,都需要操作系统提供足够的有关管理对象的信息。对于一个磁盘来说,他应该知道磁盘空间的使用情况,磁盘的I/O操作等等;对于一个进程监视的管理员来说,他应该了解有关进程使用CPU和内存的情况等等。尤其是对那些管理诸如Microsoft SQL Server2000这样的系统来说,工作尤其复杂。面对如此至多的操作系统或者应用程序的管理对象,信息的收集、筛选、关联和存储成了关键。可能很多的系统管理员经常使用类似windows管理控制台来管理系统,收集系统各方面的信息,但是这些信息的收集乃至操作这些管理对象的背后是什么样的?windows提供了什么样的编程接口来让程序员自己访问和操作这些管理对象?这对于编写系统程序的程序员来说是一个急迫想搞清楚的问题。因为您有可能想编写自己的管理控制台,来监视磁盘的使用情况,并在剩余空间不足的情况下发出警报;您也有可能在监视系统运行的进程和CPU的使用情况,在CPU资源不足的情况下某些非关键的任务而确保关键任务的稳定运行。
Microsoft对于上述问题的解决提供了三种基础的结构方案,分别是windows管理规范WMI (Windows Management Instrumentation), 活动目录服务接口ADSI (Active Directory Services Interface) 和Windows 脚本宿主 WSH (Windows Script Host),它们都提供了统一的编程接口,使得程序员可以非常方便的访问和操作诸如Windows NT 4.0 ,Windows 2000和Windows 2003 server系列的企业级操作系统。
Windows 脚本宿主 WSH:Windows 脚本宿主 (WSH) 是用于 Win32 平台的与语言无关的脚本环境。利用 WSH,Microsoft 提供 VBScript、Jscript 和 JScript .NET 脚本引擎。他提供了简单,强大而灵活的脚本编写使得您可以在命令提示行和windows桌面环境下运行.这些脚本语言可用于:Web 服务器的 ASP 页、运行于 Internet Explorer 中的 HTML 页、Windows 98 和 Windows 2000 上 Windows 脚本宿主的脚本引擎中。
WSH 可使用任何脚本语言使服务器上的管理任务自动化。例如,管理员可以编写 VBScript 以创建一个新的虚拟目录,然后,利用在后台工作的 WSH,从命令行运行脚本文件,以在 Web 站点上创建新的虚拟目录。此外,管理员可编写单个脚本来面向多个 Web 站点或多个物理服务器。
当然在我们这章要讲述的使用编程语言的不是WSH,而是.NET平台上的C#.
Active Directory 服务接口 (ADSI) : Microsoft Windows Active Directory 的编程接口。它允许应用程序使用单个接口与网络上的不同目录进行交互。ADSI是一系列的COM编程接口,就如ODBC一样,ADSI通过对每个目录协议增加提供者提供通用的目录访问.
使用 ADSI,可以创建执行常见管理任务的应用程序,这些任务包括备份数据库、访问打印机和管理用户帐户等。
使用ADSI 的优点为:
开放式的架构:使得任何目录提供者都在一个ADSI接口上执行;
目录服务的独立性:由于使用API使得应用程序不需要绑定到特定的提供者目录服务上;
安全:ADSI支持认证.
Windows管理规范WMI: WMI作为Windows 2000操作系统的一部分提供了可伸缩的,可扩展的管理架构,提供了一个统一的、基于标准的、可扩展的面向对象编程接口.关于WMI更为详细的信息,我们将在接下来的内容中详细讲述.
由于WMI更多的优点以及与.NET平台的结合,这一章的windows系统的管理将采用WMI在.NET中的命名空间的实现的编程接口system.management来编写程序.
在本章内容的开始,我将向您讲述有关Microsoft® Windows® Management Instrumentation (WMI)即windows管理规范的基本知识和架构以及.NET提供的windows管理规范的接口实现,正是通过使用这些.NET framework中的system.management命名空间提供的类,程序员可以定制自己的管理控制台;接下来的内容将用5个示例来剖析各种各样的windows管理工作以及一个简单的自己应用程序的管理实现。
本章的内容安排如下:
第一节 windows管理规范WMI概述
第二节 .NET 框架中的 WMI 命名空间System.Management
第三节 操作系统类及其管理对象
第四节 管理信息查询和检索
第五节 事件预订和处理
第六节 远程管理的实现
第七节 管理自己的应用程序