Sdílet prostřednictvím


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í:

Provedení asynchronního dotazu

  1. Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.

  2. Vytvořte SmsBackgroundWorker objekt a vyplňte QueryProcessorObjectReady a QueryProcessorCompleted vlastnosti názvy metod zpětného volání.

  3. 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 Řízen: WqlConnectionManager Platné připojení k poskytovateli serveru SMS.

Kompilace kódu

Obory názvů

Systém

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Shromáždění

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é vlastnostiJak volat metodu třídy objektu Configuration Manager pomocí spravovaného kóduPostup připojení k poskytovateli Configuration Manager pomocí spravovaného kóduPostup vytvoření objektu Configuration Manager objektu pomocí spravovaného kóduJak upravit objekt Configuration Manager pomocí spravovaného kóduJak provést synchronní Configuration Manager dotaz pomocí spravovaného kóduJak číst Configuration Manager Objekt pomocí spravovaného kóduJak číst opožděné vlastnosti pomocí spravovaného kóduJak provádět synchronní Configuration Manager dotaz pomocí spravovaného kóduConfiguration Manager rozšířený dotazovací jazyk WMIConfiguration Manager sadyvýsledkůConfiguration Manager speciální dotazyk dotazům