Qualificadores de Contexto do Configuration Manager

Objetos de contexto são usados, no Configuration Manager, para fornecer informações adicionais ao provedor de SMS. Normalmente, você usa qualificadores de contexto para fornecer ao provedor SMS informações contextuais, como o nome do aplicativo. Você pode usar qualificadores de contexto ao se conectar ao Provedor SMS e com objetos de Provedor SMS individuais.

Código gerenciado

Ao usar as bibliotecas de provedores SMS gerenciadas, use a propriedade ConnectionManagerBase.Context para especificar qualificadores de contexto. Para obter mais informações, consulte Como adicionar um qualificador de contexto do Configuration Manager usando código gerenciado.

VBScript

Ao usar o VBScript, você usa a interface SWBemNamedValue definida para especificar qualificadores de contexto como uma coleção de objetos de valor nomeados. Para obter mais informações, consulte Como adicionar um qualificador de contexto do Configuration Manager usando o WMI.

Qualificadores de contexto

A tabela a seguir contém os qualificadores de contexto (valores nomeados) usados pelo provedor de SMS. A maioria dos qualificadores, como SessionHandle, são usados apenas com áreas funcionais específicas do provedor de SMS; mas LocaleID, MachineName, e ApplicationName são para o uso do seu aplicativo.

Qualificador de contexto Descrição
ApplicationName Identifica o aplicativo que fez a chamada.
ContextHandle Identifica onde o provedor SMS armazenou seus qualificadores de contexto armazenados em cache.
InstanceCount Limita o número de instâncias retornadas de ExecQuery e CreateInstanceEnum.
LimitToCollectionIDs Limita os resultados de uma consulta de recursos aos membros das coleções nomeadas.
LocaleID Identifica a página de código a ser usada.
MachineName Identifica o computador que está executando o aplicativo.
QueryQualifiers Retorna os sinalizadores de bit SecurityVerbs quando você executa consultas em objetos protegidos.
SessionHandle Identifica a cópia do seu aplicativo do arquivo de controle do site para o Configuration Manager.

ApplicationName

O ApplicationName qualificador de contexto é um valor de cadeia de caracteres que identifica o nome do aplicativo que fez a chamada. Você deve especificar ApplicationName para seu aplicativo porque ele é usado para auditoria. Se você não fornecer o nome do aplicativo, o valor Desconhecido será usado. Você deve fornecer o ApplicationName valor ao chamar qualquer um dos métodos de mensagem raise status, como SMS_StatusMessage::RaiseErrorStatusMsg, ou a chamada falhará.

ContextHandle

O ContextHandle qualificador de contexto é um valor de cadeia de caracteres que identifica onde o provedor SMS armazenou seus qualificadores de contexto armazenados em cache. O provedor de SMS gerenciado gerencia a transferência de dados. Ao usar o VBScript, você pode usar as etapas a seguir para reduzir a quantidade de dados que são passados pela rede.

  1. Crie o conjunto de valores SWBemNamedValue .

  2. Adicione seus qualificadores ao objeto de contexto. Para obter mais informações, consulte Como adicionar um qualificador de contexto do Configuration Manager usando o WMI.

  3. Chame o método GetContextHandle para armazenar em cache seus qualificadores no servidor. O provedor SMS armazena em cache o objeto de contexto que você passa como um parâmetro de ExecMethod ao chamar GetContextHandle.

  4. Remova todos os qualificadores do objeto de contexto.

  5. Adicione o qualificador e o ContextHandle valor ao objeto de contexto.

  6. Passe o objeto context em todas as chamadas para IWbemServices.

    Você deve chamar o método ClearContextHandle para remover seus qualificadores armazenados em cache antes de sair do aplicativo. Você pode criar quantos ContextHandle valores desejar, com cada um fornecendo informações variadas para seu aplicativo.

Observação

Depois de armazenar em cache seus qualificadores de contexto, você pode substituir seus valores armazenados em cache adicionando os mesmos qualificadores de contexto, com valores diferentes, ao seu objeto de contexto.

