Jak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu kodu zarządzanego

Aby nawiązać połączenie z dostawcą programu SMS, użyj polecenia WqlConnectionManager.Connect. Po nawiązaniu połączenia program WqlConnectionManager.Connect oferuje metody wykonywania zapytań, tworzenia, usuwania i używania Configuration Manager obiektów instrumentacji zarządzania windows (WMI).

Uwaga

WqlConnectionManager.Connect to pochodna bazy danych ConnectionManagerBase specyficzna dla usługi WMI.

Jeśli nawiązujesz połączenie z lokalnym dostawcą programu SMS, nie podajesz poświadczeń użytkownika. Jeśli nawiązujesz połączenie ze zdalnym dostawcą programu SMS, nie musisz podawać poświadczeń użytkownika, jeśli bieżący kontekst użytkownika/komputera ma uprawnienia do zdalnego dostawcy programu SMS.

Jeśli nie masz uprawnień dostępu do zdalnego dostawcy programu SMS lub chcesz użyć innego konta użytkownika, musisz podać poświadczenia użytkownika dla konta użytkownika z uprawnieniami dostępu.

WQLConnectionManager.Connection wymaga obiektu SmsNamedValuesDictionary . Może służyć do przechowywania informacji przechowywanych w pamięci podręcznej, takich jak nazwa komputera.

Jest ona wstępnie wypełniona wieloma wartościami, których można użyć w aplikacji.

Value Opis.
ProviderLocation Lokalizacja dostawcy. Na przykład:

\\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName Komputer dostawcy. Na przykład \\ComputerName.
Połączenie Ścieżka połączenia. Na przykład \\ComputerName\root\sms\site_XXX.
ConnectedSiteCode Kod witryny dla Configuration Manager lokacji, z którą połączenie jest połączone. Na przykład XXX.
Nazwa_serwera Nazwa komputera, na przykład COMPUTERNAME.
Sitename Kod witryny Configuration Manager. Na przykład centralna lokacja.
ConnectedServerVersion Wersja połączonego serwera. Na przykład 4.00.5830.0000
BuildNumber Numer kompilacji instalacji Configuration Manager. Na przykład 5830.

Uwaga

Obiekt SmsNamedValuesDictionary nie jest informacjami o kwalifikatorze kontekstu przekazywanym do dostawcy. Aby uzyskać więcej informacji, zobacz How to Add a Configuration Manager Context Qualifier by Using Managed Code (Jak dodać kwalifikator kontekstu Configuration Manager przy użyciu kodu zarządzanego).

Aby nawiązać połączenie z dostawcą programu SMS

  1. Utwórz obiekt SmsNamedValuesDictionaryObject.

  2. Utwórz wystąpienie klasy WqlConnectionManager i wywołaj metodę [Connect] przekazującą nazwę serwera, a jeśli nazwa serwera jest zdalna, nazwa użytkownika i hasło.

  3. Użyj obiektu WqlConnectionManager , aby nawiązać połączenie z dostawcą.

Przykład

Poniższa przykładowa metoda łączy się z dostawcą programu SMS na komputerze lokalnym lub zdalnym. Jeśli servername metoda jest zdalna, używa podanej nazwy użytkownika i hasła do nawiązania połączenia z komputerem zdalnym. Jeśli chcesz użyć bieżącego kontekstu użytkownika dla połączenia zdalnego, zmień kod, aby nie przekazywał nazwy użytkownika i hasła. Jeśli połączenie zakończy się pomyślnie, zostanie zwrócony obiekt WqlConnectionManager .

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu 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;  
    }  
}  

Kompilowanie kodu

Obszary nazw

System

System.collections.generic

System.componentmodel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Microsoft.ManagementConsole

Zestawu

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Microsoft.ManagementConsole

Niezawodne programowanie

Wyjątki Configuration Manager, które można zgłaszać, to SmsConnectionException i SmsQueryException. Można je złapać razem z platformą SmsException.

zabezpieczenia .NET Framework

Wyjątek UnauthorizedAccessException jest zgłaszany, gdy nieprawidłowe poświadczenia są przekazywane do pliku WqlConnectionManager.Connect.

Zobacz też

Podstawy dostawcy programu SMSJak dodać kwalifikator kontekstu Configuration Manager przy użyciu kodu zarządzanego
Omówienie obiektów