标准限定符

所有符合 CIM 规范的实现都必须处理一组标准的限定符。 无法列出任一特定对象的所有限定符。 通常,扩展类提供额外的限定符来简化类实例的预配以及对类的其他操作。

提供程序负责强制实施限定符。 WMI 不强制实施限定符,而只是使用它们来向用户告知属性的使用方式。

注意

WMI 符合 CIM 2.5 规范。

限定符具有以下限制:

  • 并非所有标准限定符都可以一起使用。
  • 并非所有限定符都适用于所有构造,例如关联或引用。 这些限制已在“适用于”列表中标识。
  • 对于特定的构造(例如关联或引用),可以进一步限制合法限定符的使用,因为某些限定符是互斥的,使用一个限定符可能意味着另一个限定符的值受到某些限制,等等。 这些用法规则有相应的文档。
  • 合法限定符仅由属性、方法、实例或子类等实体继承,而不会由关联或引用继承。 例如,适用于属性的 MaxLen 限定符不会由引用继承。

下面列出了 WMI 标准限定符。

Abstract

数据类型:布尔值

适用于:类、关联、指示

指示该类是否为抽象类,并且仅用作新类的基础。 默认值为 FALSE。 无法创建抽象类的实例。 缺少此限定符表示该类不是抽象类;因此,所有抽象类都需要此限定符。

Aggregate

数据类型:布尔值

适用于:引用

指示引用是否为聚合关联的父组件。 默认值为 FALSE。

用法:Aggregation 和 Aggregate 限定符一起使用。Aggregation 限定关联,Aggregate 指定父引用。

Aggregation

数据类型:布尔值

适用于:关联

指示关联是否为聚合。 默认值为 FALSE。 与 Aggregate 一起使用。 所有聚合关联都需要此限定符。

Alias

数据类型:字符串

适用于:属性、引用、方法

架构中某个属性或方法的备用名称。 默认值为 NULL。

ArrayType

数据类型:字符串

适用于:属性、参数

限定的数组的类型。

有效值为:

  • bag(默认值)
  • 索引的
  • ordered

用法:仅将这种限定符应用于数组形式的属性和参数(使用括号语法定义)。

BitMap

数据类型:字符串数组

适用于:属性、方法、参数

重要位位置的映射,其中每个重要位置可为“开”或“关”。 每个“开”位映射到 BitValues 数组中的相应值。 “打开”多个位后,将指示 BitValues 数组中的多个并发值。 默认值为 NULL。

有关详细信息,请参阅 BitMap 和 BitValues

BitValues

数据类型:字符串数组

适用于:属性、方法、参数

将位位置值转换为关联的字符串。 默认值为 NULL。

有关详细信息,请参阅 BitMap 和 BitValues

Constructor

数据类型:布尔值

适用于:方法

指示方法是否创建实例。 这些方法并非限制为作用于单个实例或单个类。 例如,构造函数可以创建关联实例,以及创建定义该构造函数的类的实例。

Constructor 限定符仅用于提供信息,对象管理器预期不会对其采取操作。 在创建对象时,对象管理器不必调用构造函数方法。 此外,当调用构造函数时,对象管理器不必调用为原始类的任何父类定义的任何构造函数方法。 默认值为 FALSE。

CreateBy

数据类型:字符串

适用于:类

用于创建此类的实例的方法名称。 值为“PutInstance”或创建实例的另一个方法的名称。 默认值为 NULL。

用法:仅当存在 SupportsCreate 限定符时才能使用此限定符。

DeleteBy

数据类型:字符串

适用于:类

用于删除此类的实例的方法名称。 值为“DeleteInstance”或删除实例的另一个方法的名称。 默认值为 NULL。

用法:仅当存在 SupportsDelete 限定符时才能使用此限定符。

Description

数据类型:字符串

适用于:任何

命名元素的说明。 默认值为 NULL。

Destructor

数据类型:布尔值

适用于:方法

指示方法是否删除实例。 使用 Destructor 限定符的方法会删除应用了析构函数的实例,并且不限制为作用于单个实例或类。 例如,析构函数可能会删除关联实例以及定义该析构函数的类的实例。

Destructor 限定符仅用于提供信息,对象管理器预期不会对其采取操作。 删除实例时,对象管理器没有义务调用具有 Destructor 限定符的方法。 此外,当调用析构函数时,对象管理器不必调用为原始类的任何父类定义的任何析构函数方法。 默认值为 FALSE。

DisplayName

数据类型:字符串

适用于:任何

UI 中显示的名称,而不是元素的实际名称。 默认值为 NULL。

EmbeddedInstance

数据类型:字符串

适用于:任何

限定的字符串类型元素包含一个嵌入式实例。 限定符值指定拥有被限定元素的类所在的同一命名空间中的 CIM 类的名称。 嵌入式实例是指定的类的实例,包括其子类的实例。 默认值为 NULL。

Gauge

数据类型:布尔值

适用于:任何

指示属性是否表示非负整数,该数字可以增大或减小,但永远不会超过最大值。 默认值为 FALSE。

