标准 WMI 限定符
下面列出了特定于 WMI 的标准限定符。
Amendment
数据类型:布尔值
适用于:类
指示类包含已本地化的修正后限定符。 默认值为 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
适用于:类
指示类具有与提供程序动态提供的详细信息关联的实例。
Deprecated
数据类型:CIM_BOOLEAN
适用于:属性、类
指示该属性已被另一个属性取代。
Display
适用于:类、属性
关联的类的 UUID。
数据类型:布尔值
适用于:类、属性
指示动态创建其实例的类。 此限定符的值必须设置为 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 |