分享
 
 
 

在你的企业中管理Windows和应用程序

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

概述

WMI是Microsoft用来支持企业管理系统而引进的几项技术之一。 Active Directory提供了企业范围内的地点、政策和组织管理信息。Microsoft® 管理控制台系统(MMC)是编写应用管理程序时的标准框架。Windows Script Host系统(WSH)允许管理人员自动处理复杂的任务。最后,WMI是基于Windows操作系统,及其应用程序的一项远程控制的技术。

WMI允许应用程序的开发者,使用简单的、一致的机制,去查询企业中的任一台计算机上的信息,或是进行系统配置。通过WMI接口可以获得的信息量是惊人的,包括硬件设置,状态信息,驱动器配置,BIOS信息,应用程序的设置,事件记录信息,以及其他。WMI通过一组API来获得信息,但它表征的是一种通过一个简单,工业标准对象管理模式来获取信息的函数。这使得应用程序的开发者不必学习Windows的每一个API的具体细节。

要理解这样做的效果,假定应用程序的开发者想枚举出机器上四种不同类型的对象:服务,指针,过程和CPU。如果没有WMI系统,该开发者只好寻求不同的API来完成不同类型的枚举;但是使用WMI系统,这就变得相当简单了,这是因为每一对象类型都是以同一种方式枚举的。例如图1(Figure 1)显示了,用VBScript代码编写的WSH系统完成此任务是如何的简单。

如果你运行的是Windows 2000,你可以将这段代码拷贝到ENUM.VBS文件中,并且在控制台窗口运行cscript.ENUM.VBS命令。如果遇到错误,最可能的原因是,为了使该程序更短而忽略了对空指针的查错。例如,若系统不存在已安装指针的备注列表,obj.Description文件将返回空指针。

如果,你运行的操作系统是Windows 9x或是Windows NT® 4.0,WMI控件是可选组件。在Microsoft的网站上可得到最新版本的WMI。

显然,图1中的程序也可以用来枚举远程机器上的同样信息。要显示MYSERVER的信息,只需使用WinMgmts://MYSERVER在首行作为GetObject的参数。实际上,不论是从本地或是从远程的机器,WMI得到的信息,都是使用同一个API得到的。虽然某些Win32 API提供辨认远程计算机的功能,其他的API只能访问本地的机器,无法实现从远程计算机上得到信息。

WMI还能使对被管理对象的信息进行设置,以及调用变得简单。可以采用同样的语法结构来进行中止服务,结束进程,或是从远程计算机注销用户,等操作。应用程序的开发者只需知道对象的名称,以及准备进行的操作的名称,而没有必要了解一个新的API。

为完成所有事情,事件的基础结构将对通过WMI可以访问的对象给出修正信息。在本文的稍后部分,我将举一个创建和撤销监视器进程的例子;另一个例子是当插入或取出软盘时产生一个提示信息。WMI对象管理各类型操作采用的是同样的函数。甚至当基本API不提供针对对象的此类信息,WMI体系结构可以模拟监控这些事件的行为。另外,WMI服务自由的提供所有这些功能的远程访问。

除了WMI已经列出的信息,应用程序还可以列出他们自定义的对象和事件。这样,任意WMI管理程序就能管理你的其他应用程序,包括远程配置,修改提示信息,或是接受自定义事件。

WMI技术的起源