属性的最大值不能大于 2^n - 1。 N 可以是 8、16、32 或 64,具体取决于应用此限定符的属性的数据类型。 只要建模的信息大于或等于该最大值,计量表的值就有最大值。 如果建模的信息随后降低至最大值以下,则计量表值也会降低。 此限定符仅适用于无符号整数数据类型的属性。

In

数据类型:布尔值

适用于:参数

指示参数是否用于将值传递给方法。 默认值为 TRUE。

In, Out

数据类型:布尔值

适用于:参数

指示该参数是否既是输入参数也是输出参数。

Key

数据类型:布尔值

适用于:属性、引用

指示属性是否是命名空间句柄的一部分。 如果多个属性具有 Key 限定符,则所有此类属性共同构成键(复合键)。 组合在一起时,键属性必须为每个类实例提供唯一的引用。 如果将此限定符放置在属性上,则只允许值为 TRUE。

Lazy

适用于:属性

指示返回该属性会消耗大量资源,并且需要占用大量的处理器时间和内存。 WMI 不会尝试返回标有 Lazy 限定符的属性,从而可以提高查询性能。

MappingStrings

数据类型:字符串数组

适用于:类、属性、关联、指示、引用

指示某个位置的路径的值集,可以在该位置找到有关属性、类、关联、指示或引用的源的详细信息。 映射字符串可以是目录路径、URL、注册表项、include 文件、对 CIM 类的引用或其他某种格式。 默认值为 NULL。

Max

数据类型:int

适用于:引用

给定的引用可以对关联中其他每个引用值集使用的值数上限。 默认值为 NULL。 例如,如果关联将 A 实例与 B 实例相关联,并且每个 B 实例最多只能有一个 A 实例,则对 A 的引用最多只能有一个限定符。

MaxLen

数据类型:int

适用于:属性、方法、参数

字符串数据项的最大长度(以字符为单位),指示支持固定长度数组。

如果遇到固定长度数组,MaxLen 限定符将包含分析过程中找到的固定长度。 如果遇到可变长度数组,则不使用此限定符。 MaxLen 用于建议应存储在数组中的元素数上限。 重写默认值时,可以指定任何无符号整数值 (uint32)。 NULL 值(默认值)表示长度无限制。

MaxValue

数据类型:int

适用于:属性、方法、参数

对象的最大值。 默认值为 NULL。

Min

数据类型:int

适用于:引用

引用的最小基数(给定的引用可以对关联中其他每个引用值集使用的值数下限)。 默认值为 0。

例如,如果关联将 A 实例与 B 实例相关联,并且每个 B 实例最少需要有一个 A 实例,则对 A 的引用最少需要一个限定符。

MinValue

数据类型:int

适用于:属性、方法、参数

指示对象的最小值。 默认值为 NULL。

ModelCorrespondence

数据类型:字符串数组

适用于:属性

指示对象属性与 CIM 架构中其他属性之间的对应关系的值集。 默认值为 NULL。

使用以下语法标识对象属性。

<架构名称> “_” <类或关联名称> “.” <属性名称>

Nonlocal

数据类型:字符串

适用于:引用

实例的位置,其值为 <namespacetype>://<namespacehandle>。默认值为 NULL。

用法:此限定符不能与 NonlocalType 限定符一起使用。

NonlocalType

数据类型:字符串

适用于:引用

实例的位置类型。 其值为 <namespacetype>。 默认值为 NULL。

用法:此限定符不能与 Nonlocal 限定符一起使用。

NullValue

数据类型:字符串

适用于:属性

用于指示关联的属性为 NULL 的值(该属性没有有效值或有意义的值)。 默认值为 NULL。

用于定义 NULL 值的约定和限制与适用于 ValueMap 限定符的约定和限制相同。 请注意,无法重写此限定符。 允许子类返回与父类不同的 NULL 值是不合理的。

Out

数据类型:布尔值

适用于:参数

指示参数是否从方法返回值。 默认值为 FALSE。

Override

数据类型:字符串

适用于:属性、方法、引用

由派生类中同名的属性、方法或引用重写的父类或从属构造(属性、方法或引用)。 默认值为 NULL。

格式为:

[<类>.]<从属构造>

如果省略类名,则重写将应用于类层次结构中父类中的从属构造。

用法:Override 限定符只能引用基于相同元模型的构造。 不允许在执行重写操作期间更改构造名称或签名。

OverrideValue

适用于:类

指示子类上的属性值是否重写父类中的值。 在功能方面的含义是,如果你对父类执行查询,并且 WHERE 子句包含此属性,则父类必须返回具有重写值的实例。 因此,Windows 管理会调整发送到父类的查询的 WHERE 子句,以排除对此属性的引用。

Propagated

数据类型:字符串

适用于:属性

正在传播的键的名称。 默认值为 NULL。

如果使用此限定符,将假设使用包含类作为目标的引用中只存在一个弱限定符。 关联的属性必须与弱关联另一端的类中的限定符命名的属性具有相同值。 格式为:

[<类>.]<从属构造>

