レジストリ キーに対する追加の 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 リソース保護