标准 WMI 限定符

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

Amendment

数据类型:布尔值

适用于:类

指示类包含已本地化的修正后限定符。 默认值为 TRUE。

可以翻译关联的类。 若要访问翻译后的版本,请使用区域设置标识符来构造命名空间名称。

Bypass_GetObject

数据类型:布尔值

适用于:方法

指示方法调用应直接传递给提供程序的 ExecMethodAsync 调用,而不是传递给先调用 GetObject 来验证对象路径的提供程序。 默认值为 FALSE。 使用 Bypass_GetObject 可以显著提高性能。

在使用 Bypass_GetObject 之前,请确保未执行以下任何操作:

  • 从你的类派生一个类。
  • 重写具有 Bypass_GetObject 限定符的方法。

不遵守这些预防措施可能会导致调用父类而不是子类的方法实现。 有关详细信息,请参阅“使用 Bypass_GetObject 限定符”。

CIM_Key

数据类型:CIM_BOOLEAN

适用于:属性

指示关联的属性是 CIM 中的键属性,但不是 WMI 中的键属性。

CIMType

数据类型:VT_BSTR

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

包含描述属性类型的文本。

ClassContext

数据类型:VT_BSTR

适用于:类

指示类具有与提供程序动态提供的详细信息关联的实例。

Deprecated

数据类型:CIM_BOOLEAN

适用于:属性、类

指示该属性已被另一个属性取代。

Display

适用于:类、属性

关联的类的 UUID。

Dynamic

数据类型:布尔值

适用于:类、属性

指示动态创建其实例的类。 此限定符的值必须设置为 TRUE。

DynProps

数据类型:布尔值

适用于:类、实例

指示实例包含动态属性提供程序提供的值。 默认值为 TRUE。

必须在此类实例上指定此限定符。 仅允许值 TRUE。

Fixed

数据类型:CIM_BOOLEAN

适用于:实例

指示此属性的值在实例的生存期内不能更改。

ID

数据类型:VT_I4

适用范围:属性、参数

自动生成 MOF 语句时,对属性或方法参数进行唯一标识和排序。

只有方法参数需要此限定符。 为方法创建参数时,类设计者应从第一个参数的 Id(0) 开始,并为每个连续参数使用每个连续整数。 如果无意中省略了 ID 限定符,MOF 编译器会自动生成 ID 限定符。

Implemented

数据类型:布尔值

适用于:方法

指示方法具有提供程序提供的实现。

InstanceContext

数据类型:VT_BSTR

适用于:实例

指示实例包含动态属性提供程序提供的值。

值作为 IWbemPropertyProvider::GetProperty 方法的参数传递给属性提供程序。

Locale

数据类型:VT_BSTR

适用于:类或实例

指定类或实例的来源的语言。 有关区域设置值的详细信息,请参阅区域设置代码

NamespaceSecuritySDDL

数据类型:字符串数组

适用于:命名空间实例

SDDL 格式指定命名空间的安全描述符。 有关详细信息,请参阅在创建命名空间时设置命名空间安全性。 SDDL 字符串由 WMI 处理以建立命名空间安全性,但不以字符串的形式存储。 如果未指定安全描述符,则使用默认安全性。 有关详细信息,请参阅设置命名空间安全描述符

Optional

数据类型:布尔值

适用于:参数

指示参数不是必需的,并且具有行为良好的默认值。

Privileges

数据类型:字符串数组

适用于:属性、方法

值集,用于告知客户端需要哪些权限才能创建实例、填充属性或执行方法。 默认值为 FALSE。

PropertyContext

数据类型:VT_BSTR

适用于:属性

指示实例属性包含动态属性提供程序提供的值。

必须在此类属性上指定此限定符。 值作为 IWbemPropertyProvider::GetProperty 的参数传递给属性提供程序。

Provider

数据类型:VT_BSTR

适用于:类

