作者:IIS 团队
介绍
本文介绍为浏览 WMI 命名空间提供可视界面的工具 WMI CIM Studio。 使用 IIS“WebAdministration”命名空间,了解如何枚举命名空间中的类,查看类的属性和方法,搜索类和属性中是否有特定单词(如“限制”)等等,而且不必编写任何脚本即可实现这些操作。
在 WMI 中执行任何操作之前,必须连接到命名空间。 本文档的第一部分介绍如何下载和打开 CIM Studio、枚举所有命名空间并连接到特定命名空间。
本文档的第二部分演示如何通过查看命名空间中的类的属性和方法以及属性/方法元数据(例如属性是只读还是可读/写)来浏览命名空间中的类。 最后,获取对象实例并通过设置属性和执行方法来与之交互。 这就是 WMI,直观且简单。
开始前
安装 IIS
必须安装 IIS 7.0 或更高版本才能完成本文档中的步骤。 如果可以浏览到 http://localhost
并收到标准的 IIS“正在构建”页面,则安装 IIS。 如果未安装 IIS,请参阅在 Windows Vista 上安装 IIS 以获取安装说明。
安装 WMI 提供程序
通过选择“管理工具”(或 Web 管理工具)下的“IIS 管理脚本和工具”组件来安装 IIS WMI 提供程序。 在 Windows Vista 中,这位于 Internet Information Services 下的“Windows 功能”对话框中。 在 Windows Server® 2008 上,位于 Web 服务器 (IIS) 角色下的服务器管理器中。
安装 WMI 工具(包括 CIM Studio)
在开始之前安装 WMI 工具套件。
所需的权限和用户帐户控制 (UAC)
你必须是管理员才能连接到 WebAdministration WMI 命名空间。 这意味着你已经用以下身份登录:
- Longhorn 服务器上的内置管理员帐户
- 管理员组的成员,并且你禁用了用户帐户控制 (UAC)
- 已启用管理员组成员和 UAC
如果是第一种或第二种情况,则在本文中不会遇到任何权限问题。
如果是第三种情况,将遇到“拒绝访问”错误。 通过始终以管理员身份打开命令提示符并从提升的命令提示符启动 CIM Studio 来避免这些问题。
若要以管理员身份打开命令提示符窗口,请依次单击“开始”、“所有程序”、“附件”,右键单击“命令提示符”,然后选择“以管理员身份运行”。
若要从提升的命令提示符启动 CIM Studio:
- 以管理员身份打开命令提示符。
- 键入
%systemdrive%\Program Files\WMI Tools\studio.htm
,然后按 Enter。
创建备份。
在开始之前备份重要的 IIS 配置文件,以便在完成后将系统还原到其原始状态。
- 打开命令提示符。
- 键入
%windir%\system32\inetsrv\appcmd add backup IIS7\_WMI\_CIMStudioLab
。
预期输出:
BACKUP object "IIS7_WMI_CIMStudioLab" added
- 完成后,通过以管理员身份打开命令提示符并键入
%windir%\system32\inetsrv\appcmd restore backup IIS7\_WMI\_CIMStudioLab
,将 IIS 还原到其原始状态。
预期输出:
Restored configuration from backup "IIS7_WMI_CIMStudioLab"
1.连接 WebAdministration 命名空间
依次单击“开始”、“所有程序”、“WMI 工具”和“WMI CIM Studio”。
如果出现以下对话框提示,请单击“关闭”。
如果黄色信息栏指示 Internet Explorer 正在阻止活动内容,请右键单击信息栏,然后单击“允许阻止的内容...”选项。 然后会收到安全警告,询问是否确实要让此文件运行活动内容;单击“是”。
注意
如果希望将来避免出现此安全警告,请单击 Internet Explorer 7 右侧的“工具”下拉菜单,选择“Internet 选项...”,单击“高级”选项卡,向下滚动到“安全设置”,检查“允许活动内容在计算机上的文件中运行”。 单击“确定”。
CIM Studio 打开时,你将看到下面的对话框。 使用此对话框可以连接到特定的 WMI 命名空间。 单击下方红色圆圈中的浏览按钮。
浏览按钮将显示下面的命名空间浏览对话框。 单击连接按钮。
CIM Studio 现在弹出登录对话框,如下所示。 单击“确定”。
该对话框显示连接到根命名空间后在“root”下可用的命名空间的树视图。 滚动到底部会看到“WebAdministration”,这是新的 IIS WMI 命名空间。 双击 WebAdministration 文件夹图标以连接到命名空间。
CIM Studio 再次弹出登录对话框。 单击“确定”。
成功连接到 WebAdministration 命名空间后,CIM Studio 窗口左侧看起来类似于下面的屏幕截图。 检查命名空间是否称为“root\WebAdministration”,如下所示。
2.浏览类
WebAdministration 命名空间中的类列表类似于下面的屏幕截图。 红色圆圈中的类是 WebAdministration 提供程序的基类;不带圆圈且以双下划线“__”开头的类是与 WebAdministration 提供程序无关的 WMI 标准类。
展开“Object”类下的树。 展开“ConfiguredObject”类下的树。 现在可以看到一个树视图,其中包含熟悉的 Web 服务器对象,如 Site 和 Application,如下所示。 这些对象是 WebAdministration WMI 命名空间的集中焦点,大部分时间可能都是与这些对象交互。
选择“Site”对象。 选择对象时,CIM Studio 窗口的右侧窗格提供有关该对象的信息。 下面的屏幕截图显示了“属性”选项卡。“属性”选项卡显示 Site 属性的名称、其类型和值。 你会注意到,“值”列主要包含“<>空”字符串,因为我们查看的是 Site 对象的定义,而不是站点实例(我们稍后查看实例)。 请注意,以双下划线“__”开头的所有属性都是标准 WMI 类属性,在学习 WMI 基础知识时可以忽略。
若要知道站点 Id 属性是只读还是可读/写,请右键单击 Id 并选择“属性限定符...”
下面的对话框显示了 Id 属性的“限定符”。 限定符是有关属性的元数据。 “read”和“write”限定符描述属性是否可以读取或写入;读取和写入限定符的 Id 属性都为 true 值,表示此属性是可读/写的。
- 单击“取消”按钮。
- 单击“方法”选项卡可查看 Site 方法,如下所示。
若要了解 Create 方法采用哪些参数,请右键单击 Create 方法并选择“编辑方法参数”。 此菜单项启动一个对话框,其中包含 Create 方法的参数列表,如下所示。 方法的返回类型在对话框底部指定。 注意不要修改任何方法参数;仅使用此对话框查看方法参数。
单击“取消”按钮。
单击右窗格中的“属性”选项卡,再看一下 Site 属性。 Bindings 属性的类型为“object:BindingElement”;即 BindingElement 对象的数组。 接下来,查看 BindingElement 类,了解 BindingElement 具有哪些属性。
单击下方红色圆圈中的“搜索”按钮。
在搜索文本框中键入 BindingElement,然后单击“执行!”按钮。 “搜索结果:”文本框显示名为 BindingElement 的条目。
双击搜索结果中的 BindingElement 条目,转到 BindingElement 类定义。
3.获取对象实例
使用搜索再次查找“Site”类。 单击下方以红色圆圈显示的“实例”按钮,查看 Site 对象的所有实例。
Site 对象的所有实例都以蓝色文本显示在 CIM Studio 的右侧面板中,如下所示。 双击“默认网站”实例以获取有关 Site 对象的详细信息。
现在 CIM Studio 显示有关默认网站的信息。 站点名称显示在右侧窗格的顶部,“属性”选项卡上的属性具有实际值,而不是“空<>”。 “日志文件”属性在其“值”列中具有标记为“对象”的按钮,而不是实际值。 单击此“对象”按钮。
“对象”按钮启动一个对话框,其中显示了“日志文件”对象的属性,如下所示。 这些属性启用/禁用日志记录、定义日志文件的格式、指定日志记录目录等。
在 LocalTimeRollover 属性的“值”字段中单击。 单击下拉列表以查看此值的选项,然后选择“true”。 此字段现在显示“true”;文本为蓝色,因为此属性已被修改。
单击“确定”按钮。 “保存”按钮(下面红色圆圈中所示)已变为可用,因为 LogFile.LocalTimeRollover 属性已修改。 单击“保存”按钮。
若要查看配置会发生哪些变化,请依次单击“开始”和“运行”,然后键入 notepad %windir%\system32\inetsrv\applicationHost.config
。 单击“编辑”菜单,然后选择“查找”。 键入“localTimeRollover”以查找新添加的配置。 配置应类似于下面的 XML,localTimeRollover 配置属性应设置为“true”。
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
</application>
<bindings>
<clear />
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
<logFile localTimeRollover="true" />
</site>
关闭 applicationHost.config 文件(如果记事本询问是否要保存更改,单击“否”)。 现在,我们执行 Site 的一个方法。 单击“方法”选项卡,右键单击 GetState 方法,然后选择“执行方法”。 单击“执行”按钮。
返回值为 1 或“Started”。 我们如何知道这一点? 单击“关闭” 。 右键单击 GetState 方法并选择“方法限定符...”。 这会显示 GetState 方法元数据,包括 ValueMap 和 Values,这些元数据描述了返回值与人类可读数据的映射关系。 单击“值”行中的“数组”按钮以查看不同的状态。
总结
本文档介绍了如何连接到 WMI 命名空间、如何搜索类、如何发现类的属性和方法、如何确定属性是可读/写还是只读,如何查找方法的参数、如何获取特定对象的实例、如何以交互方式更改对象实例的属性,以及如何查看嵌入对象的属性。