다음을 통해 공유


관리 코드를 사용하여 비동기 Configuration Manager 쿼리를 수행하는 방법

Configuration Manager 관리형 SMS 공급자를 사용하여 비동기 쿼리를 수행하려면 ProcessQuery 메서드를 사용합니다.

ProcessQuery 메서드의 첫 번째 매개 변수는 두 개의 이벤트 처리기를 제공하는 SmsBackgroundWorker 클래스의 인스턴스입니다.

비동기 쿼리를 수행하려면

  1. SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.

  2. SmsBackgroundWorker 개체를 만들고 QueryProcessorObjectReadyQueryProcessorCompleted 속성을 콜백 메서드 이름으로 채웁니다.

  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.Collections.Generic

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

어셈블리

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
쿼리 정보