此限定符的值是提供类实例和刷新实例数据的动态提供程序的名称。 必须通过使用包含此名称的 Name 属性创建 __Win32Provider 类的实例,将此名称注册到 WMI。 如果在动态提供了其实例的类上指定此限定符,则还必须指定 Dynamic 限定符。

RequiresEncryption

数据类型:布尔值

适用于:命名空间实例

如果设置为 TRUE,则 RequiresEncryption 将标记某个命名空间,使客户端应用程序和脚本必须使用加密的身份验证进行连接。 在 C++ 中,身份验证级别必须设置为 RPC_C_AUTHN_LEVEL_PKT_PRIVACY。 在脚本或 Visual Basic 中,身份验证级别必须设置为 WbemAuthenticationLevelPktPrivacy。 有关详细信息,请参阅设置命名空间安全描述符。 该限定符在 MOF 中与 pragma 命名空间预处理器命令一起使用。

有关详细信息,请参阅使用 C++ 设置默认进程安全级别使用 VBScript 设置默认进程安全级别。 脚本身份验证级别在 WbemAuthenticationLevelEnum 中定义。

Singleton

数据类型:布尔值

适用于:类

指定一个只能有一个实例且不包含键属性的类。

仅允许值 TRUE(默认值)。

Static

数据类型:布尔值

适用于:方法

指示是否可以使用类定义或其实例来调用方法。

无法从实例调用该方法。

SubType

数据类型:VT_BSTR

适用于:属性

指示 CIM_DATETIME 类型的属性表示时间间隔而不是特定的时间。

若要将属性标识为间隔,此限定符的值必须为“interval”。 此限定符的所有其他值保留供将来使用。

UUID

数据类型:字符串

适用于:类

适用于类的通用唯一标识符。

ClassVersion

数据类型:字符串

适用于:类

类对象的版本号。 默认值为 NULL。 对类进行更改时,版本号会递增。

WritePrivileges

数据类型:字符串数组

适用于:属性

值集,指示哪些系统权限必须可用且已启用才能使写入操作成功。

备注

区域设置代码

区域设置代码的格式为“MS_<三位数语言 ID>”。 例如,英语区域设置为 MS_409。 下表列出了语言 ID。

语言 语言 ID(十六进制)
阿拉伯语 401
葡萄牙语(巴西) 416
中文(简体) 804
中文(繁体) 404
捷克语 405
丹麦语 406
荷兰语 413
英语(默认) 409
芬兰语 40b
法语 40c
德语 407
希腊语 408
希伯来语 40d
匈牙利语 40e
意大利语 410
日语 411
韩语 412
挪威语 414
波兰语 415
葡萄牙语(葡萄牙) 816
俄语 419
西班牙语 c0a
瑞典语 41D
土耳其语 41f

使用 Bypass_GetObject 限定符

在方法上使用 Bypass_GetObject 限定符可能生成混淆的结果。

以下示例定义 Shape 和 Circle 类。 请注意,Circle 类派生自 Shape 类。

class Shape
{
   string Name;
   uint32 DrawIt();  // - draws an irregular geometric shape
};

class Circle : Shape
{
   uint32 DrawIt();  // - draws a circle
};

以下 ExecMethod 调用使用名为“MyCircle”的 Circle 对象绘制圆。

ExecMethod("Shape.Name='MyCircle'","DrawIt");

在上述场景中,WMI 调用 GetObject;发现“Shape.Name='MyCircle'”是一个圆;执行 DrawIt 的 Circle 实现。 但是,如果在 DrawIt 上使用 Bypass_GetObject 限定符,则 WMI 不会调用 GetObject,也不会发现“Shape.Name='MyCircle'”是一个圆,并执行 DrawIt 的 Shape 实现,而不是 DrawIt 的 Circle 实现。

以下 ExecMethod 调用始终会调用 DrawIt 的正确实现。

ExecMethod("Circle.Name='MyCircle'","DrawIt");

要求

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

另请参阅

设置命名空间安全描述符

WMI 限定符

添加限定符