インストール ソースの管理

管理者特権を持つユーザーとアプリケーションは、システム上のWindowsインストーラー アプリケーションとパッチのネットワーク、URL、およびメディア ソース リスト情報を取得および変更できます。

Windows インストーラー 2.0: サポートされていません。 管理者は、ソース リスト内のエントリの読み取り、並べ替え、または置換を行うことはできません。また、ソース リストのプロパティを変更または取得することはできません。 ネットワーク ソースは管理できますが、URL やメディア ソースは管理できません。 管理者は、コンピューターごとのアプリケーションまたは現在のユーザーのユーザーごとにインストールされているアプリケーションのソース リストのみを管理できます。 これにより、Windows インストーラー バージョン 3.0 より前のバージョンを使用している管理者は、システム内のすべてのユーザーのソース リスト情報を管理できなくなります。

Windows インストーラー 3.0 以降: 管理者特権を持つユーザーとアプリケーションは、すべてのユーザーに対してシステムにインストールされている Windows インストーラー アプリケーションとパッチのソース リスト情報を取得および変更できます。 ソース リスト関数を使用して、ネットワーク、URL、およびメディア ソースのソース リストとソース リストプロパティを管理できます。 インストーラーは、外部プロセスからソース リストを並べ替えることができます。

管理特権を持つユーザーとアプリケーションは、次の種類のソース リスト情報を読み取って変更できます。

  • システム上のすべてのユーザーにインストールされているアプリケーションとパッチのソース リスト。
  • アプリケーション ソースとは別に存在するパッチ ソースのソース リスト。
  • ネットワーク ソースとは別に存在する URL およびメディア ソースのソース リスト。
  • MEDIAPACKAGEPATHDiskPromptLastUsedSource、LastUsedTypePackageName などのソース リスト プロパティ。

ソース リスト関数では、インストール コンテキストとユーザー コンテキストを指定することで、検出されたソース リストのスコープを制限できます。 インストール コンテキストとして考えられるのは、ユーザーごと (アンマネージド)、マシンごと、ユーザーごとのマネージドの 3 種類です。 ユーザー コンテキストには、システム上の特定のユーザーまたはすべてのユーザーを指定できます。

管理者以外のユーザーは、別のユーザーごとの (マネージドまたはアンマネージド) コンテキストの下に存在するアプリケーションまたはパッチのインスタンスのソース リストを変更できません。 管理者以外のユーザーは、次のコンテキストでインストールされているアプリケーションまたはパッチのインスタンスのソース リストを変更できます。

  • ユーザーごとの独自の (アンマネージド) コンテキスト。
  • マシン コンテキストですが、 DisableBrowseAllowLockdownBrowse、および AlwaysInstallElevated ポリシーでアプリケーションまたはパッチ ソースを参照できる場合のみです。
  • ユーザーごとの独自のマネージド コンテキストですが、 DisableBrowseAllowLockdownBrowse、および AlwaysInstallElevated ポリシーでアプリケーションまたはパッチ ソースを参照できる場合のみです。

管理者は、管理者以外が変更できる任意のソース リストを変更できます。 さらに、管理者特権を持つ管理者とアプリケーションは、次のコンテキストでインストールされているアプリケーションまたはパッチのソース リストを変更できます。

  • マシンごとのコンテキスト。
  • ユーザーごとの独自の (アンマネージド) または独自のユーザーごとのマネージド コンテキスト。
  • 別のユーザーのユーザーごとのマネージド コンテキスト。

注意

管理者特権を持つユーザーとアプリケーションは、別のユーザーのユーザーごとの (アンマネージド) コンテキストにインストールされているアプリケーションまたはパッチのインスタンスのソース リストを変更できません。

 

製品とパッチのネットワークおよび URL ソースの管理

MsiSourceListAddSourceEx 関数を使用して、特定のコンテキストでパッチまたはアプリケーションのネットワーク ソースと URL ソースのソース リストを追加または並べ替えます。 dwContext パラメーターを使用して、インストール コンテキストを指定します。 szUserSid パラメーターを使用して、ユーザー コンテキストを指定します。

MsiSourceListAddSourceEx 関数を使用して、指定したコンテキスト内のアプリケーションにまだ適用されていないパッチのソース リストを作成します。 これは、管理者特権を持つパッチを登録する場合に役立ちます。 更新プログラムの管理者特権の登録の詳細については、「 マネージド アプリケーションPer-User修正プログラムを適用する」を参照してください。

MsiSourceListClearSource 関数を使用して、指定したコンテキストでアプリケーションまたはパッチの既存のソースを削除します。 アプリケーションまたはパッチの現在のソースを削除すると、インストーラーは、次にソースが必要な場合にソースの一覧を検索するように強制されます。

MsiSourceListEnumSources 関数を使用して、指定したパッチまたはアプリケーションのソース リスト内のソースを列挙します。

製品とパッチのメディア ソースの管理

MsiSourceListAddMediaDisk 関数を使用して、登録済みのアプリケーションまたはパッチのメディア ソースのディスク情報を追加または更新します。 各エントリは、ディスク ID によって一意に識別されます。 ディスクが既に存在する場合は、新しいボリューム ラベルとディスク プロンプト値で更新されます。 ディスクが存在しない場合は、新しい値を使用して新しいディスク エントリが作成されます。

MsiSourceListClearMediaDisk 関数を使用して、特定のコンテキストでアプリケーションまたはパッチのメディア ソースの下にある既存の登録済みディスクを削除します。

MsiSourceListEnumMediaDisks 関数を使用して、アプリケーションまたはパッチのメディア ソースに登録されているディスクの一覧を列挙します。

ソース リスト情報の取得と変更

MsiSourceListGetInfo 関数と MsiSourceListSetInfo 関数を使用して、特定のコンテキストでアプリケーションまたはパッチのソース リストに関する情報を取得または変更します。 dwContext パラメーターを使用して、インストール コンテキストを指定します。 szUserSid パラメーターを使用して、ユーザー コンテキストを指定します。

MEDIAPACKAGEPATHDiskPromptLastUsedSource、LastUsedTypePackageName などのソース リスト プロパティアクセスできます。

注意

LastUsedType ソース リスト プロパティは、読み取り専用です。 MsiSourceListSetInfo 関数を使用して直接設定することはできません。

 

完全なソース リストをクリアするか、ソース解決を強制する

MsiSourceListClearAllEx 関数を使用して、指定したアプリケーションまたはパッチ インスタンスの特定のソースの種類のすべての既存のソースを削除します。 パッチが同じコンテキストでアプリケーションによってインストールされていない場合、パッチの登録も削除されます。 dwContext パラメーターを使用して、インストール コンテキストを指定します。 szUserSid パラメーターを使用して、ユーザー コンテキストを指定します。

MsiSourceListForceResolutionEx を使用して、指定したコンテキストでアプリケーションまたはパッチで最後に使用したソース エントリをクリアします。 この関数は、 LastUsedSource というプロパティの登録を削除します。 この関数は、登録済みのソース リストには影響しません。 LastUsedSource 登録をクリアすると、インストーラーは、次回ソースが必要になった場合に、登録されたソースに対してソース解決を実行するように強制されます。