Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。WMI 通过编程和脚本语言为日常管理提供了一条连续一致的途径。用户可以: 1.在远程计算机器上启动一个进程。 2.设定一个在特定日期和时间运行的进程。 3.远程启动计算机。 4.获得本地或远程计算机的已安装程序列表。 5.查询本地或远程计算机的 Windows 事件日志。 而WMI适用的运得环境也是有些限制的,WMI 适用于所有最新版本的 Windows。WMI 附带在 Windows Me、Windows 2000、Windows XP 和 Windows Server 2003 之中。 对于 Windows 98 和 Windows NT 4.0,可以访问http://www.microsoft.com/downloads并搜索“Windows Management Instrumentation (WMI) CORE 1.5 (Windows 95/98/NT 4.0)”。 或直接脚本之家本站下载 注意:在 Windows NT 4.0 上安装并运行 WMI 之前,需要首先安装 Service Pack 4 或更高版本。 WMI 需要的其他软件包括: 1. Microsoft Internet Explorer 5.0 或更高版本。 2. Windows script Host(WSH)。Windows 2000、Windows XP、Windows Server 2003、和 Windows Me 附带的 WSH,而不是 Windows NT4 或 Windows 98 附带的 WSH。您可以从以下地址下载 WSH http://www.microsoft.com/downloads. WSH 的最新版本—— 包括在 Windows XP 和 Windows Server 2003 之中——是 WSH 5.6。 要使WMI脚本可以正常的运行,Windows里的WMI 服务(winmgmt)保证是运行的,这样才可以实现WMI里的更多功能。 好了,关于WMI的一些基本的信息资料就说到这,要想看更多的可以到MicroSoft网站的MSDN找。下面就简单的讲一下WMI脚本编写的基本要素,看看下面的代码: //这个脚本是查看系统启动的引导配置参数,下面我们来看看关于WMI脚本编写的架构。 On Error Resume Next //下面这行是比较重要的,它定义了主机的变量,可以是本机或远程主机,域上的机等,参数英文的“.”是表示本机,要想实现其它机的可以填上其它机的主机名或IP。 strComputer = "." //下面这行是通过GetObject得到主机的WMI对象管理空间“\root\cimv2”,如果是本机的是通过NT(Authentication)认证的,所以可以不用用户名和密码,而对于非本机或非域机的就要再加多几条参数, Set objWMIService = GetObject("winmgmts:\\" strComputer "\root\cimv2") //执行WMI数据对象的查询 //至于连接远程的要用下面的语句 Set objLocator = CreateObject("Wbemscripting.SWbemLocator") Set objService = objLocator.ConnectServer(strComputer, "root\cimv2", "administrator", "a") Set colItems = objWMIService.ExecQuery("Select * from Win32_BootConfiguration",,48)
//利用数组列出相关 For Each objItem in colItems Wscript.Echo "BootDirectory: " objItem.BootDirectory Next 从上面的例子可以看出写一个WMI的要求: 1.得到主机的WMI对像管理空间 2.执行WMI数据对象的查询 3.利用数组列出相关 学习编写的架构并不难,只要练多几次就行了,但是学习WMI的第一个难题就是它的子集对象,因为我们并不知道它的子集对象是什么,这样写起程序来就会力不从心了。要一下子知道这样子集的对象也是不难的,只要在MicroSoft的MSDN找找会有不少,但是这样找下去的话可能要找很久或资料不够全,是不是有些难呢?其实MicroSoft公司的网站上有一个叫“scriptomatic”的工具,才100多K,解压后你们发觉真正有用的是那个才12k的“scriptomatic.hta”文件,双击打开后你会发觉是一个子集的数据列表,且还有例子呢。