PerfNetのエラー

管理イベントを見ると下記の様なエラーが記録されてた。なんじゃいこりゃ。

イベントID 詳細 ソース
2002 リダイレクター サービス パフォーマンス オブジェクトを開けません。データ セクションの最初の 4 バイト (DWORD) に、状態コードが含まれています。 PerfNet
2004 サーバー サービス パフォーマンス オブジェクトを開けません。データ セクションの最初の 4 バイト (DWORD) に、状態コードが含まれています。 PerfNet

まずPerfNetてのはperfnet.dllの事で、Windows Network Service Performance Objects DLLといってネットワークサービスのパフォーマンスカウンタを取得するDLLなんだそうな。うむ。全く分からん。

コンピューターの管理内にあるSystem DiagnosticsもしくはSystem Performanceを開始するとこのエラーが出る様だ。
2つとも中にPerformance Counterというのがあるじゃん。PerfNetの説明にあるパフォーマンスカウンタというのはきっとコレの事だ。
Performance Counterのプロパティを見てみると具体的な項目がある。ああなるほど、この中のネットワークの項目が開始できずにエラーを起こしてる訳か。すると検索して出てくる「レジストリを編集してエラーを出なくする」という対処法の意味も分かる。Performance Counterからネットワークを削除するという意味なのね。確かに手動で削除出来なくしてあるからレジストリからやるしかない。PerfSCというフリーソフトもあるからこっちのほうが楽で良さそう。

じゃあそもそもなんでperfnet.dllでこけてるのか。答えは簡単でserverのサービスを止めてるから。これを動かせばエラーは出なくなる。

つまり解決方法としてはこのの2つ。

  • serverのサービスを自動にする
  • パフォーマンスカウンタからperfnet.dllを削る