パフォーマンス カウンター ライブラリの値を手動で再構築する

この記事では、パフォーマンス カウンター ライブラリの値を手動で再構築する方法について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 300956

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

システム モニター ツールを使用すると、一部のカウンターが見つからないか、カウンター データが含まれていない可能性があります。 パフォーマンス カウンター ライブラリの基本セットが破損し、再構築が必要になる場合があります。 さらに、カスタム (Microsoft .NET Framework アプリケーションで作成された) カウンターまたは拡張可能なカウンターを再構築する必要がある場合があります。

この動作は、次の状況で発生する可能性があります。

  • 特定の拡張可能なカウンターによってレジストリが破損します。
  • 一部の Windows Management Instrumentation (WMI) ベースのプログラムでは、レジストリが変更されます。

基本パフォーマンス カウンターを再構築する

拡張可能なカウンター情報は、次の両方の場所に格納されます。

  • レジストリ サブキー: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009

  • %Systemroot%\System32\Perfc009.datファイルと%Systemroot%\System32\Perfh009.datファイル。

基本パフォーマンス カウンター ライブラリを手動で再構築するには、次の手順に従います。

  1. Perfc009.dat ファイルとPerfh009.dat ファイルを展開します。 これらのファイルは、Windows インストール ディスクにあります。圧縮されたファイルは、 と にありますDriveLetter:\i386\perfc009.da_DriveLetter:\i386\perfh009.da_。 フォルダー内のファイルを %Systemroot%\System32 置き換えます。

  2. レジストリ エディターを起動し、レジストリで次のキーを見つけます。
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. レジストリで、[ 最後のカウンター ] の値を 1846 (10 進数) に変更し、[ 最後のヘルプ ] の値を 1847 (10 進数) に変更します。

  4. パフォーマンス サブキーを持つサービスを検索するには、次のレジストリ キーを見つけます。
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. パフォーマンス サブキーから次の値を削除します (存在する場合)。

    • 最初のカウンター
    • 最初のヘルプ
    • 最後のカウンター
    • 最後のヘルプ

    また、Exctrlst.exe ツールを使用して、インストールされているパフォーマンス カウンターのダイナミック リンク ライブラリ ファイル (DLL) を見つけることもできます。 次に、レジストリにアクセスして DWORD 値を削除します。 これで、システム ベース カウンターのみを含む実行可能なパフォーマンス レジストリが作成されました。

    注:

    レジストリの Performance サブキーから値を削除すると、インストールされている.NET Frameworkアプリケーションが次回起動した時点で動作しなくなる可能性があります。 これが発生した場合は、「拡張カウンターをlodctr /R再追加する」セクションのコマンドを使用して、パフォーマンス カウンターを再構築します。 .NET Framework アプリケーションの起動時に引き続き問題が発生する場合は、この記事の「カスタム .NET Framework アセンブリ パフォーマンス カウンターを再インストールする」セクションを参照してください。

拡張可能カウンターを再追加する

サービスの一覧から拡張可能カウンターを再度追加する必要があります。 これを行う前に、カウンターの読み込みに使用する .ini ファイルを特定する必要があります。

  1. コマンド プロンプト ウィンドウを開きます。

  2. コマンド プロンプトで、「」と入力 cd %Systemroot%\System32し、Enter キーを押します。

  3. コマンド プロンプトで、「」と入力 findstr drivername *.iniし、Enter キーを押します。

  4. 一覧内のドライバー名ごとに、.ini ファイルの名前をメモします。

  5. コマンド プロンプトでコマンドを lodctr <inifile> 入力し、Enter キーを押します。

    注:

    このコマンドでは、inifile> は、<再読み込みするドライバーの .ini ファイルの名前を表します。

    たとえば、ASP ドライバーを再読み込みする場合は、手順 4 で説明した一覧に、Axperf.ini が ASP ドライバー (axperf.ini:drivername=ASP) の .ini ファイルであることが示されます。 ASP ドライバーを再読み込みするには、コマンド プロンプトで「」と入力 lodctr axperf.ini し、Enter キーを押します。

  6. 一覧内の各 .ini ファイルに対して手順 5 を繰り返します。

  7. コンピューターを再起動します。

