관리 코드를 사용하여 비동기 Configuration Manager 쿼리를 수행하는 방법
Configuration Manager 관리형 SMS 공급자를 사용하여 비동기 쿼리를 수행하려면 ProcessQuery 메서드를 사용합니다.
ProcessQuery 메서드의 첫 번째 매개 변수는 두 개의 이벤트 처리기를 제공하는 SmsBackgroundWorker 클래스의 인스턴스입니다.
QueryProcessObjectReady. 이 이벤트 처리기는 쿼리에서 반환된 각 개체에 대해 호출됩니다. 이벤트 처리기는 개체를 나타내는 IResultObject 개체를 제공합니다.
QueryProcessCompleted. 이 이벤트 처리기는 쿼리가 완료되면 호출됩니다. 또한 발생하는 오류에 대한 정보도 제공합니다. 자세한 내용은 오류 처리에 대한 자세한 내용은 관리 코드를 사용하여 Configuration Manager 비동기 오류를 처리하는 방법을 참조하세요.
ProcessQuery 메서드의 두 번째 매개 변수는 쿼리에 대한 WQL 문입니다.
비동기 쿼리를 수행하려면
SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.
SmsBackgroundWorker 개체를 만들고 QueryProcessorObjectReady 및 QueryProcessorCompleted 속성을 콜백 메서드 이름으로 채웁니다.
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 예외는 SmsConnectionException 및 SmsQueryException입니다. SmsException과 함께 사용할 수 있습니다.
참고 항목
개체 개요Configuration Manager 지연 속성
관리 코드를 사용하여 Configuration Manager 개체 클래스 메서드를 호출하는 방법
관리 코드를 사용하여 Configuration Manager 공급자에 연결하는 방법
관리 코드를 사용하여 Configuration Manager 개체를 만드는 방법
관리 코드를 사용하여 Configuration Manager 개체를 수정하는 방법
관리 코드를 사용하여 동기 Configuration Manager 쿼리를 수행하는 방법
관리 코드를 사용하여 Configuration Manager 개체를 읽는 방법
관리 코드를 사용하여 지연 속성을 읽는 방법
관리 코드를 사용하여 동기 Configuration Manager 쿼리를 수행하는 방법
확장 WMI 쿼리 언어 Configuration Manager
결과 집합 Configuration Manager
특수 쿼리 Configuration Manager
쿼리 정보