创建适用于 WMI 的 Active Server Pages

Microsoft Active Server Pages (ASP) 可以通过包含服务器端和客户端脚本来创建动态网页。 ASP 页面可能比客户端 HTML 页面快得多,因为大部分工作都是在服务器上完成的。 你还可以使用 ASP 页面向未安装 Windows Management Instrumentation (WMI) 的其他计算机显示有关远程计算机的信息。

以下过程说明如何将 WMI 与 ASP 配合使用。

将 WMI 与 ASP 配合使用

  1. 编写使用 WMI 的 ASP 页面 (.asp),并将其放置在 Web 服务器可访问的目录中。

    可以使用多种脚本语言(包括 VBScript)开发适用于 WMI 的 ASP 脚本。 可以像构造任何其他使用 WMI 的脚本一样来构造 ASP 页面的 WMI 脚本部分,但有一个重要限制:无法在 ASP 页面中使用异步 WMI 方法。 另请注意,对 GetObject 或 CreateObject 的任何调用都必须在服务器端代码中进行。 有关详细信息,请参阅适用于 WMI 的脚本 API

  2. 为 Internet Information Services (IIS) 设置身份验证配置。 有关详细信息,请参阅为 WMI ASP 脚本配置 IIS 5 及更高版本

  3. 禁用匿名访问,并为 ASP 文件启用 Windows 集成身份验证。 可以使用“控制面板”的“管理工具”文件夹中的 IIS 管理单元为 ASP 页面配置这些设置。

WMI ASP 页面示例

以下示例在 Active Server Page (ASP) 中使用 Windows Management Instrumentation (WMI) 来显示执行此脚本的服务器的 IP 地址和默认 IP 网关设置。

<%@ LANGUAGE="VBSCRIPT"%>
<HTML>
<HEAD>
<TITLE>WMI ASP Example:
    Read Default Gateway and IP Address information </TITLE>
</HEAD>

<BODY>

<%
On Error Resume Next
set IPConfigSet = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!root\cimv2").ExecQuery" _
    & "("SELECT IPAddress, DefaultIPGateway "" _ 
    & " FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
%>

<%If Err <> 0 Then %>
    <%if err.number = -2147217405 then%>
        <p>Error 0x80041003: Access Denied: 
           Check permissions and file security for this ASP file.</p>
    <%else%>
        <p>Error description: <%=Err.description%> 
           error number <%=Err.number%></p>
    <%end if%>

<%end if %>

<%for each IPConfig in IPConfigSet%>

    <%if Not IsNull(IPConfig.IPAddress) then %>
        <%for i=LBound(IPConfig.IPAddress) 
            to UBound(IPConfig.IPAddress)%>
            <p>IP Address: <%=IPConfig.IPAddress(i)%></p>
        <%next%>
    <%end if%>
    

    <%if Not IsNull(IPConfig.DefaultIPGateway) then %>
        <%for i=LBound(IPConfig.DefaultIPGateway) 
            to UBound(IPConfig.DefaultIPGateway)%>
            <p>Default IP Gateway: 
                <%=IPConfig.DefaultIPGateway(i)%></p>
        <%next%>
    <%end if%>
<%next%>

<%If Err <> 0 Then %>
    <p>error description: <%=Err.description%> 
       error number <%=Err.number%></p>
<%end if %>

</BODY>
</HTML>