Windows Server で拡張可能なカウンターとサード パーティ製カウンターを含むすべてのパフォーマンス カウンターを再構築するには、コマンド プロンプトで次のコマンドを入力します。 各コマンドの後で Enter キーを押します。

cd \windows\system32
lodctr /R

注:

  • /R は大文字です。 このコマンドを正常に実行するには、コンピューターに管理者権限が必要です。
  • Windows の 32 ビット エディションを実行しているコンピューターでは、コマンドは、 Lodctr /R:<filename> ファイル名を使用してパフォーマンス カウンター レジストリ文字列と情報を復元する標準的な方法です。

Windows Server は、英語オペレーティング システムのフォルダー内のすべての .ini ファイルを読み取るため、 C:\Windows\inf\009 すべてのカウンターを再構築します。

注:

  • クラスターまたはデータセンター製品を実行している場合は、ノードをフェールオーバーしてカウンター リストを更新する必要があります。 これを行うには、「基本 カウンターと拡張可能カウンターの両方の拡張可能カウンターを再追加する 」の手順を実行する必要があります。
  • Exchange や SQL Server など、独自のパフォーマンス カウンターを追加するアプリケーションを実行しているシステムでは、パフォーマンス カウンターの読み込みに使用される .ini ファイルが に%Systemroot%\System32配置されていない可能性があります。 これらの .ini ファイルは、通常、applications フォルダー構造の下にあります。
  • 前の手順を使用するときにパフォーマンス ライブラリに関するエラー メッセージが表示される場合は、IIS パフォーマンス ダイナミック リンク ライブラリ (DLL) のアンロードと再読み込みが必要になる場合があります。
  • .NET Framework アプリケーションの起動時に引き続き問題が発生する場合は、「カスタム .NET Framework アセンブリ パフォーマンス カウンターを再インストールする」セクションを参照してください。

カスタム .NET Framework アセンブリ パフォーマンス カウンターを再インストールする

ここに記載されている手順を実行した後、.NET Framework アプリケーションを起動するときに問題が引き続き発生する場合は、カスタム .NET Framework アプリケーションのパフォーマンス カウンターを再構築する必要があります。 これを行うには、.NET Framework インストーラー ツール (Installutil.exe) のオプションを使用/iします。 パフォーマンス カウンターを作成する DLL ファイルのファイル名を知っている必要があります。

これらの手順に従って、Microsoft System Center Operations Manager 2007 がインストールされているシステムにインストールされているすべてのサービスのカウンターをレジストリから削除すると、破損した管理サーバーが発生する可能性があります。 Config Service、SDK Service、およびデータベース書き込みモジュールのカウンターは、INI ファイル内の拡張可能なカウンターの形式では提供されません。 代わりに、インストール時に登録されます。 そのため、System Center Operations Manager 2007 を起動しようとすると、パフォーマンス カウンターがないため、次の例のようなエラー メッセージが表示されることがあります。

Event Type: Error  
Event Source: OpsMgr SDK Service  
Event Category: None  
Event ID: 26380  
Date: date  
Time: time  
User: N/A  
Computer: MOM  
Description: The System Center Operations Manager SDK Service failed due to an unhandled exception.

System Center Operations Manager 2007 でこの問題を解決するには、パフォーマンス カウンターを作成した.NET Framework アセンブリを再インストールする必要があります。 これを行うには、.NET Framework インストーラー ツール (Installutil.exe) のオプションを使用/iして、次のアセンブリを再インストールします。

  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

たとえば、コマンド プロンプトで次のコマンドを入力し、各コマンドの後で Enter キーを押します。

InstallUtil /i Microsoft.Mom.ConfigService.dll
InstallUtil /i Microsoft.Mom.Sdk.ServiceDataLayer.dll
InstallUtil /i Microsoft.Mom.DatabaseWriteModules.dll
InstallUtil /i Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

注:

これらのコマンドを正常に実行するには、コンピューターに管理者権限が必要です。