2009-04-06 17 views
1

WMIを使用してC#で現在のCPU使用率を取得するにはどうすればよいですか?私はパフォーマンスカウンターを使用してたくさんの投稿を見てきましたが、リモートマシンで動作するソリューションが必要です。私もVBソリューションhereを見つけましたが、可能ならばC#でこれを達成することを好むでしょう。WMIとCを使用したCPU使用#

答えて

1

これは機能しています。ここで見つけたものとほぼ同じコードを使用しました:http://www.csharphelp.com/archives2/archive334.html私は最終的にソートされた悪いパスを持っていました。新しい管理パス(string.Format( "\\ {0} \ root \ cimv2"、machineName));

2

sysinternals(その無料版)のツール "pslist"は、リモートマシンからの使用状況を読み取ることができます。 cmdbox内でプログラムを起動し、その結果をアプリケーションに取り込むことができます。

 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(); 
3

WMIでのパフォーマンスは、最低でも言えば厄介です。パフォーマンスカウンターは、リモートコンピューターで正常に動作します。 System.Diagnostics.PerformanceCounterXxxクラスを使用すると、コンストラクタのオーバーロードはmachineName引数になります。

+0

Thx!それはマシン名を取ったことを認識していない。戻って、この方法を試して、この例外が表示され始めました 'ネットワークパスが見つかりませんでした'。 この記事では説明できるかもしれませんが、その当時、私はすでにWMIのメットを整理しました。 http://blogs.msdn.com/bclteam/archive/2006/09/08/746900.aspx – JPero

+0

リモートマシン上のレジストリを編集する必要はありません(しばしば編集できません)。パフォーマンスデータを読むことができるリモートユーザーを偽装するだけです。ところで、WMIへのアクセスには通常、管理者権限も必要です。 –

関連する問題