パフォーマンスカウンタのエラー


パフォーマンスカウンタを起動するとエラーが発生します

Windows 10用に記事を書き直しました。パフォーマンスカウンターのエラーを参照してください。Windows Vista, Windows XPは以下の記事を参照してください。

Windows ログに次のようなイベントが書き込まれます

  • イベント 3001, LoadPerf
    レジストリのパフォーマンス カウンタ名文字列の値が正しくフォーマットされていません。問題の文字列は n です。この文字列に対するインデックス値は、データ セクションの最初の DWORD に含まれ、最後の有効なインデックス値は、データ セクションの n 番目と n+1 番目の DWORD に含まれています。
  • イベント 3006, Search
    カウンタが読み込まれていないか、共有メモリ オブジェクトを開けなかったため、パフォーマンス モニタを初期化できませんでした。これによって影響されるのは、パフォーマンス モニタのカウンタの使用可能性のみです。コンピュータを再起動してください。
  • イベント 3006, Search
    カウンタが読み込まれていないか、共有メモリ オブジェクトを開けなかったため、Gatherer オブジェクトのパフォーマンス モニタを初期化できませんでした。これによって影響されるのは、パフォーマンス モニタのカウンタの使用可能性のみです。コンピュータを再起動してください。コンテキスト: アプリケーション、 SystemIndex カタログ
  • イベント 10021, Search
    WSearchIdxPi のインスタンス のパフォーマンス カウンタ レジストリを取得できませんでした。次のエラーが発生しました: この操作を正しく終了しました。 0x0。
  • イベント 8317, MSSQL$SQLEXPRESSレジストリ キー ‘HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS\Performance’ に関連付けられている値 ‘First Counter’ をクエリできません。SQL Server パフォーマンス カウンタが無効です。
  • イベント 3009, LoadPerf
    サービス .NETFramework () のパフォーマンス カウンターの文字列をインストールできませんでした。エラー コードがデータ セクションの最初の DWORD に含まれています。
  • イベント 2007, LoadPerf
    .NETFramework サービスのパフォーマンス カウンターを修復できません。LODCTR ツールを使用してパフォーマンス カウンターを手動で再インストールしてください。

イベント 3001, LoadPerf について n は1846の場合が多いようです。

イベント 3009, LoadPerf のサービスについて .NET CLR Data, .NET CLR Networking, .NET Data Provider for Oracle, .NET Data Provider for SqlServer, aspnet_state, Remote Access, UGHTRSVC, usbhub, WSearch, WSearchIdxPi, WSService においても同様のメッセージが書き込まれることがあります。

  • イベント 2001, usbperf
    usbperf\Performance キーの “First Counter” 値を読み取れません。ステータス コードはデータで戻されました。
  • イベント 1008, perflib
    サービス “RemoteAccess” (DLL “C:\Windows\System32\rasctrs.dll”) の Open プロシージャに失敗しました。このサービスのパフォーマンス データは利用できません。データ セクションの最初の 4 バイト (DWORD) に、エラー コードが含まれています。
  • イベント 2001, perflib
    サービス “W3SVC” (DLL “C:\WINDOWS\system32\inetsrv\w3ctrs.dll”) の Open プロシージャに失敗しました。このサービスのパフォーマンス データは利用できません。データ セクションの最初の 4 バイト (DWORD) に、エラー コードが含まれています。
  • イベント 2002, IIS-W3SVC-PerfCounters
    Web サービス カウンターの設定に失敗しました。Web サービス カウンターが正しく登録されていません。

イベント 1008, perflib に関しては、ほかに aspnet_state, ASP.NET_4.0.30319, ASP.NET, .NETFramework も同様のエラーが発生する場合があります。

  • lodctr /R を実行すると エラー 2 が発生します。
  • lodctr /R を実行すると 「パフォーマンス カウンターの設定をシステムのバックアップストアから再構築できませんでした。エラーコードは 5 です。」と表示される。エラー 80078005 が発生します。
  • perfmon /report でエラー:レポートを作成する際に、エラーが発生します。
    アクセスが拒否されました。
  • Windows 8.1 で perfmon /report を実行すると「レポートを作成しようとしてエラーが発生しました。 オペレーターまたは管理者が要求を拒否しました。」 The operator or administrator has refused the request.
    この件については Event 513, CAPI2 の記事を参照してください。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\(Service name)\Performance に First Counter, First Help, Last Counter, Last Help の値が存在しない、または正しく設定されていない場合に発生します[修正]


