WMI(Windows Management Instrumentation)提供了一个统一、一致、基于标准的、面向对象的接口,用于管理计算机系统。无论是本地计算机还是企业中的所有计算机,WMI都提供了一种标准化的方式来管理。简单来说,管理就是收集计算机系统中被管理对象的状态数据,并通过更改存储的数据来改变被管理对象的状态。被管理的对象可以是硬件实体,如内存阵列、端口或硬盘驱动器,也可以是软件实体,如服务、用户帐户或页面文件。
WMI可以管理计算机系统的许多组件。在管理硬盘时,可以使用WMI监控硬盘上剩余的可用空间。也可以使用WMI远程更改驱动器的状态,如删除文件、更改文件安全性或分区或格式化驱动器。
WMI不仅是一个强大的系统信息收集工具,而且非常容易使用。现有的脚本WMI接口使得系统管理员、网页设计师以及熟练的程序员都可以使用。
本文介绍的应用程序在HTML页面上显示硬件信息,并使用VBScript作为后端编程语言。
首先,将计算机名称(strComputer)设置为".",即当前计算机,并编写函数GetWMIServices(),该函数将用于所有从WMI获取信息的过程,并且可以修改为从另一台计算机获取WMI服务。
然后,定义了一些格式化输出的函数,如WMIDateStringToDate()、DisplayOutputHeader()、DisplayOutput()、GetTableHeader()、GetTableFooter()、GetRow()。有了这些函数,将拥有标准化的输出。
以下是检索和显示处理器信息的代码示例:
<%@ Language = VBScript %>
<% Option Explicit %>
<%
Function ShowProcessorInfo()
On Error Resume Next
DisplayOutputHeader("Processor - Win32_Processor")
str = ""
Set objWMIService = GetWMIServices()
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem in colItems
str = str & GetTableHeader()
str = str & GetRow("Address Width", objItem.AddressWidth)
str = str & GetRow("Architecture", objItem.Architecture)
' ... 其他字段 ...
str = str & GetTableFooter()
Next
DisplayOutput(str)
End Function
%>
HardwareInfo函数还检索有关基板、电池、BIOS、内存设置、即插即用设备、端口等的信息。