Поделиться через


квалификаторы контекста Configuration Manager

Объекты контекста используются в Configuration Manager для предоставления дополнительных сведений поставщику SMS. Как правило, квалификаторы контекста используются для предоставления поставщику SMS контекстной информации, например имени приложения. Квалификаторы контекста можно использовать при подключении к поставщику SMS и с отдельными объектами поставщика SMS.

Управляемый код

При использовании управляемых библиотек поставщика SMS используйте свойство ConnectionManagerBase.Context , чтобы указать квалификаторы контекста. Дополнительные сведения см. в статье Добавление квалификатора контекста Configuration Manager с помощью управляемого кода.

VBScript

При использовании VBScript используется набор интерфейсов SWBemNamedValue , чтобы указать квалификаторы контекста в качестве коллекции именованных объектов значений. Дополнительные сведения см. в разделе Добавление квалификатора контекста Configuration Manager с помощью WMI.

Квалификаторы контекста

В следующей таблице содержатся квалификаторы контекста (именованные значения), используемые поставщиком SMS. Большинство квалификаторов, таких как SessionHandle, используются только с определенными функциональными областями поставщика SMS, но LocaleID, MachineNameи ApplicationName предназначены для использования приложения.

Квалификатор контекста Описание
ApplicationName Идентифицирует приложение, которое произвело вызов.
ContextHandle Определяет, где поставщик SMS сохранил кэшированные квалификаторы контекста.
InstanceCount Ограничивает количество экземпляров, возвращаемых execQuery и CreateInstanceEnum.
LimitToCollectionIDs Ограничивает результаты запроса ресурсов членами именованных коллекций.
LocaleID Определяет кодовую страницу для использования.
MachineName Определяет, на каком компьютере выполняется приложение.
QueryQualifiers Возвращает битовые флаги SecurityVerbs при выполнении запросов к защищенным объектам.
SessionHandle Идентифицирует копию файла элемента управления сайтом приложения для Configuration Manager.

ApplicationName

Квалификатор ApplicationName контекста — это строковое значение, идентифицирующее имя приложения, которое произвело вызов. Необходимо указать ApplicationName для приложения, так как оно используется для аудита. Если не указать имя приложения, используется значение Unknown. Значение необходимо указать ApplicationName при вызове любого из методов сообщения о состоянии вызова, например SMS_StatusMessage::RaiseErrorStatusMsg, в противном случае вызов завершится ошибкой.

ContextHandle

Квалификатор ContextHandle контекста — это строковое значение, указывающее, где поставщик SMS сохранил кэшированные квалификаторы контекста. Управляемый поставщик SMS управляет передачей данных. При использовании VBScript можно выполнить следующие действия, чтобы уменьшить объем данных, передаваемых по сети.

  1. Создайте набор значений SWBemNamedValue .

  2. Добавьте квалификаторы в объект контекста. Дополнительные сведения см. в разделе Добавление квалификатора контекста Configuration Manager с помощью WMI.

  3. Вызовите метод GetContextHandle , чтобы кэшировать квалификаторы на сервере. Поставщик SMS кэширует объект контекста, который передается в качестве параметра ExecMethod при вызове Метода GetContextHandle.

  4. Удалите все квалификаторы из объекта контекста.

  5. Добавьте квалификатор ContextHandle и значение в объект контекста.

  6. Передайте объект контекста во всех вызовах IWbemServices.

    Перед выходом из приложения необходимо вызвать метод ClearContextHandle , чтобы удалить кэшированные квалификаторы. Вы можете создать любое количество ContextHandle значений, каждое из которых предоставляет различные сведения для приложения.

Примечание.

После кэширования квалификаторов контекста можно переопределить кэшированные значения, добавив те же квалификаторы контекста с разными значениями в объект контекста.

InstanceCount

Квалификатор InstanceCount контекста — это целочисленное значение, которое используется для ограничения числа экземпляров, возвращаемых методами ExecQuery и CreateInstanceEnum . Задается InstanceCount максимальное число экземпляров, возвращаемых запросом или перечислителем. Например, при установке значения InstanceCount 10 возвращается не более 10 экземпляров.

LimitToCollectionIDs

Квалификатор LimitToCollectionIDs контекста — это массив строк, содержащий список значений CollectionID . В настоящее время можно указать только одно CollectionID значение. Этот квалификатор используется для ограничения результатов запроса ресурса членами именованной коллекции. Запрос к ресурсу — это запрос, включающий классы, производные от SMS_Resource или SMS_Group.

Пользователь должен иметь разрешения на чтение ресурса экземпляра для коллекции, к которой принадлежит ресурс. Необходимо использовать ограничение коллекции, если у пользователя нет прав на доступ к ресурсам класса для коллекций; В противном случае данные не возвращаются. Для SMS 2.0 с пакетом обновления 1 (SP1) и более поздних версий это ограничение применяется только к классам, производным от SMS_Group.

Этот квалификатор нельзя использовать при запросе коллекций.

LocaleID

Квалификатор LocaleID контекста — это строковое значение, которое принимает шестнадцатеричное или десятичное значение в форме MS\x, где x — это идентификатор языкового стандарта. Например, можно ввести значение на английском языке LocaleID ms\0x0409 или ms\1033. Поставщик SMS принимает LocaleID только значения, использующие формат Майкрософт. Список можно найти в списке языковыхlocale IDs стандартов, назначенных Майкрософт.

Если вам нужен языковой стандарт для не сша установок, его можно получить из свойства класса LocaleIDWMI сервера SMS_Identification.

Machinename

Квалификатор MachineName контекста — это строковое значение, указывающее, на каком компьютере выполняется приложение. Необходимо указать MachineName для приложения, так как оно используется для аудита. Если не указать имя компьютера, используется значение Unknown. При вызове любого из методов сообщения о состоянии вызова, например SMS_StatusMessage::RaiseRawStatusMsg, необходимо указать значение MachineName, в противном случае вызов завершится ошибкой.

QueryQualifiers

Квалификатор QueryQualifiers контекста — это логическое значение, которое используется для возврата битовых флагов SecurityVerbs при выполнении запросов к защищенным объектам, таким как SMS_Site или SMS_Package. Обратите внимание, что использование QueryQualifiers при запросе незащищенных объектов приводит к ошибке. По умолчанию флаги SecurityVerbs не возвращаются с запросом. Необходимо создать этот квалификатор и присвоить ей значение , true если вы хотите вернуть флаги. Не создавать QueryQualifiers — это то же самое, что задать для параметра значение false.

SessionHandle

Квалификатор SessionHandle контекста — это строковое значение, возвращаемое в качестве параметра out метода GetSessionHandle. Строка представляет собой уникальный идентификатор GUID, который определяет копию файла элемента управления сайтом для Configuration Manager. Этот механизм следует использовать для изменения файла элемента управления сайтом и уменьшения конфликтов данных с другими приложениями, которые одновременно изменяют файл элемента управления сайтом. Если не указать значение, приложение изменяет глобальную копию файла элемента управления сайтом SessionHandle , которая не имеет защиты от приложений, перезаписывая данные друг друга.

Примечание.

Если вы используете управляемый поставщик SMS, управление сеансами управления сайтом осуществляется за вас.

См. также

Добавление квалификатора контекста Configuration Manager с помощью управляемого кода
Добавление квалификатора контекста Configuration Manager с помощью WMI
Основы поставщика SMS