Verbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde code
Als u verbinding wilt maken met een SMS-provider, gebruikt u WqlConnectionManager.Connect. Nadat de verbinding is gemaakt, heeft WqlConnectionManager.Connect methoden om Configuration Manager WMI-objecten (Windows Management Instrumentation) op te vragen, te maken, te verwijderen en anderszins te gebruiken.
Opmerking
WqlConnectionManager.Connect is een WMI-specifieke afleiding van ConnectionManagerBase.
Als u verbinding maakt met een lokale SMS-provider, geeft u geen gebruikersreferenties op. Als u verbinding maakt met een externe SMS-provider, hoeft u geen gebruikersreferenties op te geven als de huidige gebruikers-/computercontext machtigingen heeft voor de externe SMS-provider.
Als u geen toegangsbevoegdheden hebt voor de externe SMS-provider of als u een ander gebruikersaccount wilt gebruiken, moet u gebruikersreferenties opgeven voor een gebruikersaccount met toegangsbevoegdheden.
Voor WQLConnectionManager.Connection is een SmsNamedValuesDictionary-object vereist. Dit kan worden gebruikt voor het opslaan van gegevens in de cache, zoals de computernaam.
Het is vooraf ingevuld met veel waarden die kunnen worden gebruikt in uw toepassing.
Waarde | Beschrijving. |
---|---|
ProviderLocation | De locatie van de provider. Bijvoorbeeld: \\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX". |
ProviderMachineName | De providercomputer. Bijvoorbeeld \\ComputerName. |
Verbinding | Het verbindingspad. Bijvoorbeeld \\ComputerName\root\sms\site_XXX. |
ConnectedSiteCode | De sitecode voor de Configuration Manager site waarmee de verbinding is verbonden. Bijvoorbeeld XXX. |
Servernaam | De computernaam, bijvoorbeeld COMPUTERNAAM. |
SiteName | De Configuration Manager sitecode. Bijvoorbeeld Centrale site. |
ConnectedServerVersion | De versie voor de verbonden server. Bijvoorbeeld 4.00.5830.0000 |
BuildNumber | Het buildnummer van Configuration Manager installatie. Bijvoorbeeld 5830. |
Opmerking
Het object SmsNamedValuesDictionary is niet de context kwalificatie-informatie die is doorgegeven aan de provider. Zie How to Add a Configuration Manager Context Qualifier by Using Managed Code (Een Configuration Manager contextkwalificatie toevoegen met behulp van beheerde code) voor meer informatie.
Verbinding maken met de SMS-provider
Maak een SmsNamedValuesDictionaryObject.
Maak een exemplaar van de klasse WqlConnectionManager en roep de methode [Connect] aan en geef de servernaam door, en als de servernaam extern is, de gebruikersnaam en het wachtwoord.
Gebruik het WqlConnectionManager-object om verbinding te maken met de provider.
Voorbeeld
De volgende voorbeeldmethode maakt verbinding met de SMS-provider op een lokale of externe computer. Als servername
extern is, gebruikt de methode de opgegeven gebruikersnaam en het wachtwoord om verbinding te maken met de externe computer. Als u de huidige gebruikerscontext wilt gebruiken voor de externe verbinding, wijzigt u de code zodat deze de gebruikersnaam en het wachtwoord niet doorgeeft. Als de verbinding tot stand is gebracht, wordt een WqlConnectionManager-object geretourneerd.
Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.
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;
}
}
De code compileren
Naamruimten
Systeem
System.Collections.Generic
System.ComponentModel
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Microsoft.ManagementConsole
Vergadering
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Microsoft.ManagementConsole
Robuust programmeren
De Configuration Manager uitzonderingen die kunnen worden gegenereerd, zijn SmsConnectionException en SmsQueryException. Deze kunnen samen met SmsException worden gevangen.
.NET Framework Beveiliging
UnauthorizedAccessException wordt gegenereerd wanneer de verkeerde referenties worden doorgegeven aan WqlConnectionManager.Connect.
Zie ook
Basisprincipes van SMS-providerEen Configuration Manager contextkwalificatie toevoegen met behulp van beheerde code
Overzicht van objecten