2010-08-19 16 views
1

Existe-t-il un moyen d'interroger via WMI en C# comme vous pouvez le faire avec la classe System.Diagnostics.PerformanceCounter?Compteur de performances WMI Problèmes de requête

En termes simples comment puis-je passer une chaîne comme \\localhost\Processor(0)\% Processor Time et construirais la requête WMI correcte pour moi? J'ai une énorme liste de compteurs dans un fichier plat d'un programme hérité et je veux le déplacer vers un service qui ne fait que parcourir le fichier plat et obtient la valeur.

Répondre

2

Vous pouvez utiliser le WMI Performance Class Counters. Un exemple de ceci serait le vote 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); 
    } 
}