Vista 以降のバージョン

%SystemRoot%\Inf のサブフォルダーの .ini ファイル, (.h ファイル) を確認します。

Perflib Event ID 1008 1001 1023 2001 on .net asp bits dns esent usbperf(en)に詳しい情報がありますので一度確認してみてください。

.NET CLR Data, WmiApRpl などのフォルダーには 0000, 0409, 0411 または 0000, 0009, 0011 といったフォルダーにそれぞれiniファイルが含まれます。このファイルが欠落しているまたは正しいファイルが配置されていないなどの理由でエラーが発生します(特にイベント 3009, LoadPerf)。

ファイルの末尾が _d.ini のファイルは 親フォルダーの ini ファイルを参照しています。ほとんどの場合 サイズが 1KByte 以下です。そしてファイルの日時が異なりますが同じ内容となっています。

Vista 以降のバージョンでは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\(name)\PerformanceキーのPerfInFileにパフォーマンスカウンタに使用する.iniファイル名の記載があります。

sfc /scannow を実行します。OS に 付属していないバージョンの .NET Framework をインストールした場合は そのバージョンの .NET Framework を 修復します。依然としてエラーが発生する場合は 手動で以下の作業を行います。

インストールディスク、または %SystemRoot%\Winsxs フォルダーからこのファイルをコピーします。OSに組み込まれている場合(Windows Module Installer, Dismを利用してインストール)、TrustedInstaller にフルコントロール、SYSTEM, Administrators, Users, (ALL APPLICATION PACKAGES) に 読み取りと実行 の権限が与えられています。後からインストールしたもの(Windows Installer)は 親フォルダーから 継承 (SYSTEM, Administrators に フルコントロール、Users, (ALL APPLICATION PACKAGES) に 読み取りと実行) されています。TrustedInstallerのみに フルコントロール 権限が与えられている場合は 一時的に Administrators にフルコントロールを与えるなどアクセス権を変更する必要があります。この場合コマンドプロンプト(管理者)を実行します。
(Windows10/Windows8/8.1cacls (file) /S:”D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)(A;;0x1200a9;;;AC)”(Windows10/Windows8)
(Windows 7/Windows Vista)cacls (file) /S:”D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)” を実行してアクセス権を修正します。

_none は 0000, _en-us は 0409 or 0009, _ja-jp は 0411 or 0011 の対応となります。

  • 000=Neutral
  • 001=Arabic
  • 005=Czech
  • 006=Danish
  • 007=German
  • 008=Greek
  • 009=English
  • 00A=Spanish
  • 00B=Finnish
  • 00C=French
  • 00D=Hebrew
  • 00E=Hungarian
  • 010=Italian
  • 011=Japanese
  • 012=Korean
  • 013=Dutch
  • 014=Norwegian
  • 015=Polish
  • 019=Russian
  • 01D=Swedish
  • 01F=Turkish
  • 804=Chinese (PRC)
  • 404=Chinese (Taiwan)
  • 416=Portuguese (Brazil)
  • 816=Portuguese (Portugal)

ロケール ID (LCID) の一覧

フォルダーの中に ファイルが存在しない、空のフォルダーが存在すると lodctr /R を実行したときに First Counter, First Help, Last Counter, Last Help の値が正しく設定されず消去されてしまいます。空のフォルダーを削除してから実行してください。使用している言語以外の対応するフォルダーを削除します。

再び sfc /scannow を実行します。エラーが発生する場合は以下の操作を行います。

Vista 以降のバージョン
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UGatherer\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiApRpl\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\Performance

First Counter, First Help, Last Counter, Last Help (REG_DWORD) を追加します。値は 0 で問題ありません。

lodctr /R を コマンドプロンプトから実行します。「情報: パフォーマンス カウンタの設定をシステムのバックアップ ストアから正常に再構築しました」が表示されます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\Performance のFirst Counter, First Help, Last Counter, Last Help の値を確認します。