虽然WMI是Microsoft开发的技术,但是它是建立在近年来才引入的工业标准的基础上的。要了解WMI,就需要了解它从最初的所谓企业网络管理系统(WBEM)的演化过程。几年以前,为建立企业系统和设备管理系统的标准体系,一些计算机公司创建了WBEM系统。最初的目的是,开发单一的管理企业任意网络组件标准体系。这将简化由诸如SNMP网络设备标准体系,DMI桌面标准体系,等多个独立体系存在而引起的问题。将来,计算机公司开发与WBEM相配套的硬件,软件,以及操作系统,都将能以同样的方式进行管理。这样,单个管理程序就将能轻易地管理企业范围内的所有不同类型的组件了。实际上,WBEM的最初功能设计是针对(Desktop Management Task Force (DMTF)的。DMTF系统是针对维持实现WBEM系统最初目标所需的标准系统而设计的。

CIM类

最初的WBEM系统的第一个标准是,所谓的常规信息模式(CIM)的管理信息描述函数。CIM采用面相对象函数模拟信息,使用分类定义,分级结构,事例,属性,以及函数描述管理信息。CIM类是通过管理对象格式(MOF)在文本文件中定义的。完整的MOF文件格式系统已经超出了本文的范围,但是,如果你熟悉C++,JAVA,或是接口定义语言(IDL),则你将对它的语法结构相当熟悉。以下就是如何定义一个类,及其子类的一个例子:

[abstract] class Automobile

{

[key] string Make;

[key] string Model;

void Recall();

};

class Car : Automobile

{

real32 BlueBookValue;

};

class Truck : Automobile

{

uint32 Axles = 2;

};

以上的MOF文件定义了Automobile作为一个基本类,及其两个子类:Car和Truck。Automobile具有Make属性,Model属性,以及Recall函数。Car具有BlueBookValue的额外属性。Truck具有Axles属性,默认值为2(对于Axles而言,如果不另外指定,Truck每一次得到的新的值是2)。括号里的文字(abstract和key)引入了CIM分类参数的概念。分类参数可以应用于整个类,属性,函数或是单独的函数参数。分类参数与IDL文件中属性的概念类似。它们提供了与类,属性和函数的使用相关的额外信息。在这个例子里,abstract类的分类参数意味着,你无法看到Automobile的示例。另一方面,由于Car和Truck不是abstract类,你可以列举Car和Truck的例子。Key属性分类参数意味着任意Automobile(或任意派生类)可以被参数Make和Model唯一确定。这是一个从数据库借用的概念。所有支持多种事例的类需要确定Key属性,即每一种事例必须是Key属性值的唯一组合。换句话说,即使Automobile类定义只允许存在唯一的Ford Mustang事例,但是你可以创建Ford Taurus,甚至Gm Mustang的事例。如果类有且只有一种事例,它可以用单独的一个类的分类参数来描述。在这种事例下,类不再需要确定诸如Key之类的其他属性了。MOF文件格式是用来描述事例或类定义的,以下的示例描述了Truck的一种事例:

instance of Truck

{

Axles = 5;

Make = "Ford";

Model = "Big Rig";

};

单独的CIM标准体系还不足以使公司能创建可管理的对象,并且防止出现混乱。例如,一个公司将路由器称为网络路由器,而另一个公司将同一个东西称为路由器。甚至更糟的是,两个公司都可以定义同样的类的名称,但属性不同。为防止出现这种混乱,DMTF体系定义了CIM模式。模式是一个所有公司都统一遵循的一个有明确定义的类的集合。通常,作为CIM模式体系一部分的类,以CIM_为前缀(例如,CIM_Battery或CIM_Process)。CIM模式倚重于对分级结构的使用,允许管理程序以同样的方式处理相似对象的群。例如,CIM_Battery,CIM_Printer,以及CIM_Processor都是从基本类CIM_LogicalDevice派生得到的。这要求管理程序了解,如何通过CIM_LogicalDevice来管理有此类派生得到的任意类型的设备。此外,任意派生类都支持基本类的属性和函数。类CIM_LogicalDevice具有确定是否支持电源管理程序的属性(PowerManagementSupported),以及允许设置电源状态的函数(SetPowerState)。通过从基本类功能列表得到的信息,应用程序可以管理打印机,处理器,以及其他任意从CIM_LogicalDevice派生的设备的电源状态。

分级结构的另一个好处是,如果计算机分销商们能够提供比CIM类定义的更多信息的话,他们能够扩展CIM_schema。例如,Windows操作系统知道已安装的打印机AveragePagesPerMinute参数。类CIM_Printer没有定义此信息,因此Microsoft由CIM_Printer派生定义了类Win32_Pointer,此类具有额外属性,AveragePagesPerMinute。知道类Win32_Proiner的管理程序可以使用这个信息,而只知道如何管理CIM_Pointer的管理程序也能正常工作。

WBEM支持

CIM和MOF标准体系,以及CIM模式是最初的WBEM体系的核心组件。这些标准体系是不依赖于操作平台和实现的应用程序的。为使统一的管理成为现实,硬件和软件的分销商们必须创建支持这些标准体系的系统(指的是实现WBEM的应用程序)。这包括通过由CIM模式派生出来的类的功能列表。Microsoft在Windows操作系统上实现WBEM的应用程序是WMI。

并不只有Microsoft支持WBEM系统,硬件厂商也同意为实现WBEM系统提供网络以及存储设备。Sun公司许诺为实现WBEM提供Solaris操作系统,诸如Tivoli Systems和Computer Associates等管理软件的主要厂商也同意在他们的产品中支持WBEM系统。有了这些软硬件方面的支持,以一种单一的,一致的方式管理企业将成为现实。

WMI体系结构

了解图2所示的WMI组件的体系结构,可以帮助分析WBEM标准体系实现方式的创建。首要的任务是,确定CIM schema中的哪些组件在计算机中运行Windows。第二步是通过将Windows下列出的所有额外信息定义为类,以扩展CIM schema。Microsoft使用的约定类是CIM类派生得到的,类的前缀为Win32_(例如,Win32_NetworkAdapter就是由CIM_NetworkAdapter派生得到的类)。最终,你仍需要编写某些软件,来实际提供管理功能。保留已有的被支持类的列表是必须的,并且当类的不同事例需要时,还需要提供某些实际数据;通过完成所要求的操作,来响应函数对对象的调用也是必须的。在最初的术语中,这被称为CIM对象管理程序(CIMOM)。在Windows NT中,CIMOM处于WinMgmt服务包中,通过WinMgmt.exe文件

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有