第 2 课:查看 IIS WMI 提供程序的属性和方法
现在您已经打开了三个 IIS 视图,本课将帮助您在 CIM Studio 中浏览属性和方法时在这三个视图之间进行连接。
本课假定您已经安装了万维网发布服务(WWW 服务),但如果您安装了 FTP 服务、SMTP 服务或 NNTP 服务,也可以跟着学习。如果您安装了 WWW 服务之外的服务,属性名称会不同于本课中列出的属性名称。
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
查看默认网站
- 在 IIS 管理器中,展开本地计算机,然后展开“网站”文件夹。
- 右键单击“默认网站”,然后单击“属性”。
- 在“默认网站属性”框中,单击“网站”选项卡,然后验证“默认网站”是否位于“描述”框中。
- 在“默认网站属性”框中,单击“主目录”选项卡,然后验证 C:\Inetpub\Wwwroot 是否位于“本地路径”框中。
- 打开记事本,然后打开 MetaBase.txt,该文件是 IIS 配置文件。
- 从记事本的“编辑”菜单中,单击“查找”,然后在“查找内容”框中,键入“默认网站”。将出现下面的文字:
<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 类的实例。
- 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 属性。
- 在记事本中打开 IIS 架构文件 MBSchema.txt,然后搜索 IIsWebServer 类的架构,直到找到下面一行:
<Collection
InternalName="IIsWebServer"
MetaFlagsEx="NOTABLESCHEMAHEAPENTRY | CONTAINERCLASS"
MetaFlags="HASUNKNOWNSIZES"
ContainerClassList="IIsObject,IIsCertMapper,IIsFilters,IIsWebVirtualDir"
InheritsPropertiesFrom="MetabaseBaseClass"
>
属于 IIsWebServer 类的所有属性,包括 ServerComment,都在此行中。
- 在 MBSchema.txt 文件中,搜索 IIsWebVirtualDir,直到找到下面一行:
<Collection
InternalName="IIsWebVirtualDir"
MetaFlagsEx="NOTABLESCHEMAHEAPENTRY | CONTAINERCLASS"
MetaFlags="HASUNKNOWNSIZES"
ContainerClassList="IIsWebDirectory,IIsWebFile,IIsWebVirtualDir,IIsObject"
InheritsPropertiesFrom="MetabaseBaseClass"
>
Path 属性的架构在此行中。
- 在记事本中打开 IisWmi.txt,并搜索 IIsWebServer,直到找到下面一行:
class IIsWebServer : CIM_LogicalElement
这是 IIsWebServer 类的定义,WMI 使用该类访问 IIS 网站的任何实例。IIsWebServer 是 CIM_LogicalElement 类的子类,而 CIM_LogicalElement 类又是 CIM_ManagedSystemElement 类的子类。请注意作为此类的成员列出的属性比 IIsWebServer 的配置数据库架构 <Collection> 标记内列出的属性少得多。
- 也许您可以回想起模块 1,第 3 课所学的内容,CIM_ManagedSystemElement 类只包含对象的只读属性和方法。查看 IisWmi.txt 文件中的上述摘录并查找以 [Implemented 开头的行。这些行定义了包含在 IIsWebServer 类中的方法。所有可写属性都在 CIM_Setting 类中的匹配元素类内,在这种情况下,在 IIsWebServerSetting 内。
- 在 IisWmi.txt 文件中,搜索 IIsWebServerSetting,直到找到下面一行:
class IIsWebServerSetting : IIsSetting
ServerComment 属性的定义在此行中。所有属性都以 [Key 或 [read 开头。[Key 表示属性是元素的标识项,并且通常是 Name 属性。
注意 CIM Studio 可以以图形方式显示 IIS MOF 文件(或任何服务的 MOF 文件)。作为一个附带的优点,CIM Studio 还可以显示所有类的实例,这样,您就可以查看 Web 服务器上的当前配置设置。
- 请查看包含 CIM Studio 的 Internet Explorer 窗口。如您在 IisWmi.txt 文件中所见,IIsWebServer 类是 CIM_LogicalElement 类的一个子类,而 CIM_LogicalElement 类又是 CIM_ManagedSystemElement 类的一个子类。
- 展开 CIM_ManagedSystemElement,然后展开 CIM_Logical。
- 单击 IIsWebServer。只读属性、方法和关联都显示在右侧框架中。Name 属性带有一个项图标标记,以将其标识为元素的项。
查看 IIsWebServer 类的实例(查看服务器上的网站)
- 单击右侧框架上方看上去像带有两个框架的窗口的“Instances”。如果您不确定所看的是哪一个按钮,将鼠标移到按钮上方,就会有“Instances”字样弹出。在默认安装中,只有一个实例会显示出来:W3SVC/1。
行中的所有字段对应于 IIsWebServer 的只读属性,这些字段中包含配置数据库配置文件中的当前值。
当您编写管理脚本以读取或更改配置数据库中的属性时,它将帮助您使用配置数据库文件、IIS MOF 文件或 CIM Studio 以了解对象的可用属性。CIM Studio 的一个优点是,您可以查看需要传递到方法的参数。
查看方法的参数
- 再次单击“Instances”以回到示意图。
- 单击“Methods”选项卡。
- 右键单击方法名称,然后单击“Edit Method Parameters”。将出现列出方法的各种参数的一个窗口。尽管没有 IIsWebServer 对象的方法的参数,但是有 IIsWebService 对象的参数。
在模块 1,第 2 课中,您已学习了 WMI 中的组织是受继承的需要控制的。IIsWebService 类就是一个典型示例。IIS 服务通过作为基本服务类的子类来利用基本服务类的继承性。要查找 IIsWebService,请在 CIM_ManagedSystemElement、CIM_Service、Win32_BaseService、Win32_Service 中查看。这一级别的嵌套不会使编程访问变难,因为您可以在编写脚本时直接引用 IIsWebService 类。
查看 IIsWebService 对象的参数
- 单击左侧框架中的 IIsWebService。
- 单击右侧框架中的“Methods”选项卡。
- 右键单击 CreateNewSite,然后单击“Edit Method Parameters”。
如果您编写一个使用此方法创建新网站的脚本,您需要使用下列语法调用该方法:
siteID = IIsWebServiceObj.CreateNewSite("My New Site", arrBindings, "C:\Inetpub\NewSite")
ServerID 参数(第四个参数)是可选的,该参数可以通过用鼠标右键单击 CIM Studio 的右侧框架中的 ServerId,然后单击“Parameter Qualifiers”看到。将“OPTIONAL”限定符设置为 true。
查看 IIsWebServer 对象的可写属性
- 在 CIM Studio 的左侧框架中,展开 CIM_Setting,展开 IIsSetting,然后单击 IIsWebServerSetting。
- 单击右侧框架中的“Instances”来查看服务器上的所有网站的当前配置设置。
回到 IIsWebServerSetting 的示意图,然后单击“Associations”选项卡。这是 WMI 如何确定 IIsWebServerSetting 与 CIM_ManagedSystemElement 类的 IIsWebServer 关联的方式。此关联在 CIM_ElementSetting 类下以 IIsWebServer_IIsWebServerSetting 类表示。
回到 IIsWebServer 类,然后单击“Associations”选项卡。那里有与 IIsWebServerSetting 的关联,也有其他几个关联。其他关联表示一个类包含在另一个类中,允许某些属性和方法进行继承。每个包含关联都是在 CIM_Component 类中表示的。
最后,还有 IIsStructuredDataClass。在模块 1,第 3 课中,您已学习到了此类包含的元素是以 ADSI 中复杂而容易出错的方式表示的。应熟悉此类的元素及其属性。请注意它们并不与任何其他类关联。它们可以独立存在。如您在 CreateNewSite 方法的参数中所见,这些元素的实例的阵列可以传递到方法。
© 1997-2003 Microsoft Corporation。保留所有权利。