互換性修正データベースの管理方法と展開

アプリケーションの互換性の問題を軽減するための対策として互換性修正プログラムの利用を決定したら、カスタムの互換性修正データベースの管理方法を決める必要があります。通常、次の 2 とおりの方法が考えられます。

  • アプリケーションのインストール パッケージの一部として互換性修正プログラムを展開する。

  • 集中管理された互換性修正データベースを使って互換性修正プログラムを展開する。

どちらの方法を採用するかに関係なく、カスタムの互換性修正データベースをより適切に管理するために、一般的に次の点が推奨されます。

  • 互換性修正プログラムの適用基準を明確にする

    互換性修正プログラムを使用する基準やシナリオを、ビジネス上またはテクノロジ上の具体的なニーズに基づいて決める必要があります。

  • カスタムの互換性修正データベースの基準を明確にする

    互換性修正プログラムと個々のアプリケーションとの関連付けをどのように行うかを決める必要があります。たとえば、アプリケーションの新しいバージョンには修正が適用されないように、互換性修正プログラムでその都度バージョン確認を実行することなどが考えられます。

  • 問い合わせへの対応や基準の適用に責任を持つリソースを決める

    互換性修正プログラムとカスタムの互換性修正データベースに関連したテクノロジや基準について、最新情報を絶えず把握する担当者を決めます。データベースは長期にわたって管理することになるため、組織内のいずれかの担当者が、関連するテクノロジの最新情報を絶えず把握しておく必要があります。

互換性修正プログラムの展開方法

互換性修正プログラムを組織内に展開する方法は、次の 2 つのうちいずれかをお勧めします。方法:

  • アプリケーションのインストール パッケージの一部として互換性修正プログラムを展開する。

  • 集中管理された互換性修正データベースを使って互換性修正プログラムを展開する。

自分が所属する組織の展開ニーズに最も適した方法を選ぶようにしてください。

アプリケーションのインストール パッケージの一部として修正プログラムを展開する

互換性修正プログラムを展開する 1 つの方法は、エントリを 1 件だけ格納したカスタムの互換性修正データベースを作成し、アプリケーションのインストール パッケージに直接適用することです。展開方法としては最も明快ですが、場合によっては非常に複雑になることがわかっています。特に、修正するアプリケーションの数が多いとその傾向が強くなります。

以下の考慮事項が自分の組織に該当する場合は、この方法ではなく、次のセクションで説明する集中管理された互換性修正データベースを使った方法を検討してください。

  • 互換性修正プログラムを必要とするアプリケーションはいくつあるか

    カスタムの互換性修正データベースは、その名のとおりデータベースです。したがって、修正するアプリケーションが 1,000 個ある場合、1,000 行で構成される 1 つのデータベースを開いて照会するのではなく、1 行で構成される 1,000 個のデータベースを開いて照会するため、時間がかかります。

  • どのコンピューターにどのアプリケーションがインストールされているかを追跡できるか

    最初に用意した一連の互換性修正プログラムでは不十分だった場合、残った問題を解決するために、更新版の互換性修正データベースを展開する必要があります。当初の一連の互換性修正プログラムが、アプリケーションのインストール パッケージを使って展開されていた場合、該当するアプリケーションが実行されているクライアント コンピューターをすべて洗い出して、互換性修正プログラムを置き換える必要があります。

集中管理された互換性修正データベースを介して修正プログラムを展開する

互換性修正プログラムを組織に展開するもう 1 つの方法として、カスタムの互換性修正データベースを 1 つだけ作成して管理する (または組織を大きくいくつかの構成単位に分けて、そのそれぞれを対象にカスタム データベースを作成して管理する) 方法が推奨されています。会社のポリシーを強制的に適用できるほか、アプリケーションの修正が必要であることに後から気付いた場合でも、更新に一貫性を持たせることができます。

この方法は、しっかりした展開インフラストラクチャを備えていて、プロセスの所有権が一元化されている組織に最も適しています。この方法を利用する場合は、あらかじめ次の点を考慮してください。

  • 対象となるすべてのコンピューターに対して互換性修正データベースを展開し更新するために必要なツールが組織に存在するか。

    互換性修正データベースを一元化して集中管理する場合、社内の該当するすべてのコンピューターを対象に展開し、更新するために必要なツールが自分の組織に存在するかどうかを確認する必要があります。

  • 集中管理された互換性修正データベースを管理し更新できる専任のリソースがいるか。

    互換性の問題に対する修正をどのようなプロセスで特定のコンピューターに展開するかという判断に加え、展開プロセス、アプリケーション、データベースの更新を担う適切な所有者を明らかにしておく必要があります。

集中管理された互換性修正データベースを結合する

