资源 URI
资源 URI 是实现 WS-Management 协议的管理服务使用的不同类型的管理操作或值的标识符。 管理值可以是计算机内部的温度。 管理操作的一个示例是启动已停止的服务或设置磁盘卷用户配额。
资源 URI 格式
URI 由前缀和资源路径组成,如以下示例所示:
"http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk"
此架构规范指示 URI 基于官方WS-Management协议的版本 1,并且资源是 WMI 存储库的“root\cimv2”命名空间中的 Win32_LogicalDisk 。 URI 前缀包含架构规范(例如“schemas.microsoft.com/wbem/wsman/1/wmi”)和特定类型的资源(例如 Win32_LogicalDisk)。 有关标识 WMI 类的特定实例的详细信息,请参阅 Windows 远程管理和 WMI。
有关详细信息,请参阅 URI 前缀。
资源 URI 的类型
虽然 Windows Management Instrumentation (WMI) 是基于 Windows 的操作系统管理数据的主要源,但其他管理架构源也存在。
以下列表描述了 Windows 远程管理使用的几种类型的资源 URI:
WMI URI
这组 URI 表示包含命名空间和类 的通用信息模型 类路径。
WMI URI 可用于:
IPMI URI
这组 URI 表示基于 CIM 版本 2.9 的行业标准 URI。 IPMI URI 可用于 会话 方法 Get、 Put、 Enumerate 和 Invoke。
例如 https://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor.xsd。 此资源是根据 CIM 架构 DMTF.org 定义的。
WinRM 配置 URI
这组 URI 是 WinRM侦听器 配置的配置操作。
https://schemas.microsoft.com/wbem/wsman/1/config/listener
可在 会话 方法 Get、 Put、 Create、 Delete 和 Enumerate 中使用。系统事件日志 (SEL) URI
这组 URI 订阅来自 BMC 的事件收集器事件。 可以使用 Wevtutil 命令行工具订阅这些事件。
区分大小写
WMI 插件保留请求中收到的资源 URI 大小写。 但是,为了确保与 WS-Management 协议的其他实现的互操作性,请在资源 URI 中对请求的资源使用正确的大小写。 正确的大小写是资源提供程序定义的拼写。
虽然资源 URI 不需要区分大小写,但 片段 XML 需要区分大小写。 片段只指定一个属性,而不是资源的整个属性集。 对于 WMI 资源,片段语法从资源实例获取一个属性。 例如,仅从 Win32_OperatingSystem 获取 Version 属性需要使用片段。 有关片段的详细信息,请参阅 Windows 远程管理和 WMI 中的“将选择器添加到 ResourceLocator 或 IWSManResourceLocator 对象”。
按照 XML 和 XPath 标准, WMI 插件 对定义方法的输入参数的片段和 XML 强制实施区分大小写。 需要区分大小写才能支持 XPath 1.0/级别 1 标准。 若要通过 WinRM 获取 WMI 数据,区分大小写意味着 WMI 类、属性和方法的名称必须与 WMI 存储库中的名称大小写匹配。
有关详细信息,请参阅 XPath 语法。
区分大小写的示例
例如,从 WMI Win32_Service 类的实例获取 SECURITY_DESCRIPTOR 属性的脚本不能对片段路径中的名称使用大写,而只能使用 URI。 WinRM WMI 插件 为以下 VBScript 示例返回错误,因为为 FragmentPath 提供的 XPath XML 未使用正确的大小写。 在 WMI 存储库中, 类拼写为“Win32_Service”。
RResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/"_& "wmi/root/cimv2/Win32_Service?Name=winrm"
Set WSMan = CreateObject("WSMan.Automation")
Set Locator = WSMan.CreateResourceLocator(Resourceuri)
Locator.FragmentPath = "/Win32_SERVICE/Name"
Set Session = WSMan.Createsession
xml = Session.Get(Locator)
WScript.Echo xml
同一示例的以下版本演示 了 Win32_Service 类和 SECURITY_DESCRIPTOR 属性的正确用例。
ResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/"_
& "wmi/root/cimv2/Win32_Service?Name=winrm"
Set WSMan = CreateObject("WSMan.Automation")
Set Locator = WSMan.CreateResourceLocator(Resourceuri)
Locator.FragmentPath = "/Win32_Service/Name"
Set Session = WSMan.Createsession
xml = Session.Get(Locator)
WScript.Echo xml
相关主题