Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code

Verwenden Sie WqlConnectionManager.Connect, um eine Verbindung mit einem SMS-Anbieter herzustellen. Nachdem die Verbindung hergestellt wurde, verfügt WqlConnectionManager.Connect über Methoden zum Abfragen, Erstellen, Löschen und anderweitigen Verwenden von Configuration Manager-WMI-Objekten (Windows Management Instrumentation).

Hinweis

WqlConnectionManager.Connect ist eine WMI-spezifische Ableitung von ConnectionManagerBase.

Wenn Sie eine Verbindung mit einem lokalen SMS-Anbieter herstellen, geben Sie keine Benutzeranmeldeinformationen an. Wenn Sie eine Verbindung mit einem Remote-SMS-Anbieter herstellen, müssen Sie keine Benutzeranmeldeinformationen angeben, wenn der aktuelle Benutzer-/Computerkontext über Berechtigungen für den Remote-SMS-Anbieter verfügt.

Wenn Sie keine Zugriffsrechte für den Remote-SMS-Anbieter haben oder ein anderes Benutzerkonto verwenden möchten, müssen Sie die Anmeldeinformationen für ein Benutzerkonto angeben, das über Zugriffsrechte verfügt.

WQLConnectionManager.Connection erfordert ein SmsNamedValuesDictionary-Objekt . Dies kann verwendet werden, um zwischengespeicherte Informationen wie den Computernamen zu speichern.

Er ist mit vielen Werten aufgefüllt, die in Ihrer Anwendung verwendet werden können.

Wert Eine Beschreibung.
ProviderLocation Der Standort des Anbieters. Beispiel:

\\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX".
ProviderMachineName Der Anbietercomputer. Beispiel: \\Computername.
Verbindung Der Verbindungspfad. Beispiel: \\ComputerName\root\sms\site_XXX.
ConnectedSiteCode Der Standortcode für den Configuration Manager-Standort, mit dem die Verbindung verbunden ist. Zum Beispiel XXX.
ServerName Der Computername, z. B. COMPUTERNAME.
SiteName Der Configuration Manager-Standortcode. Beispiel: Zentraler Standort.
ConnectedServerVersion Die Version für den Server, mit dem die Verbindung hergestellt wurde. Beispiel: 4.00.5830.0000
BuildNumber Die Buildnummer der Configuration Manager-Installation. Beispiel: 5830.

Hinweis

Das SmsNamedValuesDictionary-Objekt ist nicht die Kontextqualifiziererinformation, die an den Anbieter übergeben wird. Weitere Informationen finden Sie unter Hinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von verwaltetem Code.

So stellen Sie eine Verbindung mit dem SMS-Anbieter her

  1. Erstellen Sie ein SmsNamedValuesDictionaryObject.

  2. Erstellen Sie eine Instance der WqlConnectionManager-Klasse und rufen Sie die [Connect]-Methode auf, wobei der Servername und, wenn der Servername remote ist, der Benutzername und das Kennwort übergeben werden.

  3. Verwenden Sie das WqlConnectionManager-Objekt , um eine Verbindung mit dem Anbieter herzustellen.

Beispiel

Die folgende Beispielmethode stellt eine Verbindung mit dem SMS-Anbieter auf einem lokalen oder Remotecomputer her. Wenn servername es sich um eine Remotemethode handelt, verwendet die Methode den angegebenen Benutzernamen und das Kennwort, um eine Verbindung mit dem Remotecomputer herzustellen. Wenn Sie den aktuellen Benutzerkontext für die Remoteverbindung verwenden möchten, ändern Sie den Code so, dass er den Benutzernamen und das Kennwort nicht übergibt. Wenn die Verbindung erfolgreich hergestellt werden konnte, wird ein WqlConnectionManager-Objekt zurückgegeben.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.

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

Kompilieren des Codes

Namespaces

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Microsoft.ManagementConsole

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Microsoft.ManagementConsole

Robuste Programmierung

Die Configuration Manager-Ausnahmen, die ausgelöst werden können, sind SmsConnectionException und SmsQueryException. Diese können zusammen mit SmsException abgefangen werden.

.NET Framework-Sicherheit

UnauthorizedAccessException wird ausgelöst, wenn die falschen Anmeldeinformationen an WqlConnectionManager.Connect übergeben werden.

Siehe auch

Grundlagen des SMS-AnbietersHinzufügen eines Configuration Manager-Kontextqualifizierers mithilfe von verwaltetem CodeÜbersicht über Objekte