Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u in Configuration Manager een asynchrone query wilt uitvoeren met behulp van de beheerde SMS-provider, gebruikt u de methode ProcessQuery.
De eerste parameter van de methode ProcessQuery is een exemplaar van de klasse SmsBackgroundWorker , die twee gebeurtenishandlers biedt:
QueryProcessObjectReady. Deze gebeurtenis-handler wordt aangeroepen voor elk object dat door de query wordt geretourneerd. De gebeurtenis-handler levert een IResultObject-object dat het object vertegenwoordigt.
QueryProcessCompleted. Deze gebeurtenis-handler wordt aangeroepen wanneer de query is voltooid. Het bevat ook informatie over eventuele fouten die zijn opgetreden. Zie Zie Asynchrone fouten in Configuration Manager afhandelen met behulp van beheerde code voor meer informatie over foutafhandeling.
De tweede parameter van de methode ProcessQuery is de WQL-instructie voor de query.
Een asynchrone query uitvoeren
Stel een verbinding in met de sms-provider. Zie Basisprincipes van sms-provider voor meer informatie.
Maak het object SmsBackgroundWorker en vul de namen van de callbackmethoden in de eigenschappen QueryProcessorObjectReady en QueryProcessorCompleted .
Roep de methode QueryProcessor object ProcessQuery aan van het WqlConnectionManager-object dat u in stap één verkrijgt om de asynchrone query te starten.
Voorbeeld
In het volgende voorbeeld worden query's uitgevoerd voor alle beschikbare SMS_Collection objecten, en in de gebeurtenis-handler, schrijft het voorbeeld verschillende van de verzamelingseigenschappen naar de Configuration Manager console.
Zie Codefragmenten van Configuration Manager aanroepen voor meer informatie over het aanroepen van de voorbeeldcode.
public void QueryCollections(WqlConnectionManager connection)
{
try
{
// Set up the query.
SmsBackgroundWorker bw1 = new SmsBackgroundWorker();
bw1.QueryProcessorObjectReady += new EventHandler<QueryProcessorObjectEventArgs>(bw1_QueryProcessorObjectReady);
bw1.QueryProcessorCompleted += new EventHandler<RunWorkerCompletedEventArgs>(bw1_QueryProcessorCompleted);
// Query for all collections.
connection.QueryProcessor.ProcessQuery(bw1, "select * from SMS_Collection");
// Pause while query runs.
Console.ReadLine();
}
catch (SmsException ex)
{
Console.WriteLine("Failed to start asynchronous query: ", ex.Message);
}
}
void bw1_QueryProcessorObjectReady(object sender, QueryProcessorObjectEventArgs e)
{
try
{
// Get the collection.
IResultObject collection = (IResultObject)e.ResultObject;
//Display properties.
Console.WriteLine(collection["CollectionID"].StringValue);
Console.WriteLine(collection["Name"].StringValue);
Console.WriteLine();
collection.Dispose();
}
catch (SmsQueryException eX)
{
Console.WriteLine("Query Error: " + eX.Message);
}
}
void bw1_QueryProcessorCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Console.WriteLine("Done...");
}
Deze voorbeeldmethode heeft de volgende parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
connection |
Beheerd: WqlConnectionManager |
Een geldige verbinding met de sms-provider. |
De code compileren
Naamruimten
Systeem
System.Collections.Generic
System.ComponentModel
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
bijeenkomst
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuust programmeren
De uitzonderingen in Configuration Manager die kunnen worden verhoogd zijn SmsConnectionException en SmsQueryException. Deze kunnen samen met SmsException worden opgevangen.
Zie ook
Overzicht van objectenConfiguration Manager Lazy PropertiesEen Configuration Manager objectklassemethode aanroepen met behulp van beheerde codeVerbinding maken met een Configuration Manager provider met behulp van beheerde codeEen Configuration Manager-object met behulp van beheerde codeEen Configuration Manager-object wijzigen met behulp van beheerde codeEen synchrone Configuration Manager-query uitvoeren met behulp van beheerde codeEen Configuration Manager lezen Object met behulp van beheerde codeLazy Eigenschappen lezen met behulp van beheerde codeEen query voor synchrone Configuration Manager uitvoeren met beheerde codeConfiguration Manager Uitgebreide WMI-querytaalConfiguration Manager ResultaatsetsConfiguration Manager Speciale vragenover query's