Como Conexão um provedor de SMS no Configuration Manager usando código gerenciado

Para se conectar a um Provedor de SMS, use WqlConnectionManager.Conexão. Depois de conectado, WqlConnectionManager.Conexão tem métodos para consultar, criar, excluir e, de outra forma, usar objetos WMI (Configuration Manager Windows Management Instrumentation).

Observação

WqlConnectionManager. Conexão é uma derivação específica do WMI de ConnectionManagerBase.

Se você estiver se conectando a um Provedor de SMS local, não fornece credenciais de usuário. Se você estiver se conectando a um Provedor de SMS remoto, não será necessário fornecer credenciais de usuário se o contexto atual do usuário/computador tiver permissões no Provedor de SMS remoto.

Se você não tiver privilégios de acesso no Provedor de SMS remoto ou se quiser usar uma conta de usuário diferente, deverá fornecer credenciais de usuário para uma conta de usuário que tenha privilégios de acesso.

WQLConnectionManager.Connection requer um objeto SmsNamedValuesDictionary. Isso pode ser usado para armazenar informações armazenadas em cache, como o nome do computador.

Ele é pré-preenchido com um número de valores que podem ser usados em seu aplicativo.

Valor Descrição.
ProviderLocation O local do provedor. Por exemplo,

\\<ComputerName > \ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName O computador provedor. Por exemplo, \ \ComputerName.
Connection O caminho da conexão. Por exemplo, \ \ComputerName\root\sms\site_XXX.
ConnectedSiteCode O código do site para o site do Configuration Manager ao que a conexão está conectada. Por exemplo, XXX.
ServerName O nome do computador, por exemplo, COMPUTERNAME.
SiteName O código do site do Configuration Manager. Por exemplo, Site Central.
ConnectedServerVersion Versão do ther para o servidor conectado. Por exemplo, 4.00.5830.0000
BuildNumber O número de com build de instalação do Configuration Manager. Por exemplo, 5830.

Observação

O objeto SmsNamedValuesDictionary não é as informações de qualificador de contexto passadas para o provedor. Para obter mais informações, consulte How to Add a Configuration Manager Context Qualifier by Using Managed Code.

Para se conectar ao Provedor de SMS

  1. Crie um SmsNamedValuesDictionaryObject.

  2. Crie uma instância da classe WqlConnectionManager e chame o método [Conexão] passando o nome do servidor e, se o nome do servidor for remoto, o nome de usuário e a senha.

  3. Use o objeto WqlConnectionManager para se conectar ao provedor.

Exemplo

O método de exemplo a seguir se conecta ao Provedor de SMS em um computador local ou remoto. Se for remoto, o método usará o nome de usuário fornecido e a servername senha para se conectar ao computador remoto. Se você quiser usar o contexto de usuário atual, para a conexão remota, altere o código para que ele não passe o nome de usuário e a senha. Se a conexão for bem-sucedida, um objeto WqlConnectionManager será retornado.

Para obter informações sobre como chamar o código de exemplo, consulte Calling Configuration Manager Code Snippets.

public WqlConnectionManager Connect(string serverName, string userName, string userPassword)  
{  
    try  
    {  
        SmsNamedValuesDictionary namedValues = new SmsNamedValuesDictionary();  
        WqlConnectionManager connection = new WqlConnectionManager(namedValues);  

        if (System.Net.Dns.GetHostName().ToUpper() == serverName.ToUpper())  
        {  
            // Connect to local computer.  
            connection.Connect(serverName);  
        }  
        else  
        {  
            // Connect to remote computer.  
            connection.Connect(serverName, userName, userPassword);  
        }  

        return connection;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to Connect. Error: " + e.Message);  
        return null;  
    }  
    catch (UnauthorizedAccessException e)  
    {  
        Console.WriteLine("Failed to authenticate. Error:" + e.Message);  
        return null;  
    }  
}  

Compilando o código

Namespaces

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Microsoft.ManagementConsole

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Microsoft.ManagementConsole

Programação robusta

As exceções do Configuration Manager que podem ser ativas são SmsConnectionException e SmsQueryException. Eles podem ser capturados juntamente com SmsException.

Segurança do .NET Framework

UnauthorizedAccessException é gerado quando as credenciais erradas são passadas para WqlConnectionManager.Conexão.

Confira também

Fundamentos do Provedor de SMS Como adicionar um qualificador de contexto do Configuration Manager usando código gerenciado
Visão geral de objetos