集中管理された互換性修正データベースによる展開方法を選んだ場合は、個々の互換性修正データベースを結合することができます。カスタムの互換性修正データベースを 1 つ作成し、その単一のデータベースを使って特定の実行可能ファイル (.exe) を探し、Windows(R) による修正を適用する必要があるかどうかを判断することができます。データベースを結合する際は、次の手順に従うことをお勧めします。

カスタムの互換性データベースを結合するには

  1. アプリケーションの互換性をテストする担当者のコンピューターに、最新版の互換性修正データベースが存在することを確認します。たとえば、そのデータベースを Custom DB1 とします。

  2. テスト担当者は、元の互換性修正データベースには含まれていない互換性修正プログラムが別途アプリケーションに必要であると判断した場合、その単一の修正プログラムに必要な情報をすべて格納したカスタムの互換性データベースを新たに作成する必要があります。たとえば、そのデータベースを Custom DB2 とします。

  3. テスト担当者は、新しい Custom DB2 の情報をアプリケーションに適用したうえで、機能と統合の両面からテストを行い、互換性の問題が解消されていることを確認します。

  4. 機能と統合に関して必要なすべてのテストにアプリケーションが合格したら、テスト担当者は、互換性修正データベースを一元管理しているチームに Custom DB2 を送ります。

  5. データベースを一元管理しているチームが Custom DB1 を開き、Custom DB2 に含まれていた新しい互換性修正プログラムを Compatibility Administrator を使って追加します。

    注意

    Custom DB1 には一意の GUID が含まれており、それによってデータベースの更新が円滑に行われるようになっています。たとえば、カスタムの互換性修正データベースの新しいバージョンをインストールするとき、そのデータベースに使われている GUID が以前のバージョンと同じであった場合、古いバージョンが自動的にアンインストールされます。

  6. 次に、データベースを一元管理しているチームが、組織内のすべてのエンド ユーザーに対し、新しいバージョンの Custom DB1 を改めて展開します。

カスタムの互換性修正データベースを展開する

カスタムの互換性修正データベースを組織内に展開するには、次の操作が必要です。

  1. 組織内のすべてのコンピューターがアクセスできる場所にカスタムの互換性修正データベース (.sdb ファイル) を格納する。

  2. Sdbinst.exe コマンド ライン ツールを使って、カスタムの互換性修正データベースをローカルにインストールする。

この 2 つの要件を満たすために、Microsoft では、次の 2 とおりの方法を推奨しています。

  • Windows インストーラー パッケージとカスタム スクリプトを使う

    .sdb ファイルとカスタムの展開スクリプトを .msi ファイルにパッケージして組織内に展開することができます。

    重要

    カスタム スクリプトが呼び出し元のユーザーを偽装しないように指定する必要があります。たとえば、Microsoft(R) Visual Basic(R) Scripting Edition (VBScript) を使っている場合、カスタム動作のタイプは次のようになります。

    msidbCustomActionTypeVBScript + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 0x0006 + 0x0400 + 0x0800 = 0x0C06 = 3078 decimal)
    
  • ネットワーク共有とカスタム スクリプトを使う

.sdb ファイルをネットワーク共有に格納し、指定したコンピューター上のスクリプトを呼び出します。

重要

このスクリプトは、昇格された権限を受け取った時点で呼び出すようにしてください。たとえば、スクリプトの呼び出しには、ユーザー ログオン スクリプトではなく、コンピューター スタートアップ スクリプトを使う必要があります。また、カスタムの互換性修正データベースも、管理者権限でインストールする必要があります。

.msi ファイルを使って .sdb ファイルをインストールするスクリプトの例

次の例では、.msi ファイルを使ってカスタムの互換性修正データベースをインストールします。

'InstallSDB.vbs
Function Install
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "sdbinst.exe -q " & CHR(34) & "%ProgramFiles%\MyOrganizationSDB\MyOrg.sdb" & CHR(34), 0, true
WshShell.Run "cmd.exe /c " & CHR(34) & "del " & CHR(34) & "%ProgramFiles%\MyOrganizationSDB\MyOrg.sdb" & CHR(34) & CHR(34), 0
WshShell.Run "reg.exe delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{guidFromMyOrgsSdb}.sdb /f", 0
End Function


Function UnInstall
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "sdbinst.exe -q -u -g {guidFromMyOrgsSdb}", 0
End Function

初期展開と更新

アプリケーションの互換性の問題に関するテストは、ほとんどの場合、新しい Windows オペレーティング システムを環境に展開する前に行います。そのような事情から、最初に既知の問題をすべて網羅したカスタムの互換性修正データベースを会社のイメージに取り込む方法が一般的となっています。そのうえで、互換性修正データベースを更新するときに、このトピックの「カスタムの互換性修正データベースを展開する」で説明した 2 つのメカニズムのいずれかを利用して最新のデータベースを提供するようにします。

関連項目

他のリソース

アプリケーション互換性修正プログラムとカスタムの修正データベースの管理