Compartilhar via


How to Connect to an SMS Provider in Configuration Manager by Using Managed Code (Como Ligar a um Fornecedor de SMS no Configuration Manager através do Código Gerido)

Para ligar a um Fornecedor de SMS, utilize WqlConnectionManager.Connect. Após a ligação, o WqlConnectionManager.Connect tem métodos para consultar, criar, eliminar e, de outra forma, utilizar Configuration Manager objetos do Windows Management Instrumentation (WMI).

Observação

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

Se estiver a ligar a um Fornecedor de SMS local, não fornecerá credenciais de utilizador. Se estiver a ligar a um Fornecedor remoto de SMS, não precisa de fornecer credenciais de utilizador se o contexto de utilizador/computador atual tiver permissões no Fornecedor remoto de SMS.

Se não tiver privilégios de acesso no Fornecedor de SMS remoto ou se quiser utilizar uma conta de utilizador diferente, tem de fornecer credenciais de utilizador para uma conta de utilizador que tenha privilégios de acesso.

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

É pré-preenchido com muitos valores que podem ser utilizados na sua aplicação.

Valor Descrição.
ProviderLocation A localização do fornecedor. Por exemplo,

\\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName O computador do fornecedor. Por exemplo, \\ComputerName.
Conexão O caminho da ligação. Por exemplo, \\ComputerName\root\sms\site_XXX.
ConnectedSiteCode O código do site do Configuration Manager site ao qual a ligação está ligada. Por exemplo, XXX.
ServerName O nome do computador, por exemplo, COMPUTERNAME.
Nome do Site O Configuration Manager código do site. Por exemplo, Site Central.
ConnectedServerVersion A versão do servidor ligado. Por exemplo, 4.00.5830.0000
BuildNumber O Configuration Manager número de compilação da instalação. Por exemplo, 5830.

Observação

O objeto SmsNamedValuesDictionary não é a informação de qualificação de contexto transmitida ao fornecedor. Para obter mais informações, veja How to Add a Configuration Manager Context Qualifier by Using Managed Code (Como Adicionar um Qualificador de Contexto Configuration Manager Através do Código Gerido).

Para ligar ao Fornecedor de SMS

  1. Crie um SmsNamedValuesDictionaryObject.

  2. Crie uma instância da classe WqlConnectionManager e chame o método [Connect] ao transmitir o nome do servidor e, se o nome do servidor for remoto, o nome de utilizador e a palavra-passe.

  3. Utilize o objeto WqlConnectionManager para ligar ao fornecedor.

Exemplo

O seguinte método de exemplo liga-se ao Fornecedor de SMS num computador local ou remoto. Se servername for remoto, o método utiliza o nome de utilizador e a palavra-passe fornecidos para ligar ao computador remoto. Se quiser utilizar o contexto de utilizador atual, para a ligação remota, altere o código para que não transmita o nome de utilizador e a palavra-passe. Se a ligação for bem-sucedida, é devolvido um objeto WqlConnectionManager .

Para obter informações sobre como chamar o código de exemplo, veja Chamar Configuration Manager Fragmentos 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 Configuration Manager exceções que podem ser geradas são SmsConnectionException e SmsQueryException. Estes podem ser capturados em conjunto com SmsException.

Segurança do .NET Framework

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

Confira também

Noções básicas do Fornecedor de SMSComo Adicionar um Qualificador de Contexto Configuration Manager ComObjetos de Código Gerido