Jak provést asynchronní dotaz Configuration Manager pomocí spravovaného kódu
Pokud chcete v Configuration Manager provést asynchronní dotaz pomocí spravovaného poskytovatele serveru SMS, použijte metodu ProcessQuery.
Prvním parametrem metody ProcessQuery je instance třídy SmsBackgroundWorker , která poskytuje dvě obslužné rutiny událostí:
QueryProcessObjectReady. Tato obslužná rutina události je volána pro každý objekt vrácený dotazem. Obslužná rutina události poskytuje objekt IResultObject, který představuje objekt .
QueryProcessCompleted. Tato obslužná rutina události se volá po dokončení dotazu. Poskytuje také informace o všech chybách, ke kterým dojde. Další informace najdete v tématu Informace o zpracování chyb najdete v tématu Zpracování Configuration Manager asynchronních chyb pomocí spravovaného kódu.
Druhým parametrem metody ProcessQuery je příkaz WQL pro dotaz.
Provedení asynchronního dotazu
Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.
Vytvořte SmsBackgroundWorker objekt a vyplňte QueryProcessorObjectReady a QueryProcessorCompleted vlastnosti názvy metod zpětného volání.
Z objektu WqlConnectionManager, který získáte v kroku 1, voláním metody ProcessQuery objektu QueryProcessor spusťte asynchronní dotaz.
Příklad
Následující příklad dotazuje všechny dostupné SMS_Collection objekty a v obslužné rutině události zapíše několik vlastností kolekce do konzoly Configuration Manager.
Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.
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...");
}
Tato ukázková metoda má následující parametry:
Parametr | Typ | Popis |
---|---|---|
connection |
Spravované: WqlConnectionManager |
Platné připojení k poskytovateli serveru SMS. |
Kompilace kódu
Obory názvů
Systému
System.collections.generic
System.componentmodel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Sestavení
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robustní programování
Výjimky Configuration Manager, které mohou být vyvolány, jsou SmsConnectionException a SmsQueryException. Ty se dají zachytit společně s postupem SmsException.
Viz taky
Přehled objektůConfiguration Manager Opožděné vlastnosti
Volání metody třídy objektu Configuration Manager pomocí spravovaného kódu
Připojení ke poskytovateli Configuration Manager pomocí spravovaného kódu
Vytvoření objektu Configuration Manager pomocí spravovaného kódu
Úprava objektu Configuration Manager pomocí spravovaného kódu
Jak provést synchronní dotaz Configuration Manager pomocí spravovaného kódu
Čtení objektu Configuration Manager pomocí spravovaného kódu
Jak číst opožděné vlastnosti pomocí spravovaného kódu
Jak provést synchronní dotaz Configuration Manager pomocí spravovaného kódu
Configuration Manager rozšířený dotazovací jazyk WMI
Configuration Manager sady výsledků
Configuration Manager speciální dotazy
Informace o dotazech