以下内容,你几乎都可以通过google 百度很容易搜到,在此稍微做流水账整理了下。
读者在项目(多半是监控)中若需用到WMI,还需要深入survey 的~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一部分,介绍WMI
WMI是什么?
WMI(Windows Management Instrumentation ,Windows 管理规范 )是Windows 2K/XP管理系统的核心;
WMI是以CIMOM为基础,CIMOM即公共信息模型对象管理器
(Common Information Model Object Manager),
CIMOM是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。
WMI是Microsoft扩展CIM 2.0得到的面向Win32系统的扩展模型 ,用其可以访问及其高效地管理Windows资源
WMI的组成?
严格说来,WMI由四部分组成:
1、 公共信息模型对象管理器——CIMOM
2、 公共信息模型——CIM
3、 WMI提供程序
4、 WMI脚本对象库
其中其第1、2、3三个部分,在使用中很少加以区别,我们一般统称为CIM库。
用WMI脚本对象库访问cim库。
本质:是一个带很多分支的树状数据库,是一项服务!
WMI能做什么?
利用WMI可以高效地管理远程和本地的计算机.WMI是WBEM模型的一种实现。
WBEM模型最关键的部分是它的数据模型(或描述和定义对象的方式)、编码规范(Encoding Specification),以及在客户端和服务器端之间传输数据的模式。
CIM即WBEM的数据模型!
CIM是一个用来命名计算机的物理和逻辑单元的标准的命名系统(或称为命名模式),例如硬盘的逻辑分区、正在运行的应用的一个实例,或者一条电缆。
WBEM模型:基于web的企业管理,为管理企业环境开发一套标准接口集。
WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。
WMI通过提供一致的模型和框架,所有的 Windows 资源均被描述并公开给外界。最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
通信机制
WMI远程连接是以 DCOM 作为基础远程通信机制。所以WMI 远程连接必须先满足 DCOM 对模拟和身份验证的安全要求。
好吧,又不得不扯到DCOM:
DCOM(分布式组件对象模型,分布式组件对象模式)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。
好吧,这个介绍似乎也帮不了多少忙,作者水平有限,用几句话也概括不了。身份验证安全级别嘛,估计就是配置一堆东西,然后就ok了。反正用DCOM这个东东,2台计算机就可以相互通信。至于它怎么做到的,我们看看它采用的协议。
通信协议RPC
远程连接会涉及到客户端和服务器端间的通信,通信就涉及到协议,DCOM底层使用了RPC协议(当然也可以使用其他协议,http+tcp)
【RPC协议在以后的学习过程中还会经常碰到,事实上Java RMI差不多就是RPC的java实现】
Remote Procedure Call (RPC)是视窗系统操作系统使用的一种远程过程调用协议,RPC提供进程间交互通信机制,允许在某台计算机上运行程式的无缝地(代码一样)在远程系统上执行代码。协议本身源自开放软件基金会的RPC协议,Microsoft在其基础上增加了自己的一些扩展。
RPC是分布式计算的C/S的例子。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。
RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。
注意事项
当通过WMI模式监控Windows机器时
以下服务应该在远程Windows机器运行:
1) Remote Procedure Call (RPC)远程过程调用 -- 端口: 135
2) Windows Management Instrumentation (WMI) Windows管理规范-- 端口: 445
如果启用防火墙,应在防火墙开放这些端口。
135端口似乎也是黑客喜欢攻击的端口之一呢~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~