Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In Configuration Manager, per eseguire una query asincrona usando il provider SMS gestito, usare il metodo ProcessQuery.
Il primo parametro del metodo ProcessQuery è un'istanza della classe SmsBackgroundWorker che fornisce due gestori eventi:
QueryProcessObjectReady. Questo gestore eventi viene chiamato per ogni oggetto restituito dalla query. Il gestore eventi fornisce un oggetto IResultObject che rappresenta l'oggetto.
QueryProcessCompleted. Questo gestore eventi viene chiamato al termine della query. Fornisce inoltre informazioni su eventuali errori che si verificano. Per altre informazioni, vedere Per informazioni sulla gestione degli errori, vedere Come gestire gli errori asincroni di Configuration Manager tramite codice gestito.
Il secondo parametro del metodo ProcessQuery è l'istruzione WQL per la query.
Per eseguire una query asincrona
Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.
Crea l'oggetto SmsBackgroundWorker e inserisci le proprietà QueryProcessorObjectReady e QueryProcessorCompleted con i nomi dei metodi di callback.
Dall'oggetto WqlConnectionManager ottenuto nel passaggio uno, chiamare il metodo ProcessQuery dell'oggetto QueryProcessor per avviare la query asincrona.
Esempio
Nell'esempio seguente viene eseguita una query per tutti gli oggetti SMS_Collection disponibili e, nel gestore eventi, diverse proprietà della raccolta vengono scritte nella console Configuration Manager.
Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice di Configuration Manager.
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...");
}
Questo metodo di esempio include i parametri seguenti:
| Parametro | Tipo | Descrizione |
|---|---|---|
connection |
Gestito: WqlConnectionManager |
Una connessione valida al provider SMS. |
Compilazione del codice
Spazi dei nomi
Sistema
System.Collections.Generic
System.ComponentModel
Microsoft.ConfigurationManagementManagementProvider
Microsoft.ConfigurationManagementManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Programmazione efficiente
Le eccezioni di Configuration Manager che possono essere generate sono SmsConnectionException e SmsQueryException. Questi possono essere intercettati insieme a SmsException.
Vedere anche
Panoramica degli oggetti:Proprietà lazy di Configuration ManagerCome chiamare un metodo della classe di oggetti di Configuration Manager tramite codice gestitoCome connettersi a un provider di Configuration Manager tramite codice gestitoCome creare un Oggetto di Configuration Manager tramite codice gestitoCome modificare un oggetto di Configuration Manager tramite codice gestitoCome eseguire una query di Configuration Manager sincrona usando codice gestitoCome leggere un oggetto di Configuration Manager oggetto tramite codice gestitoCome leggere le proprietà pigre tramite codice gestitoCome eseguire una query di Configuration Manager sincrona usando codice gestitoConfigurationManager Extended WMI Query LanguageSet di risultatidi Configuration ManagerQuery speciali di Configuration ManagerInformazioni sulle query