Configuration Manager上下文限定符

在 Configuration Manager 中使用上下文对象向 SMS 提供程序提供其他信息。 通常,使用上下文限定符为 SMS 提供程序提供上下文信息,例如应用程序的名称。 连接到 SMS 提供程序和单个 SMS 提供程序对象时,可以使用上下文限定符。

托管代码

使用托管 SMS 提供程序库时,可以使用 ConnectionManagerBase.Context 属性指定上下文限定符。 有关详细信息,请参阅如何使用托管代码添加Configuration Manager上下文限定符

VBScript

使用 VBScript 时,可以使用 SWBemNamedValue 接口集将上下文限定符指定为命名值对象的集合。 有关详细信息,请参阅如何使用 WMI 添加Configuration Manager上下文限定符

上下文限定符

下表包含由 SMS 提供程序使用的上下文限定符 (命名值) 。 大多数限定符(如 SessionHandle)仅用于 SMS 提供程序的特定功能区域;但 LocaleIDMachineNameApplicationName 供应用程序使用。

上下文限定符 说明
ApplicationName 标识发出调用的应用程序。
ContextHandle 标识 SMS 提供程序存储缓存的上下文限定符的位置。
InstanceCount 限制从 ExecQueryCreateInstanceEnum 返回的实例数。
LimitToCollectionIDs 将资源查询的结果限制为命名集合的成员。
LocaleID 标识要使用的代码页。
MachineName 标识运行应用程序的计算机。
QueryQualifiers 返回针对安全对象执行查询时的 SecurityVerbs 位标志。
SessionHandle 标识要Configuration Manager的站点控制文件的应用程序副本。

ApplicationName

上下文 ApplicationName 限定符是一个字符串值,用于标识调用的应用程序的名称。 应为应用程序指定 ApplicationName ,因为它用于审核。 如果未提供应用程序的名称,则使用“未知”值。 调用任何 raise 状态消息方法(如 SMS_StatusMessage::RaiseErrorStatusMsg)时,必须提供ApplicationName该值,否则调用将失败。

ContextHandle

上下文 ContextHandle 限定符是一个字符串值,用于标识 SMS 提供程序存储缓存的上下文限定符的位置。 托管 SMS 提供程序管理数据传输。 使用 VBScript 时,可以使用以下步骤减少通过网络传递的数据量。

  1. 创建 SWBemNamedValue 值集。

  2. 将限定符添加到上下文对象。 有关详细信息,请参阅如何使用 WMI 添加Configuration Manager上下文限定符

  3. 调用 GetContextHandle 方法以在服务器上缓存限定符。 调用 GetContextHandle 时,SMS 提供程序将缓存作为 ExecMethod 参数传递的上下文对象。

  4. 从上下文对象中删除所有限定符。

  5. ContextHandle 限定符和值添加到上下文对象。

  6. 在对 IWbemServices 的所有调用中传递上下文对象。

    在退出应用程序之前,必须调用 ClearContextHandle 方法来删除缓存的限定符。 可以根据需要创建任意数量的 ContextHandle 值,每个值都为应用程序提供不同的信息。

注意

缓存上下文限定符后,可以通过向上下文对象添加具有不同值的相同上下文限定符来替代缓存的值。

InstanceCount

上下文 InstanceCount 限定符是一个整数值,用于限制从 ExecQueryCreateInstanceEnum 方法返回的实例数。 设置 InstanceCount 等于要从查询或枚举器返回的最大实例数。 例如,设置为 InstanceCount 10 最多返回 10 个实例。

LimitToCollectionIDs

上下文 LimitToCollectionIDs 限定符是包含值列表的 CollectionID 字符串数组。 目前,只能指定一个 CollectionID 值。 使用此限定符可将资源查询的结果限制为命名集合的成员。 资源查询是包含派生自 SMS_Resource 或 SMS_Group 的类 查询。

用户必须具有资源所属集合的实例读取资源权限。 当用户没有集合的类读取资源权限时,必须使用集合限制;否则,不返回任何数据。 对于包含 Service Pack 1 及更高版本的 SMS 2.0,此限制仅适用于派生自 SMS_Group 的类。

查询集合时不能使用此限定符。

LocaleID

上下文 LocaleID 限定符是一个字符串值,它接受 MS\x 形式的十六进制值或十进制值,其中 x 是区域设置 ID。 例如,可以将英语 LocaleID 值输入为 ms\0x0409 或 ms\1033。 SMS 提供程序仅接受LocaleID使用 Microsoft 格式的值。 可以在 Microsoft 分配的区域设置 ID 中找到的列表locale IDs

如果需要非美国区域设置。安装,可以从 SMS_Identification 服务器 WMI 类LocaleID 属性获取它。

MachineName

上下文 MachineName 限定符是一个字符串值,用于标识运行应用程序的计算机。 应为应用程序指定 MachineName ,因为它用于审核。 如果未提供计算机名称,则使用“未知”值。 调用任何引发状态消息方法(如 SMS_StatusMessage::RaiseRawStatusMsg)时,必须提供 MachineName 值,否则调用将失败。

QueryQualifiers

上下文 QueryQualifiers 限定符是一个布尔值,用于在对安全对象(如 SMS_SiteSMS_Package)执行查询时返回 SecurityVerbs 位标志。 请注意,在查询不安全的对象时使用 QueryQualifiers 会生成错误。 默认情况下,不会随查询一起返回 SecurityVerbs 标志。 如果希望返回标志,则必须创建此限定符并将其值设置为 true 。 不创建 QueryQualifiers 与将其值设置为 false相同。

SessionHandle

上下文 SessionHandle 限定符是作为 GetSessionHandle 方法的 out 参数返回的字符串值。 字符串是一个唯一 GUID,用于标识要Configuration Manager的站点控制文件的应用程序副本。 应使用此机制修改站点控制文件,并减少与同时修改站点控制文件的其他应用程序的数据冲突。 如果未提供 SessionHandle 值,则应用程序将修改站点控制文件的全局副本,该副本无法保护应用程序覆盖彼此的数据。

注意

如果使用的是托管短信提供程序,则会为你管理站点控制文件会话管理。

另请参阅

如何使用托管代码添加Configuration Manager上下文限定符
如何使用 WMI 添加Configuration Manager上下文限定符
SMS 提供程序基础知识