用法:使用 Propagated 限定符时,必须使用值 TRUE 指定 Key 限定符。

Read

数据类型:布尔值

适用于:属性

指示属性是否可读。 默认值为 TRUE。

Required

数据类型:布尔值

适用于:属性

指示是否必须为属性指定非 null 值。 默认值为 FALSE。

Revision

数据类型:字符串

适用于:类、关联、指示、架构

架构对象的次要修订版号。 默认值为 NULL。

用法:使用 Revision 限定符时,必须提供 Version 限定符以指定主要版本号。

Schema

数据类型:字符串

适用于:属性、方法

在其中定义功能的架构的名称。 默认值为 NULL。

Source

数据类型:字符串

适用于:类、关联、指示、引用

实例的位置。 默认值为 NULL。

限定符的值为 <namespacetype>://<namespacehandle>。

用法:Source 限定符不能与 SourceType 限定符一起使用。

SourceType

数据类型:字符串

适用于:类、关联、指示、引用

实例的位置类型。 此限定符的值为 <namespacetype>。 默认值为 NULL。

用法:SourceType 限定符不能与 Source 限定符一起使用。

SupportsCreate

数据类型:布尔值

适用于:类

指示类是否支持创建实例。 默认值为 FALSE。

SupportsDelete

数据类型:布尔值

适用于:类

指示类是否支持删除实例。 默认值为 FALSE。

SupportsUpdate

数据类型:布尔值

适用于:类

指示类是否支持修改(更新)实例。 默认值为 FALSE。

Terminal

数据类型:布尔值

适用于:类

指示类是否可以有子类。 默认值为 FALSE。

如果声明了子类,编译器将生成错误。

用法:此限定符不能与 Abstract 限定符共存。 如果同时指定了 Terminal 和 Abstract 限定符,编译器将生成错误。

Units

数据类型:字符串

适用于:属性、方法、参数

用于表示关联的数据项的单位类型。 默认值为 NULL。

例如,大小数据项的 Units 值可能为“bytes”。

ValueMap

数据类型:字符串数组

适用于:属性、方法、参数

属性、方法返回类型或方法参数的允许值集。 默认值为 NULL。

用法:此限定符可以单独使用,也可以与 Values 限定符结合使用。 与 Values 限定符结合使用时,ValueMap 数组中值的位置将提供 Values 数组中相应条目的位置。 请仅将 ValueMap 限定符用于字符串和整数值。 在值映射数组中表示整数值的语法是 [+|=]digit[*digit]。 内容、最大位数和表示值受关联的属性类型约束。 例如,uint8 可能没有符号,必须少于四位数,并且必须表示小于 256 的值。

Values

数据类型:字符串数组

适用于:属性、方法、参数

用于将整数值转换为关联的字符串的值集。 默认值为 NULL。

此属性还指定要映射到枚举属性的字符串值数组。 此限定符可应用于整数属性或字符串属性,并且映射可为隐式或显式。 如果映射为隐式,则整数或字符串属性值表示 Values 数组中的顺序位置。 如果映射为显式,则属性必须是整数,有效的属性值在 ValueMap 限定符定义的数组中列出。 有关详细信息,请参阅值映射

如果不存在 ValueMap 限定符,则使用关联的属性、方法返回类型或方法参数中的值为 Values 数组编制索引(相对于零)。 如果存在 ValueMap 限定符,则值索引由属性值在值映射中的位置定义。

Version

数据类型:字符串

适用于:类、架构、关联、指示

架构对象的主要版本号。 默认值为 NULL。 对改变接口的架构进行更改时,版本号会递增。

Weak

数据类型:布尔值

适用于:引用

指示被引用类的键是否包含关联中其他参与者的键。 默认值为 FALSE。

当被引用类的标识依赖于关联中其他参与者的标识时,请使用此限定符。 不能对任一给定类进行多次弱引用。 关联中的其他类必须定义一个键。 关联中其他类的键在被引用类中重复,并使用 Propagated 限定符进行标记。

Write

数据类型:布尔值

适用于:属性

指示应用程序或脚本可以更改属性值。 运行应用程序的帐户必须有权访问包含类实例的命名空间。 提供程序实现也可以限制对提供程序数据的访问。 TRUE 值指示属性可由 WMI 和提供程序允许访问的使用者读取和写入。 默认值为 FALSE。

缺少 Write 限定符的属性仍可以是可写的。 无论是否存在 Write 限定符,提供程序实现都可以允许更改提供程序类中的任何属性。

WriteAtCreate

数据类型:布尔值

适用于:属性

指示属性在创建实例时是否可写。 此限定符可与 WriteAtCreate 限定符结合使用。 默认值为 FALSE。

WriteAtUpdate

数据类型:布尔值

适用于:属性

指示属性在更新实例时是否可写。 此限定符可与 WriteAtCreate 限定符结合使用。 默认值为 FALSE。

示例

若要详细了解如何检索限定符,请参阅 TechNet 库上的 Get-WmiClassMethodsAndWritableWmiProperties PowerShell 代码示例。

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008

另请参阅

WMI 限定符

添加限定符