WMI에는 WMI 공급자를 사용하는 클라이언트 애플리케이션에 문제를 해결하는 클래스 집합이 포함되어 있습니다. 문제 해결 이벤트 클래스는 캡처된 문제 해결 이벤트의 로그를 사용하여 애플리케이션 실행을 추적할 수 있도록 WMI 이벤트 클래스와 결합됩니다.
다음 목록에는 문제 해결 이벤트 클래스의 예가 포함되어 있습니다.
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
WMI가 공급자에서 IWbemServices::ExecMethodAsync() 호출하기 전에 발생합니다.
Msft_WmiProvider_ExecMethodAsyncEvent_Post
WMI가 공급자에서 IWbemServices::ExecMethodAsync() 호출한 후에 발생합니다.
다음 절차에서는 애플리케이션 실행 문제를 해결하는 방법을 보여 줍니다.
WMI 문제 해결을 위한 설정을 하려면
- WMI 로깅 이벤트 소비자를 사용하도록 MOF 파일을 만들고 컴파일합니다.
- 클라이언트 애플리케이션을 실행합니다.
- 모든 공급자 작업 및 실패 이벤트에 대한 문제 해결 로그 파일을 보고 로그를 분석하여 발생하는 클라이언트 문제를 진단합니다.
또 다른 문제 해결 방법은 root\cimv2 네임스페이스에 MSFT_Providers 열거하여 현재 컴퓨터 캐시에 있는 공급자 목록을 보는 것입니다. 이 클래스에는 디버깅 또는 설정 목적으로 공급자를 로드하고 언로드할 수 있는 메서드가 있습니다.
다음 코드 예제에서는 WMI 로깅 이벤트 소비자를 사용하여 부모 이벤트 클래스의 모든 이벤트를 캡처하여 모든 공급자 작업 이벤트를 캡처합니다.
#pragma autorecover
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $Filter
{
Name = "ProviderOperationEvents" ;
EventNamespace = "root\\cimv2" ;
Query = "SELECT * FROM MSFT_WmiProvider_OperationEvent" ;
QueryLanguage = "WQL" ;
} ;
Instance of LogFileEventConsumer as $Consumer
{
Name = "ProviderOperationEvents" ;
FileName = "C:\\test.txt" ;
Text = "Operation - %__TEXT%" ;
} ;
instance of __FilterToConsumerBinding
{
Filter = $Filter ;
Consumer = $Consumer ;
MaintainSecurityContext = TRUE ;
} ;
오류 메시지가 공급자 로드 실패를 나타내는 경우 MSFT_WmiProvider_LoadOperationFailureEvent 사용하여 오류를 발생시킨 공급자를 식별합니다.
관련 항목