次の方法で共有


レジストリ キーに対する追加の Windows リソース保護

プラットフォーム

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

機能への影響

重大度: 中
頻度 - 低

説明

追加のシステム リソースにより、Windows 7 に Windows リソース保護 (WRP) 設定が追加され、読み取り専用設定になりました。 追加の保護を受けたリソースの大部分はシステム COM サーバー キーですが、一部の機能では対象を絞ったリソース保護が追加されています。 Microsoft がこれらのリソースを変更したのは、システムと他のアプリケーションが互いに干渉する状況を防ぎ、アプリケーションを確実に実行できる一貫性のある安定したプラットフォームを提供するためです。 以前は、アプリケーションがカスタム ファイルを提供し、保護されていない COM 登録を使用してシステムを変更することも可能でした。 古いアプリケーションでは、これによってシステム ランタイムのダウングレードが生じたり、他のアプリケーションが適切に動作するために必要なインターフェイスが変更されたりする可能性があります。 長期的には、最悪の場合、このようなインストールによりシステム障害や劣化が発生する可能性があります。 さらに優れたエクスペリエンスと安定したアプリケーション プラットフォームを提供するために、これらの登録はロックダウンされ、Microsoft の更新プログラムのみがシステム コンポーネントを変更できるようになりました。

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

マニフェスト

Windows 7 より前に、アプリケーションによってこれらの設定が変更されている可能性があります。 Windows 7 にインストールした場合、アプリケーションの一部の機能が動作しなくなる場合があります。これは、アプリケーションが想定した内容が設定に反映されていないためです。

追加の保護に関連する問題がアプリケーション生じる可能性があるシナリオは、次の 2 つです。

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

対応策

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

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

解決策

さきほど説明した 2 つのシナリオについて:

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

互換性テスト

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

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