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