2010-08-19 8 views
1

System.Diagnostics.PerformanceCounter 클래스로 할 수있는 것처럼 C#에서 WMI를 통해 쿼리하는 방법이 있습니까?WMI 성능 카운터 쿼리 문제

간단히 말해서 \\localhost\Processor(0)\% Processor Time과 같은 문자열을 전달하면 올바른 WMI 쿼리가 작성됩니다.

레거시 프로그램의 플랫 파일에 커다란 카운터 목록이 있으며이 파일을 플랫 파일을 통해 실행하고 값을 가져 오는 서비스로 옮기고 싶습니다.

답변

2

WMI Performance Class Counters을 사용할 수 있습니다. 예를 들면 PerfDisk_LogicalDisk를 폴링하는 것입니다.

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk"); 
foreach (ManagementObject service in mos.Get()) 
{ 
    foreach (PropertyData data in service.Properties) 
    { 
     Console.WriteLine("{0} {1}", data.Name, data.Value); 
    } 
}