どうもログに取り込まれた後の私です。見たら最後のWindows ログ、今回はパフォーマンス関連で、気になる人用です。安易にコマンドを実行しない。自己責任でどうにかできる方だけどうぞ。
共通してlodctr
ツールを使用しますが、コマンドプロンプトcmd
は管理者モードで実行しておいてください。
信頼して無いから処理しないもん #2003
"TermService" サービスのパフォーマンス ライブラリ "C:\Windows\System32\perfts.dll" の構成情報が、レジストリに保存されている信頼されたパフォーマンス ライブラリの情報に一致しませんでした。このライブラリの関数は信頼されているものとして処理されません。
ログの名前:Application
ソース:Perflib
イベント ID:2003
レベル:警告
同じく#2003で、TermService
以外も出てくるので、その辺は置き換えて対処する事。
fix
lodctr
のパラメーター/t:
で信頼させる。
lodctr /t:"TermService"
荒ぶるLoadPerf #2007
xxxxxx サービスのパフォーマンス カウンターを修復できません。LODCTR ツールを使用してパフォーマンス カウンターを手動で再インストールしてください。
ログの名前:Application
ソース:LoadPerf
イベント ID:2007
レベル:警告
fix
安易にコレ行うと、別のエラーが発生するので以下の記事も併せて見てから行うこと。
lodctr
のパラメーター/r
で修復。
lodctr /r
だから安易にやるなと書いたのに…
lodctr /r
を実行すると再構築はしてくれるが、なぜか一部のカウンターが抜けてしまう。
fixは共通なのでまとめる。
?#2001
xxxxxx\Performance キーの "First Counter" 値を読み取れません。ステータス コードはデータで戻されました。
キーはHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xxxxxx\Performance
にあるが、実際にxxxxxxが無かったり*1する。
First Counter
の他、First Help
、Last Counter
、Last Help
も無い可能性がある。
あとレジストリ見ても仕方が無い。
?? #3001
レジストリのパフォーマンス カウンター名文字列の値が正しくフォーマットされていません。問題の文字列は x です。この文字列に対するインデックス値は、データ セクションの最初の DWORD に含まれ、最後の有効なインデックス値は、データ セクションの y 番目と z 番目の DWORD に含まれています。
いや再起動しても同じなんですけど! #3006
カウンターが読み込まれていないか、共有メモリ オブジェクトを開けなかったため、パフォーマンス モニターを初期化できませんでした。これによって影響されるのは、パフォーマンス モニターのカウンターの使用可能性のみです。コンピューターを再起動してください。
々! #3007
カウンターが読み込まれていないか、共有メモリ オブジェクトを開けなかったため、Gatherer オブジェクトのパフォーマンス モニターを初期化できませんでした。これによって影響されるのは、パフォーマンス モニターのカウンターの使用可能性のみです。コンピューターを再起動してください。
コンテキスト: アプリケーション、 SystemIndex カタログ
#3006と#3007はWindows Search
サービス関連。(たぶん#10021も
??? #3011
サービス xxxxxx (xxxxxx) のパフォーマンス カウンターの文字列をアンロードできませんでした。エラー コードがデータ セクションの最初の DWORD に含まれています。
「正しく終了」したのならなんで… #10021
xxxxxx のインスタンス のパフォーマンス カウンター レジストリを取得できませんでした。次のエラーが発生しました: この操作を正しく終了しました。 *x*。
fix
lodctr
でレジストリ値を更新したらだいたい直る。
とりあえずエクスプローラーで%SystemRoot%\INF
に移動する。
*.ini
たくさんあるが、どれでも良いというわけでは無い。*.ini
をテキストエディターなどで開き[info]
セクションに注目する。
例:%SystemRoot%\INF\usbhub\0411\usbperf.ini
or %SystemRoot%\INF\usbhub\0000\usbperf.ini
[info] drivername=usbhub symbolfile=usbperfsym.h (略)
drivername
の値がサービス名で、symbolfile
の値がシンボルファイル。
シンボルファイルが相当の.ini
と同じフォルダに無いとこれからやる作業、意味が無い。usbhubの例では`%SystemRoot%\INF\usbhub
にシンボルファイルのusbperfsym.h
が存在する。どちらかにコピーしておく。
例:
cd %SystemRoot%\INF\usbhub copy ".\0411\usbperf.ini" dir
usbperf.ini
とusbperfsym.h
が一緒になってたらOK。
留意すべき点は、0411
フォルダは日本語なので、コレが無い場合がある。その際は素直に0000
フォルダの.ini
を使おう。英語だがパフォーマンスモニターなんて普段見ないから大丈夫。
また初めから.ini
と.h
が一緒になってる場合はコピー上書きしない。(する必要が無い
あとは
lodctr "usbperf.ini"
する。ものによっては「Perflib の言語キー xxx を開けません」と出るが無視する。
PCを再起動し、エラーが無いかを確認する。例題の通りだとusbhub(usbper)#2001のエラーは無くなってるはず。他のエラーも同じ要領でやればきえるはず。
但し、#3006、#3007は同じ要領でやっても解決出来ないので追記する。UGatherer
とwsearchidxpi
のレジストリ値も更新した上でUGTHRSVC
も追加登録する。
cd %SystemRoot%\INF\UGTHRSVC copy ".\0411\gthrctr.ini" dir lodctr "gthrctr.ini"
参考文献
- lodctr | Microsoft Docs
- How to manually rebuild Performance Counters for Windows Server 2008 64bit or Windows Server 2008 R2 systems
*1:例えばusbperはusbhubなので、キーは実在する。