Contagem de Instâncias

O InstanceCount qualificador de contexto é um valor inteiro usado para limitar o número de instâncias retornadas dos métodos ExecQuery e CreateInstanceEnum . Você define InstanceCount igual ao número máximo de instâncias que deseja retornar da consulta ou do enumerador. Por exemplo, definir InstanceCount como 10 retorna, no máximo, 10 instâncias.

LimitToCollectionIDs

O LimitToCollectionIDs qualificador de contexto é uma matriz de cadeia de caracteres que contém uma lista de CollectionID valores. Atualmente, você pode especificar apenas um CollectionID valor. Você usa esse qualificador para limitar os resultados de uma consulta de recurso aos membros da coleção nomeada. Uma consulta de recursos é uma consulta que inclui classes derivadas de SMS_Resource ou SMS_Group.

O usuário deve ter permissões de recurso de leitura de instância para a coleção à qual o recurso pertence. Você deve usar a limitação de coleção quando o usuário não tiver direitos de recurso de leitura de classe para coleções; Caso contrário, nenhum dado será retornado. Para SMS 2.0 com Service Pack 1 e versões posteriores, essa restrição se aplica somente a classes derivadas de SMS_Group.

Você não pode usar esse qualificador ao consultar coleções.

LocaleID

O LocaleID qualificador de contexto é um valor de cadeia de caracteres que aceita um valor hexadecimal ou um valor decimal no formato MS\x, em que x é a ID de localidade. Por exemplo, você pode inserir o valor em inglês LocaleID como ms\0x0409 ou ms\1033. O provedor de SMS só aceita LocaleID valores que usam o formato da Microsoft. Você pode encontrar uma lista de IDs de locale IDslocalidade atribuídas pela Microsoft.

Se você precisar da localidade para telefones fora dos EUA existentes, você pode obtê-lo na propriedade Classe LocaleIDWMI do SMS_Identification Server.

MachineName

O MachineName qualificador de contexto é um valor de cadeia de caracteres que identifica qual computador está executando o aplicativo. Você deve especificar MachineName para seu aplicativo porque ele é usado para auditoria. Se você não fornecer o nome do computador, o valor Desconhecido será usado. Você deve fornecer o valor MachineName ao chamar qualquer um dos métodos de mensagem raise status, como SMS_StatusMessage::RaiseRawStatusMsg, ou a chamada falhará.

QueryQualifiers

O QueryQualifiers qualificador de contexto é um valor booliano usado para retornar os sinalizadores de bit SecurityVerbs ao executar consultas em objetos protegidos, como SMS_Site ou SMS_Package. Observe que usar QueryQualifiers ao consultar objetos não seguros gera um erro. Por padrão, os sinalizadores SecurityVerbs não são retornados com a consulta. Você deve criar esse qualificador e definir seu valor como true se quiser que os sinalizadores sejam retornados. Não criar QueryQualifiers é o mesmo que definir seu valor como false.

SessionHandle

O SessionHandle qualificador de contexto é um valor de cadeia de caracteres retornado como um parâmetro de saída do método GetSessionHandle. A cadeia de caracteres é um GUID exclusivo que identifica a cópia do seu aplicativo do arquivo de controle do site para o Configuration Manager. Você deve usar esse mecanismo para modificar o arquivo de controle do site e reduzir as colisões de dados com outros aplicativos que estão modificando o arquivo de controle do site ao mesmo tempo. Se você não fornecer um SessionHandle valor, seu aplicativo modificará a cópia global do arquivo de controle do site, que não tem proteção contra aplicativos que sobrescrevem os dados uns dos outros.

Observação

Se você estiver usando o provedor de SMS gerenciado, o gerenciamento de sessão de arquivo de controle do site será gerenciado para você.

Confira também

Como adicionar um qualificador de contexto do Configuration Manager usando código gerenciadoComo adicionar um qualificador de contexto do Configuration Manager usandoo WMI Conceitos básicos do provedor SMS