Como se conectar a um provedor de SMS em Configuration Manager usando código gerenciado

Para se conectar a um provedor de SMS, use WqlConnectionManager.Connect. Depois de conectado, o WqlConnectionManager.Connect tem métodos para consultar, criar, excluir e usar objetos WMI (Instrumentação de Gerenciamento do Windows) Configuration Manager.

Observação

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

Se você estiver se conectando a um provedor de SMS local, não fornecerá credenciais de usuário. Se você estiver se conectando a um provedor de SMS remoto, não precisará 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 uma série 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 do provedor. Por exemplo, \\ComputerName.
Connection O caminho da conexão. Por exemplo, \\ComputerName\root\sms\site_XXX.
ConnectedSiteCode O código do site do site Configuration Manager ao qual a conexão está conectada. Por exemplo, XXX.
ServerName O nome do computador, por exemplo, COMPUTERNAME.
Sitename O código do site Configuration Manager. Por exemplo, Site Central.
ConnectedServerVersion A versão do servidor conectado. Por exemplo, 4.00.5830.0000
BuildNumber O Configuration Manager número de build de instalação. Por exemplo, 5830.

Observação

O objeto SmsNamedValuesDictionary não é as informações de qualificação de contexto passadas para o provedor. Para obter mais informações, consulte Como adicionar um qualificador de contexto de Configuration Manager usando código gerenciado.

Para se conectar ao provedor de SMS

  1. Crie um SmsNamedValuesDictionaryObject.

  2. Crie uma instância da classe WqlConnectionManager e chame o método [Connect] 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 servername for remoto, o método usará o nome de usuário e a senha fornecidos para se conectar ao computador remoto. Se você quiser usar o contexto atual do usuário, 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 Chamando Configuration Manager Snippets de Código.

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 Configuration Manager que podem ser geradas são SmsConnectionException e SmsQueryException. Elas podem ser capturadas junto com SmsException.

Segurança do .NET Framework

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

Confira também

Os fundamentos do Provedor de SMScomo adicionar um qualificador de contexto de Configuration Manager usando código gerenciado
Visão geral de objetos