Dela via


Så här utför du en asynkron Configuration Manager fråga med hjälp av hanterad kod

I Configuration Manager använder du metoden ProcessQuery för att utföra en asynkron fråga med hjälp av den hanterade SMS-providern.

Den första parametern för metoden ProcessQuery är en instans av klassen SmsBackgroundWorker som tillhandahåller två händelsehanterare:

Så här utför du en asynkron fråga

  1. Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.

  2. Skapa objektet SmsBackgroundWorker och fyll i egenskaperna QueryProcessorObjectReady och QueryProcessorCompleted med namn på återanropsmetod.

  3. Från det WqlConnectionManager-objekt som du får i steg ett anropar du metoden QueryProcessor-objektetProcessQuery för att starta den asynkrona frågan.

Exempel

Följande exempel frågar efter alla tillgängliga SMS_Collection objekt, och i händelsehanteraren skriver exemplet flera av samlingsegenskaperna till Configuration Manager-konsolen.

Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.

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...");  
}  

Den här exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
connection Hanterade: WqlConnectionManager En giltig anslutning till SMS-providern.

Kompilera koden

Namnområden

System

System.Collections.Generic

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Församlingen

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robust programmering

De Configuration Manager undantag som kan aktiveras är SmsConnectionException och SmsQueryException. Dessa kan fångas tillsammans med SmsException.

Se även

Översikt över objektConfiguration Manager Lazy-egenskaper
Anropa en Configuration Manager objektklassmetod med hjälp av hanterad kod
Ansluta till en Configuration Manager-provider med hanterad kod
Så här skapar du ett Configuration Manager objekt med hjälp av hanterad kod
Så här ändrar du ett Configuration Manager objekt med hjälp av hanterad kod
Så här utför du en synkron Configuration Manager fråga med hjälp av hanterad kod
Läsa ett Configuration Manager objekt med hjälp av hanterad kod
Läsa lazy-egenskaper med hjälp av hanterad kod
Så här utför du en synkron Configuration Manager fråga med hanterad kod
Configuration Manager utökat WMI-frågespråk
Configuration Manager resultatuppsättningar
Configuration Manager särskilda frågor
Om frågor