レジストリ キーのその他のWindowsリソース保護

プラットフォーム

クライアント - Windows 7
サーバー - Windows Server 2008 R2

機能の影響

重大度 - 中
頻度 - 低

説明

Windows 7 では、Windows Resource Protection (WRP) 設定が追加され、読み取り専用の設定になります。 追加された保護を受けたリソースの大部分はシステム COM サーバー キーですが、一部の機能ではターゲット リソース保護が追加されています。 Microsoft は、システムと他のアプリケーションが互いに壊れ合うのを防ぎ、アプリケーションを確実に実行できる一貫した安定したプラットフォームを提供するために、これらのリソースを変更しました。 以前は、アプリケーションはカスタム ファイルを提供し、保護されていない COM 登録を使用してシステムを変更できました。 古いアプリケーションの場合、システム ランタイムをダウングレードしたり、他のアプリケーションが正常に動作するために必要なインターフェイスを変更したりできます。 最悪の場合、このようなインストールでは、システムの障害や時間の経過と同時に低下する可能性があります。 より優れたエクスペリエンスとより安定したアプリケーション プラットフォームを提供するために、Microsoft の更新プログラムのみがシステム コンポーネントを変更できるように、これらの登録をロックダウンしました。

変更されたほとんどのリソースはシステムによって使用される COM キーであるため、この変更はほとんどのアプリケーションに影響しません。 ほとんどのアプリケーションでは、これらの変更の結果として Windows 7 のエクスペリエンスが向上すると予想されますが、アプリケーションの小さなサブセットが悪影響を受ける可能性があります。 システムのアプリケーション互換性レイヤーは、保護されたリソースであるために失敗した場合でも、設定の変更に成功したことを常にアプリケーションに伝えることで、セットアップの問題を自動的に解決します。 これにより、アプリケーションのセットアップが中断されるのを防ぎますが、アプリケーションが正常に機能するために設定を変更する必要がある場合は、問題が発生する可能性があります。

症状

アプリケーションは、Windows 7 より前にこれらの設定を変更している可能性があります。 Windows 7 にインストールすると、アプリケーションが予期した内容を設定に反映していないため、特定の機能が機能しなくなる場合があります。

この追加された保護に関連する問題がアプリケーションで発生する可能性があるシナリオは 2 つあります。

  • 現在保護されている設定をデータ ストアとして、またはまれまたは意図しない拡張ポイントとして使用している可能性があるアプリケーション
  • まれに、アプリケーションセットアップを識別するために使用される検出メカニズムが特定のセットアップを認識しないため、アプリケーション互換性軽減レイヤーが適用されない可能性があります

対応策

軽減策の主な手段は、システムのアプリケーション互換性レイヤーです。このレイヤーは、検出されるとアプリケーションセットアップに自動的に適用されます。 アプリケーションのプロパティの [互換性] タブを使用して、任意のアプリケーションに手動で適用することもできます。

このレイヤーは、レジストリ操作をインターセプトすることで問題を解決します。 アプリケーションが読み取り専用 (WRP) 設定を変更しようとしていた場合、設定が実際に変更されていない場合でも、レイヤーは常に成功を返します。 ほとんどのアプリケーションでは、問題は発生しません。 ただし、アプリケーションが正常に機能するためにその設定を変更する必要がある可能性があります。これは、上記の最初のシナリオです。

解決策

上記の 2 つのシナリオについて説明します。

  • アプリケーションがデータ ストアを機能または使用するためにキーを書き込み可能にする必要がある場合は、アプリケーションを変更して、その場所に書き込まないようにする以外の解決策はありません。
  • 互換性レイヤーがセットアップに適用されていない場合は、セットアップエラーを検出し、適用して再実行するように提供する必要があります。 アプリケーションは互換モードで実行することもできます。その場合、軽減レイヤーは常に適用されます。

互換性テスト

アプリケーションに WRP 軽減策が適用されているかどうかを検出する方法:

  • Windowsインストーラーは WRP を認識します。保護されたリソースの書き込みまたは変更の試行は自動的に無視され、自動的に無視されます。 Windows インストーラーでアプリケーションがインストールされ、ログ記録が有効になっている場合、WRP で保護されたリソースであるために無視されたレジストリ キーの書き込み操作ごとに警告が記録されます。
  • WRP API には SfCIsKeyProtected が組み込まれており、レジストリ キーが現在のシステムで WRP で保護されているかどうかを照会できます。 この API の使用に関する詳細については、以下のリンクにある MSDN の WRP エントリを参照してください。

リソース保護のWindows