Windows XPなどVistaより以前のバージョン

lodctr /R:PerfStringBackup.ini を実行します。
Windows XP には Performance キーに PerfIniFile が含まれません。また lodctr /R で再構築することができません。Vista 以降のバージョンのレジストリ情報を元に、lodctr xxxx.ini を実行して First Counter, First Help, Last Counter, Last Help の値を修正します。
主なファイルの一覧です。Performance キーにはファイルのみで、フォルダは含まれません。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.NET CLR Data\Performance, _DataPerfCounters.ini
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.NET CLR Networking\Performance, _Networkingperfcounters.ini
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.NET CLR Networking 4.0.0.0\Performance, _Networkingperfcounters.ini
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiApRpl\Performance, %systemroot%\inf\WmiApRpl\WmiApRpl.ini

パフォーマンス カウンター ライブラリの値を手動で再構築する方法http://support.microsoft.com/kb/300956/

最初のカウンター(First Counter), 最初のヘルプ(First Help), 最後のカウンター(Last Counter), 最後のヘルプ(Last Help)の値を削除します。以下の手順に従ってこの値を修正します。


%systemroot%\system32\perf*dat, prf*.dat のアクセス権を修正します。[追加]

  • takeown /F %systemroot%\system32\perf*.dat /A
  • takeown /F %systemroot%\system32\prf*.dat /A
  • icacls %systemroot%\system32\perf*.dat /grant SYSTEM:(F)
  • icacls %systemroot%\system32\perf*.dat /grant Administrators:(F)
  • icacls %systemroot%\system32\perf*.dat /grant Users:(RX)
  • icacls %systemroot%\system32\prf*.dat /grant SYSTEM:(F)
  • icacls %systemroot%\system32\prf*.dat /grant Administrators:(F)
  • icacls %systemroot%\system32\prf*.dat /grant Users:(RX)

perfc009.dat, perfc011.dat などのファイルが含まれます。

lodctr /R

「情報: パフォーマンス カウンタの設定をシステムのバックアップ ストアから正常に再構築しました」と表示されるか確認します。

または インストールディスクから ファイルをコピーします。


フォルダーのアクセス権を確認し、修正します。

  • icacls %systemdrive%\PerfLogs\* /grant SYSTEM:(F)
  • icacls %systemdrive%\PerfLogs\* /grant Administrators:(F)
  • icacls %systemdrive%\PerfLogs\* /grant “Performance Log Users”:(OI)(RX,WD,AD)
  • icacls %systemdrive%\PerfLogs\* /grant Users:(F)

%systemroot%\PLA\ のACLを継承させます。

  1. Explorer で %systemroot%\PLA\System\ に NT Service\pla をアクセス許可の変更、所有者の変更を除く 権限 を「サブフォルダとファイルのみ」を指定して追加します。
  2. %systemroot%\PLA\System フォルダのLAN Diagnostics.xml, System Diagnostics.xml, System Performance.xml, Wireless Diagnostics.xml にそれぞれ Performance Log Users を追加します。
    icacls %systemroot%\PLA\System\*.xml /grant Performance Log Users:(RX)

%systemroot%\PLA\System フォルダのxmlファイルのアクセス権限が、信頼性とパフォーマンスモニタの「データコレクタセット」-「システム」の各項目の「プロパティ」-「セキュリティ」タブに表示されます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services のサブキー に Disable Performance Counters が含まれる場合は、値を0に設定するか、この値を削除します。


RAC Agent

継承したアクセス権以外に次の権限を追加します。

  1. icacls %programdata%\Microsoft\RAC\PublishedData\* /grant “LOCAL SERVICE:(M)
  2. icacls %programdata%\Microsoft\RAC\StateData\* /grant “LOCAL SERVICE:(M)

このエラーによるシステムへの影響

正しく構成されていないと システムが不安定になったり、OSの動作が遅くなったりします。単に パフォーマンスカウンタのエラー だけでなく、Windows Update でシステムファイルが更新されないなどの不具合につながるおそれがあります。

投稿日: 2012年7月11日 カテゴリー: Windows settings タグ: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | パーマリンク コメントする.

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください