次の方法で共有


マネージド コードを使用して非同期Configuration Manager クエリを実行する方法

Configuration Managerでは、マネージド SMS プロバイダーを使用して非同期クエリを実行するには、ProcessQuery メソッドを使用します。

ProcessQuery メソッドの最初のパラメーターは、2 つのイベント ハンドラーを提供する SmsBackgroundWorker クラスのインスタンスです。

非同期クエリを実行するには

  1. SMS プロバイダーへの接続を設定します。 詳細については、「 SMS プロバイダーの基礎」を参照してください。

  2. SmsBackgroundWorker オブジェクトを作成し、QueryProcessorObjectReady プロパティと QueryProcessorCompleted プロパティにコールバック メソッド名を設定します。

  3. 手順 1 で取得した WqlConnectionManager オブジェクトから QueryProcessor オブジェクト ProcessQuery メソッドを呼び出して、非同期クエリを開始します。

次の例では、使用可能なすべてのSMS_Collection オブジェクトに対するクエリを実行し、イベント ハンドラーでは、いくつかのコレクション プロパティを Configuration Manager コンソールに書き込みます。

サンプル コードの呼び出しについては、「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...");  
}  

この例のメソッドには、次のパラメーターがあります。

パラメーター 説明
connection 管理: WqlConnectionManager SMS プロバイダーへの有効な接続。

コードのコンパイル

名前空間

System

System.Collections.Generic

System.ComponentModel

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

堅牢なプログラミング

発生できるConfiguration Manager例外は、SmsConnectionExceptionSmsQueryException です。 これらは SmsException と一緒にキャッチできます。

関連項目

オブジェクトの概要Configuration Manager遅延プロパティ
マネージド コードを使用してConfiguration Manager オブジェクト クラス メソッドを呼び出す方法
マネージド コードを使用してConfiguration Manager プロバイダーに接続する方法
マネージド コードを使用してConfiguration Manager オブジェクトを作成する方法
マネージド コードを使用してConfiguration Manager オブジェクトを変更する方法
マネージド コードを使用して同期Configuration Manager クエリを実行する方法
マネージド コードを使用してConfiguration Manager オブジェクトを読み取る方法
マネージド コードを使用して遅延プロパティを読み取る方法
マネージド コードを使用して同期Configuration Manager クエリを実行する方法
拡張 WMI クエリ言語のConfiguration Manager
結果セットのConfiguration Manager
特殊なクエリをConfiguration Managerする
クエリについて