Come connettersi a un provider SMS in Configuration Manager tramite codice gestito

Per connettersi a un provider SMS, usare WqlConnectionManager.Connect. Dopo la connessione, WqlConnectionManager.Connect dispone di metodi per eseguire query, creare, eliminare e usare in altro modo gli oggetti Strumentazione gestione Windows (WMI) di Configuration Manager.

Nota

WqlConnectionManager.Connect è una derivazione specifica di WMI di ConnectionManagerBase.

Se ti connetti a un provider SMS locale, non fornisci le credenziali utente. Se ci si connette a un provider di SMS remoto, non è necessario specificare le credenziali utente se il contesto utente/computer corrente dispone delle autorizzazioni per il provider di SMS remoto.

Se non si dispone dei privilegi di accesso sul provider SMS remoto o se si desidera utilizzare un account utente diverso, è necessario fornire le credenziali utente per un account utente che dispone dei privilegi di accesso.

WQLConnectionManager.Connection richiede un oggetto SmsNamedValuesDictionary . Può essere utilizzato per memorizzare informazioni memorizzate nella cache, come il nome del computer.

È prepopolato con molti valori che possono essere usati nell'applicazione.

Valore Descrizione.
ProviderLocation Posizione del provider. Ad esempio,

\\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName Il computer del provider. Ad esempio, \\NomeComputer.
Connessione Percorso di connessione. Ad esempio, \\NomeComputer\root\sms\site_XXX.
ConnectedSiteCode Codice del sito di Configuration Manager a cui è connessa la connessione. Ad esempio, XXX.
NomeServer Il nome del computer, ad esempio NOMECOMPUTER.
Nome sito Il codice del sito di Configuration Manager. Ad esempio, Sito centrale.
ConnectedServerVersion Versione del server connesso. Ad esempio, 4.00.5830.0000
BuildNumber Numero di build dell'installazione di Configuration Manager. Ad esempio, 5830.

Nota

L'oggetto SmsNamedValuesDictionary non è l'informazione del qualificatore di contesto passata al provider. Per altre informazioni, vedere Come aggiungere un qualificatore di contesto di Configuration Manager tramite codice gestito.

Per connettersi al provider SMS

  1. Creare un oggetto SmsNamedValuesDictionaryObject.

  2. Creare un'istanza della classe WqlConnectionManager e chiamare il metodo [Connect] passando il nome del server e, se il nome del server è remoto, il nome utente e la password.

  3. Usare l'oggetto WqlConnectionManager per connettersi al provider.

Esempio

Il metodo di esempio seguente si connette al provider SMS in un computer locale o remoto. Se servername è remoto, il metodo utilizza il nome utente e la password forniti per connettersi al computer remoto. Se vuoi usare il contesto utente corrente, per la connessione remota modifica il codice in modo che non passi il nome utente e la password. Se la connessione ha esito positivo, viene restituito un oggetto WqlConnectionManager .

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice di Configuration Manager.

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;
    }
}

Compilazione del codice

Spazi dei nomi

Sistema

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagementManagementProvider

Microsoft.ConfigurationManagementManagementProvider.WqlQueryEngine

Microsoft.ManagementConsole

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Microsoft.ManagementConsole

Programmazione efficiente

Le eccezioni di Configuration Manager che possono essere generate sono SmsConnectionException e SmsQueryException. Questi possono essere intercettati insieme a SmsException.

Sicurezza di .NET Framework

UnauthorizedAccessException viene generata quando vengono passate le credenziali errate a WqlConnectionManager.Connect.

Vedere anche

Nozioni fondamentali sul provider SMSCome aggiungere un qualificatore di contesto di Configuration Manager using Managed CodeObjects Panoramica