Вопрос

Как я могу получить текущую загрузку процессора в c # с помощью WMI?Я видел много сообщений с использованием счетчиков производительности, но мне нужно решение, которое может работать с удаленными машинами.Я также нашел решение VB здесь, но я бы предпочел выполнить это на C #, если это возможно.

Это было полезно?

Решение 3

У меня это работает.Использовался практически тот же код, что и найденный здесь: http://www.csharphelp.com/archives2/archive334.html Оказывается, у меня был плохой путь, с которым я, наконец, разобрался:новый путь к управлению (строка.Формат("\\{0} oot\cimv2",имя машины));

Другие советы

Производительность с помощью WMI, мягко говоря, неважная.Счетчики производительности нормально работают с удаленными машинами.Используйте System.Diagnostics.PerformanceCounterXxx классы, конструкторы имеют перегрузки, которые требуют machineName аргумент.

инструмент "pslist" из sysinternals (его бесплатный) может считывать данные об использовании с удаленных машин.вы могли бы запустить программу в cmd-окне и получить результат в вашем приложении.

        cmd.StartInfo.FileName = "cmd.com"; 
        cmd.StartInfo.Arguments = "/c pslist ....."; 
        cmd.StartInfo.RedirectStandardOutput = true; 
        cmd.StartInfo.RedirectStandardError  = true; 

        // run process and catch output 
        cmd.Start(); 
        string sOutput = cmd.StandardOutput.ReadToEnd(); 
        cmd.WaitForExit(); 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top