イベントログで Microsoft-Windows-Perflib の1008エラー、2001エラーが出ていることをよく見ます。
サーバのイベントログを毎日監視している方はよく見るエラーですね。
しかし、このエラーの原因や対処方法がなかなか見当たりません。
原因はよくわかりませんが、エラーを消去(回避)する方法はあります。
マイクロソフトに情報は載っているのですが、情報が古いため現在のOSには対応できていません。
そこで、エラーが回避できた方法として、試行錯誤して対応できた手順を公開します。
あくまで「たまたまエラーが消えた可能性」がありますので、確実にエラーが無くなるとは限りません。
マイクロソフト参考URL:Event ID 1008 — Performance Library Availability | Microsoft Learn
目次
イベント ID 1008 の対処手順
イベントログ情報としては以下です。どういったエラーなのかとみてみると、たまたま、BIT関連のエラーがでていました。
ログの名前:Application ソース:Perflib イベントID:1008 レベル:エラー 説明: サービス “BITS” (DLL “C:\Windows\System32\bitsperf.dll”) の Open プロシージャに失敗しました。このサービスのパフォーマンス データは利用できません。データ セクションの最初の 4 バイト (DWORD) に、エラー コードが含まれています。 |
◆対処方法
パフォーマンスカウンターを再登録します。
コマンドプロンプトを管理者として実行し、以下コマンドでパフォーマンスカウンターを再登録します。
Lodctr /R |
イベント ID 2001 の対処手順
ログの名前:Application ソース:usbperf イベントID:2001 レベル:エラー 説明: usbperf\Performance キーの “First Counter” 値を読み取れません。ステータス コードはデータで戻されました。 |
◆対処方法
iniファイルを再登録します。
コマンドプロンプトを管理者として実行します。
Copy “C:\Windows\inf\usbhub\usbperfsym.h” “C:\Windows\inf\usbhub\0411\usbperfsym.h” |
usbperfsym.h というファイルを C:\Windows\inf\usbhub\0411 フォルダへコピーします。
Lodctr “C:\Windows\inf\usbhub\0411\usbperf.ini” |
再度、iniファイルを登録します。そうすると、「Perflib の言語キー 009 を開けません」とか表示されますが、無視してください。
イベントビューアを開きます。 以下のイベントがあれば成功です。
ログの名前:Application ソース:LoadPerf イベントID:1000 レベル:情報 説明: usbhub (@usbport.inf,%ROOTHUB.SvcDesc%;Microsoft USB Standard Hub Driver) サービスのパフォーマンス カウンターを正しく読み込みました。データ セクションのレコード データには、このサービスに割り当てられた新しいインデックス値が含まれています。 |
以上となります。