Windows 7: PerfMon システムとセキュリティ テスト
信頼性とパフォーマンス モニター (PerfMon) でウイルス対策製品がインストールされていないという誤った警告メッセージが表示される場合、正確な情報が報告されるように調整できます。
Fisnik Hasani
信頼性とパフォーマンス モニター (PerfMon) は、Windows Vista で導入されました。これは、非常に便利な新しい Microsoft 管理コンソール (MMC) スナップイン コンポーネントの 1 つです。信頼性とパフォーマンス モニターは、Windows 7 でも引き続き採用されており、わずかに変更されていますが、主要機能は同じです。
Microsoft Answers フォーラムの担当期間中、PerfMon の正常性のレポート生成プログラムの問題について数多くの投稿がありました。特に多かったのは、セキュリティ センターでウイルス対策製品が記録されていないというレポートが生成される問題です。この記事では、この問題について分析および説明し、解決策を提示します。
PerfMon システムの正常性のレポート
PerfMon では、次のような多くのシステム情報を収集し、包括的なシステムの正常性のレポートを生成します (図 1 参照)。
- ソフトウェア構成: OS、セキュリティ センター、システム サービス、およびスタートアップ プログラムのデータのチェック
- ハードウェア構成: ディスク、システム、デスクトップ評価 (Windows エクスペリエンス インデックス)、BIOS、デバイス、対話型セッション プロセス、ログオン ユーザー、およびユーザー アカウントのチェック
- CPU: プロセッサ、CPU ユニットの種類、CPU の割り込み、サービス、およびシステムに関するチェックや情報など
- ネットワーク: 送受信トラフィック、TCP バージョン、インターフェイス、IP、およびユーザー データグラム プロトコル (UDP) に関するチェックや情報など
- ディスク: ホット ファイル (最もディスク I/O を発生させるファイル)、ディスクの詳細、物理ディスク、および NTFS のパフォーマンスに関するチェックや情報など
- メモリ: プロセスおよびカウンターに関するチェックや情報など
図 1 Windows 7 の信頼性とパフォーマンス モニターによるデータ収集およびレポート生成
PerfMon では、収集した情報をまとめ、チェックして、レポートを生成します。その後、ユーザーはレポートを分析し、システムに問題があるかどうかを判断できます。問題がある場合は、考えられる解決策が提示されます。こうした組み込みのツールは、長期的に役立ちます。セキュリティ センターでウイルス対策製品が記録されているかどうかに特に注意してください。
レポートには、誤解を生むことのある小さな問題があります (これは、一般的に発生する問題でもあります)。Windows 7 のアクション センターでは、ウイルス対策製品が検出され、最新の状態であると報告されるのに対し、PerfMon の正常性のレポートでは、セキュリティ センターでウイルス対策製品が記録されていないと報告されることがあります (図 2 参照)。
図 2 セキュリティ センターでウイルス対策製品が記録されていないと報告する PerfMon の正常性のレポート
この矛盾はどのように起こるのでしょう。これには 2 つの要因があり、どちらも簡単に説明することが可能で、PerfMon がセキュリティ センターのデータを収集する方法に関係があります。
PerfMon では、Windows Management Instrumentation (WMI) と一部のレジストリのデータを利用して、システムの情報を収集します。ただし、誤った WMI ルート パスをチェックすることがあり、それが原因で、セキュリティ センターでウイルス対策製品が記録されていないと報告されることがあります。
Windows Vista と Windows 7 には、2 つの利用可能な WMI ルート パスがあります。Windows 7 の Windows セキュリティ センター (実際には、アクション センターと改名されていますが) で変更された一部の API が、WMI のクエリとルート パスに影響しています。
以前の WMI ルート パス (Windows XP の場合) は次のとおりです。
\\<ホスト名>\ROOT\SecurityCenter:AntiVirusProduct
新しい WMI ルート パスは次のとおりです。
\\<ホスト名>\ROOT\SecurityCenter2:AntiVirusProduct
PerfMon が Windows Vista および Windows 7 で誤った WMI ルート パスをチェックした場合、プログラム コードで例外が発生したり、オブジェクトのプロパティ値が NULL になったりすることがあります。その結果、PerfMon では、セキュリティ センターでウイルス対策製品が記録されていないと報告します。
これを確認する簡単な方法は、なんらかの C# コードおよび Microsoft .NET Framework の System.Management 名前空間を参照することです。この名前空間には、WMI にアクセスするのに便利ないくつかのクラスが用意されています。2 つの WMI ルート パスからチェックするパスを選択できると、状況がわかりやすくなります。また、PerfMon の正常性のレポートで、誤った情報が報告される原因もわかるでしょう。
2 つ目の要因について説明する前に、ROOT\SecurityCenter と ROOT\SecurityCenter2 に格納されているウイルス対策製品のデータを表示する 2 つの異なるプロパティ ダイアログ ボックスを示します (図 3 参照)。
図 3 1 つ目のウイルス対策製品のプロパティ ダイアログ ボックスには、以前の WMI ルート パスに格納されているプロパティが表示されます
ウイルス対策製品の問題
2 つ目の要因は、PerfMon が誤った WMI ルート パスをチェックすることに起因するものではありません。サードパーティ製のウイルス対策製品とマイクロソフト製のウイルス対策製品の両方に関連します。多くのウイルス対策製品は、ウイルス対策製品に関する詳細情報を格納するのに WMI を使用しませんが、中には使用するものもあります。
セキュリティ センターの API が変更されたため、多くのウイルス対策サービスを提供している企業が WMI データを新しいパスに格納するようになりました。WMI データを両方のパスに格納している場合は、"セキュリティ センターでウイルス対策製品が記録されていません" という誤ったエラー メッセージが表示されることを回避できるので、状況はさらに改善します。
この問題は比較的簡単に解決できます。しかし、対応しなければならないことが 2 つあります。1 つ目の解決策は、ウイルス対策サービスを提供しているマイクロソフト以外の企業に、新しい WMI ルート パスだけに情報を書き込むように依頼することです。2 つ目の解決策は、マイクロソフトにフィードバックを送信して、以前の WMI ルートパスを削除し、%SYSTEMROOT%\System32 ディレクトリにある古い perfmon.exe を上書きする Windows 用の修正プログラムを配布するように依頼することです。
その他にも、考えられる解決策があります。ウイルス対策サービスを提供している企業が両方の WMI ルート パスにデータを格納することで、PerfMon の正常性のレポートで誤った情報が報告される問題を回避できます (図 4 参照)。
図 4 以前の WMI ルート パス (1 つ目) と新しい WMI ルート パス (2 つ目)
新たに作成したオブジェクトを以前の WMI ルート パスに格納すると、PerfMon の正常性のレポートで誤った報告は表示されなくなり (図 5 参照)、問題は解決します。
図 5 以前の WMI ルート パスに新しいオブジェクトを作成すると、PerfMon では情報が検出され、状況が正確に報告されるようになります
ご覧のとおり、これは単純な問題ですが、解決するのは複雑な場合があります。ユーザーが、以前の WMI ルート パスに、手動でオブジェクトを作成することも可能ですが、それには、ユーザーのコンピューターのスキルが高く、Windows について熟知している必要があります。また、ウイルス対策サービスを提供している企業に、両方の WMI ルート パスを使用するようにソフトウェアを変更してもらうように依頼する必要もあります。
Fisnik Hasani は、IT プロフェッショナル向けのリソースである ITknowledge24.com (英語) の創設者で、2011 年の Microsoft MVP (Consumer Security、Microsoft Community Contributor) です。彼の Web サイトのアドレスは itknowledge24.com (英語) で、Twitter は Twitter.com/ITknowledge24 (英語) でフォローできます。