第 2 课:查看 IIS WMI 提供程序的属性和方法

现在您已经打开了三个 IIS 视图,本课将帮助您在 CIM Studio 中浏览属性和方法时在这三个视图之间进行连接。

本课假定您已经安装了万维网发布服务(WWW 服务),但如果您安装了 FTP 服务、SMTP 服务或 NNTP 服务,也可以跟着学习。如果您安装了 WWW 服务之外的服务,属性名称会不同于本课中列出的属性名称。

要点 要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"

查看默认网站

  1. 在 IIS 管理器中,展开本地计算机,然后展开“网站”文件夹。
  2. 右键单击“默认网站”,然后单击“属性”。
  3. 在“默认网站属性”框中,单击“网站”选项卡,然后验证“默认网站”是否位于“描述”框中。
  4. 在“默认网站属性”框中,单击“主目录”选项卡,然后验证 C:\Inetpub\Wwwroot 是否位于“本地路径”框中。
  5. 打开记事本,然后打开 MetaBase.txt,该文件是 IIS 配置文件。
  6. 从记事本的“编辑”菜单中,单击“查找”,然后在“查找内容”框中,键入“默认网站”。将出现下面的文字:
    <IIsWebServer Location="/LM/W3SVC/1"
        AppPool
        DefaultDoc="Default.htm,Default.asp,index.htm,iisstart.asp,Default.aspx"
        SecureBindings=":443:"
        ServerBindings=":80:"
        ServerComment="默认网站"
        ServerSize="1"
    >
    </IIsWebServer>
    
    配置数据库文件使用类似于 HTML 的可扩展标记语言 (XML)。默认网站是 IIsWebServer 类的实例。
  7. ServerComment 属性与 IIS 管理器中的“描述”框匹配。要查找与 IIS 管理器中的“本地路径”框匹配的属性,请在 MetaBase.txt 文件中搜索 C:\Inetpub\Wwwroot。将出现下面的文字:
    <IIsWebVirtualDir Location="/LM/W3SVC/1/ROOT"
        AccessFlags="AccessRead | AccessScript"
        AppFriendlyName="Default Application"
        AppIsolated="2"
        AppPool
        AppRoot="/LM/W3SVC/1/ROOT"
        HttpErrors="400,*,FILE,F:\WINNT\help\iisHelp\common\400.htm"
        ...
        Path="c:\inetpub\wwwroot"
    >
    </IIsWebVirtualDir>
    
    默认网站也表现为虚拟目录,或者换句话说,是 IIsWebVirtualDir 类的实例。这是因为所有网站都必须有一个根虚拟目录(注意每个类的 Location 属性之间的区别)。Path 属性与 IIS 管理器中的“本地路径”匹配。默认网站的属性页显示 IIsWebServer 属性和 IIsWebVirtualDir 属性。
  8. 在记事本中打开 IIS 架构文件 MBSchema.txt,然后搜索 IIsWebServer 类的架构,直到找到下面一行:
    <Collection 
        InternalName="IIsWebServer"
        MetaFlagsEx="NOTABLESCHEMAHEAPENTRY | CONTAINERCLASS"
        MetaFlags="HASUNKNOWNSIZES"
        ContainerClassList="IIsObject,IIsCertMapper,IIsFilters,IIsWebVirtualDir"
        InheritsPropertiesFrom="MetabaseBaseClass"
    >
    
    属于 IIsWebServer 类的所有属性,包括 ServerComment,都在此行中。
  9. MBSchema.txt 文件中,搜索 IIsWebVirtualDir,直到找到下面一行:
    <Collection
        InternalName="IIsWebVirtualDir"
        MetaFlagsEx="NOTABLESCHEMAHEAPENTRY | CONTAINERCLASS"
        MetaFlags="HASUNKNOWNSIZES"
        ContainerClassList="IIsWebDirectory,IIsWebFile,IIsWebVirtualDir,IIsObject"
        InheritsPropertiesFrom="MetabaseBaseClass"
    >
    
    Path 属性的架构在此行中。
  10. 在记事本中打开 IisWmi.txt,并搜索 IIsWebServer,直到找到下面一行:
    class IIsWebServer : CIM_LogicalElement
    这是 IIsWebServer 类的定义,WMI 使用该类访问 IIS 网站的任何实例。IIsWebServerCIM_LogicalElement 类的子类,而 CIM_LogicalElement 类又是 CIM_ManagedSystemElement 类的子类。请注意作为此类的成员列出的属性比 IIsWebServer 的配置数据库架构 <Collection> 标记内列出的属性少得多。
  11. 也许您可以回想起模块 1,第 3 课所学的内容,CIM_ManagedSystemElement 类只包含对象的只读属性和方法。查看 IisWmi.txt 文件中的上述摘录并查找以 [Implemented 开头的行。这些行定义了包含在 IIsWebServer 类中的方法。所有可写属性都在 CIM_Setting 类中的匹配元素类内,在这种情况下,在 IIsWebServerSetting 内。
  12. IisWmi.txt 文件中,搜索 IIsWebServerSetting,直到找到下面一行:
    class IIsWebServerSetting : IIsSetting
    
    ServerComment 属性的定义在此行中。所有属性都以 [Key[read 开头。[Key 表示属性是元素的标识项,并且通常是 Name 属性。

    注意 注意 CIM Studio 可以以图形方式显示 IIS MOF 文件(或任何服务的 MOF 文件)。作为一个附带的优点,CIM Studio 还可以显示所有类的实例,这样,您就可以查看 Web 服务器上的当前配置设置。

  13. 请查看包含 CIM Studio 的 Internet Explorer 窗口。如您在 IisWmi.txt 文件中所见,IIsWebServer 类是 CIM_LogicalElement 类的一个子类,而 CIM_LogicalElement 类又是 CIM_ManagedSystemElement 类的一个子类。
  14. 展开 CIM_ManagedSystemElement,然后展开 CIM_Logical
  15. 单击 IIsWebServer。只读属性、方法和关联都显示在右侧框架中。Name 属性带有一个项图标标记,以将其标识为元素的项。

查看 IIsWebServer 类的实例(查看服务器上的网站)

当您编写管理脚本以读取或更改配置数据库中的属性时,它将帮助您使用配置数据库文件、IIS MOF 文件或 CIM Studio 以了解对象的可用属性。CIM Studio 的一个优点是,您可以查看需要传递到方法的参数。

查看方法的参数

  1. 再次单击“Instances”以回到示意图。
  2. 单击“Methods”选项卡。
  3. 右键单击方法名称,然后单击“Edit Method Parameters”。将出现列出方法的各种参数的一个窗口。尽管没有 IIsWebServer 对象的方法的参数,但是有 IIsWebService 对象的参数。

模块 1,第 2 课中,您已学习了 WMI 中的组织是受继承的需要控制的。IIsWebService 类就是一个典型示例。IIS 服务通过作为基本服务类的子类来利用基本服务类的继承性。要查找 IIsWebService,请在 CIM_ManagedSystemElementCIM_ServiceWin32_BaseServiceWin32_Service 中查看。这一级别的嵌套不会使编程访问变难,因为您可以在编写脚本时直接引用 IIsWebService 类。

查看 IIsWebService 对象的参数

  1. 单击左侧框架中的 IIsWebService
  2. 单击右侧框架中的“Methods”选项卡。
  3. 右键单击 CreateNewSite,然后单击“Edit Method Parameters”。

如果您编写一个使用此方法创建新网站的脚本,您需要使用下列语法调用该方法:

siteID = IIsWebServiceObj.CreateNewSite("My New Site", arrBindings, "C:\Inetpub\NewSite")

ServerID 参数(第四个参数)是可选的,该参数可以通过用鼠标右键单击 CIM Studio 的右侧框架中的 ServerId,然后单击“Parameter Qualifiers”看到。将“OPTIONAL”限定符设置为 true

查看 IIsWebServer 对象的可写属性

回到 IIsWebServerSetting 的示意图,然后单击“Associations”选项卡。这是 WMI 如何确定 IIsWebServerSettingCIM_ManagedSystemElement 类的 IIsWebServer 关联的方式。此关联在 CIM_ElementSetting 类下以 IIsWebServer_IIsWebServerSetting 类表示。

回到 IIsWebServer 类,然后单击“Associations”选项卡。那里有与 IIsWebServerSetting 的关联,也有其他几个关联。其他关联表示一个类包含在另一个类中,允许某些属性和方法进行继承。每个包含关联都是在 CIM_Component 类中表示的。

最后,还有 IIsStructuredDataClass。在模块 1,第 3 课中,您已学习到了此类包含的元素是以 ADSI 中复杂而容易出错的方式表示的。应熟悉此类的元素及其属性。请注意它们并不与任何其他类关联。它们可以独立存在。如您在 CreateNewSite 方法的参数中所见,这些元素的实例的阵列可以传递到方法。

相关主题

© 1997-2003 Microsoft Corporation。保留所有权利