Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von verwaltetem Code
In Configuration Manager verwenden Sie zum Ausführen einer asynchronen Abfrage mithilfe des verwalteten SMS-Anbieters die ProcessQuery-Methode.
Der erste Parameter der ProcessQuery-Methode ist eine Instanz der SmsBackgroundWorker-Klasse , die zwei Ereignishandler bereitstellt:
QueryProcessObjectReady. Dieser Ereignishandler wird für jedes Von der Abfrage zurückgegebene Objekt aufgerufen. Der Ereignishandler stellt ein IResultObject-Objekt bereit, das das Objekt darstellt.
QueryProcessCompleted. Dieser Ereignishandler wird aufgerufen, wenn die Abfrage abgeschlossen ist. Außerdem werden Informationen zu fehlern bereitgestellt, die auftreten. Weitere Informationen finden Sie unter Behandeln von Configuration Manager asynchronen Fehlern mithilfe von verwaltetem Code.
Der zweite Parameter für der ProcessQuery-Methode ist die WQL-Anweisung für die Abfrage.
So führen Sie eine asynchrone Abfrage aus
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Erstellen Sie das SmsBackgroundWorker-Objekt , und füllen Sie die Eigenschaften QueryProcessorObjectReady und QueryProcessorCompleted mit den Rückrufmethodennamen auf.
Rufen Sie aus dem WqlConnectionManager-Objekt, das Sie in Schritt 1 abgerufen haben, die ProcessQuery-Methode des QueryProcessor-Objekts auf, um die asynchrone Abfrage zu starten.
Beispiel
Im folgenden Beispiel werden alle verfügbaren SMS_Collection -Objekte abfragt, und im Ereignishandler werden im Beispiel mehrere der Auflistungseigenschaften in die Configuration Manager-Konsole geschrieben.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
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...");
}
Diese Beispielmethode weist die folgenden Parameter auf:
Parameter | Typ | Beschreibung |
---|---|---|
connection |
Verwalteten: WqlConnectionManager |
Eine gültige Verbindung mit dem SMS-Anbieter. |
Kompilieren des Codes
Namespaces
System
System.Collections.Generic
System.ComponentModel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Die Configuration Manager Ausnahmen, die ausgelöst werden können, sind SmsConnectionException und SmsQueryException. Diese können zusammen mit SmsException abgefangen werden.
Siehe auch
Übersicht über ObjekteConfiguration Manager Verzögerte Eigenschaften
Aufrufen einer Configuration Manager-Objektklassenmethode mithilfe von verwaltetem Code
Herstellen einer Verbindung mit einem Configuration Manager Anbieter mithilfe von verwaltetem Code
Erstellen eines Configuration Manager-Objekts mithilfe von verwaltetem Code
Ändern eines Configuration Manager-Objekts mithilfe von verwaltetem Code
Ausführen einer synchronen Configuration Manager Abfrage mithilfe von verwaltetem Code
Lesen eines Configuration Manager-Objekts mithilfe von verwaltetem Code
Lesen verzögerter Eigenschaften mithilfe von verwaltetem Code
Ausführen einer synchronen Configuration Manager Abfrage mit verwaltetem Code
Configuration Manager Erweiterte WMI-Abfragesprache
Configuration Manager Resultsets
spezielle Abfragen Configuration Manager
Informationen zu Abfragen