下表列出了特定于 WMI 的标准限定符。
修正案
数据类型: 布尔值
适用于:类
指示类包含已本地化的修订限定符。 默认值为 TRUE 。
可以转换关联的类。 若要访问翻译的版本,请使用区域设置标识符构造命名空间名称。
Bypass_GetObject
数据类型: 布尔值
适用于:方法
指示方法调用应直接传递给提供程序的 ExecMethodAsync 调用,而不是提供程序首先调用 GetObject 来验证对象路径。 默认值为 false 。 使用 Bypass_GetObject 可以显著提高性能。
在使用 Bypass_GetObject之前,请确保未执行以下两项作:
- 从类派生类。
- 重写具有 Bypass_GetObject 限定符的方法。
如果不遵循这些预防措施,可能会导致调用父类的方法实现,而不是子类。 有关详细信息,请参阅使用Bypass_GetObject限定符。
CIM_Key
数据类型: CIM_BOOLEAN
适用于:属性
指示关联的属性是 CIM 中的键属性,但不在 WMI 中。
数据类型: VT_BSTR
适用于:属性、方法、参数
包含描述属性类型的文本。
ClassContext
数据类型: VT_BSTR
适用于:类
指示类具有与提供程序动态提供的详细信息关联的实例。
荒废的
数据类型: CIM_BOOLEAN
适用于:属性、类
指示属性已被另一个属性取代。
显示
适用于:类、属性
关联的类的 UUID 。
数据类型: 布尔值
适用于:类、属性
指示其实例是动态创建的类。 此限定符的值必须设置为 TRUE。
DynProps
数据类型: 布尔值
适用于:类、实例
指示实例包含动态属性提供程序提供的值。 默认值为 TRUE 。
必须在此类实例上指定此限定符。 仅允许值为 TRUE 。
固定
数据类型: CIM_BOOLEAN
适用于:实例
指示此属性的值在实例的生存期内无法更改。
ID
数据类型: VT_I4
适用于:属性、参数
在自动生成 MOF 语句时,唯一标识和排序属性或方法参数。
仅方法参数需要此限定符。 为方法创建参数时,类设计器应从第一个参数的 Id(0)开始,并将每个连续整数用于每个连续参数。 如果无意中省略 ID 限定符,MOF 编译器会自动生成 ID 限定符。
实现
数据类型: 布尔值
适用于:方法
指示方法具有提供程序提供的实现。
InstanceContext
数据类型: VT_BSTR
适用于:实例
指示实例包含动态属性提供程序提供的值。
该值作为参数传递给属性提供程序,作为 IWbemPropertyProvider::GetProperty 方法的参数。
区域设置
数据类型: VT_BSTR
适用于:类或实例
指定类或实例的源语言。 有关区域设置值的详细信息,请参阅 区域设置代码。
NamespaceSecuritySDDL
数据类型: 字符串数组
适用于:命名空间实例
以 SDDL 格式指定命名空间的安全描述符。 有关详细信息,请参阅 创建命名空间时设置命名空间安全性。 SDDL 字符串由 WMI 进行处理,以建立命名空间安全性,但不存储为字符串。 如果未指定安全描述符,则使用默认安全性。 有关详细信息,请参阅 设置命名空间安全描述符。
自选
数据类型: 布尔值
适用于:参数
指示参数不是必需的,并且具有行为良好的默认值。
特权
数据类型: 字符串数组
适用于:属性、方法
用于通知客户端创建实例、填写属性或执行方法需要哪些权限的值集。 默认值为 false 。
PropertyContext
数据类型: VT_BSTR
适用于:属性
指示实例属性包含动态属性提供程序提供的值。
必须在此类属性上指定此限定符。 该值作为参数传递给属性提供程序 ,作为 IWbemPropertyProvider::GetProperty 的参数。
提供程序
数据类型: VT_BSTR
适用于:类
此限定符的值是提供类实例和刷新实例数据的动态提供程序的名称。 必须使用包含此名称的 Name 属性创建__Win32Provider类的实例,从而向 WMI 注册此名称。 在动态提供实例的类上指定此限定符时,还必须指定 动态 限定符。
RequiresEncryption
数据类型: 布尔值
适用于:命名空间实例
如果设置为 TRUE,RequiresEncryption 会标记一个命名空间,以便客户端应用程序和脚本必须与加密身份验证连接。 身份验证级别必须设置为 C++ 中的RPC_C_AUTHN_LEVEL_PKT_PRIVACY。 在脚本编写或 Visual Basic 中,身份验证级别必须设置为 WbemAuthenticationLevelPktPrivacy。 有关详细信息,请参阅 设置命名空间安全描述符。 限定符用于 MOF 和杂注命名空间预处理器命令。
有关详细信息,请参阅 使用 C++ 设置默认进程安全级别 ,或使用 VBScript 设置默认进程安全级别。 脚本身份验证级别在 WbemAuthenticationLevelEnum 中定义。
单一实例
数据类型: 布尔值
适用于:类
指定一个只能有一个实例且不包含键属性的类。
仅允许值为 TRUE (默认值)。
静态的
数据类型: 布尔值
适用于:方法
指示是否可以使用类定义或其实例调用方法。
无法从实例调用该方法。
亚
数据类型: VT_BSTR
适用于:属性
指示 CIM_DATETIME 类型的属性表示时间间隔而不是特定时间。
若要将属性标识为间隔,此限定符的值必须为“interval”。 此限定符的所有其他值都保留供将来使用。
UUID
数据类型:字符串
适用于:类
应用于类的通用唯一标识符。
ClassVersion
数据类型:字符串
适用于:类
类对象的版本号。 默认值为 NULL。 对类进行更改时,版本号会递增。
WritePrivileges
数据类型: 字符串数组
适用于:属性
一组值,该值指示哪些系统特权必须可用,并启用成功写入作。
注解
区域设置代码
区域设置代码的格式为“MS_<Three 数字语言 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 的圆形实现。
对 ExecMethod 的以下调用始终调用 DrawIt 的正确实现。
ExecMethod("Circle.Name='MyCircle'","DrawIt");
要求
要求 | 价值 |
---|---|
支持的最低客户端 |
Windows Vista |
支持的最低服务器 |
Windows Server 2008 |