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
Crie um SmsNamedValuesDictionaryObject.
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.
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