Condividi tramite


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 in altro modo usare Configuration Manager oggetti WMI (Windows Management Instrumentation).

Nota

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

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

Se non si dispone di privilegi di accesso nel provider SMS remoto o se si vuole usare un account utente diverso, è necessario specificare le credenziali utente per un account utente con privilegi di accesso.

WQLConnectionManager.Connection richiede un oggetto SmsNamedValuesDictionary . Può essere usato per archiviare informazioni memorizzate nella cache, ad esempio il nome del computer.

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

Valore Descrizione.
ProviderLocation Percorso del provider. Ad esempio,

\\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName Computer del provider. Ad esempio, \\ComputerName.
Connessione Percorso di connessione. Ad esempio, \\NomeComputer\root\sms\site_XXX.
ConnectedSiteCode Codice del sito per il sito Configuration Manager a cui è connessa la connessione. Ad esempio, XXX.
NomeServer Nome del computer, ad esempio COMPUTERNAME.
Sitename Codice del sito Configuration Manager. Ad esempio, Sito centrale.
ConnectedServerVersion Versione per il server connesso. Ad esempio, 4.00.5830.0000
Buildnumber Numero di build di installazione Configuration Manager. Ad esempio, 5830.

Nota

L'oggetto SmsNamedValuesDictionary non è le informazioni sul qualificatore di contesto passate al provider. Per altre informazioni, vedere Come aggiungere un qualificatore di contesto Configuration Manager usando 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. Utilizzare 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 usa il nome utente e la password specificati per connettersi al computer remoto. Se si vuole usare il contesto utente corrente, per la connessione remota modificare 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 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

Namespaces

Sistema

System.collections.generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Microsoft.ManagementConsole

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Microsoft.ManagementConsole

Programmazione efficiente

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

Sicurezza di .NET Framework

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

Vedere anche

Nozioni fondamentali sul provider SMSCome aggiungere un qualificatore di contesto Configuration Manager usando codice gestito
Panoramica sugli oggetti