サービス、ファイル、作成されたフォルダー、レジストリ エントリに対するアクセス許可を設定する Windows インストーラーの機能は、インストール アプリケーションの安全性を高めるのに役立ちます。 リソースをセキュリティで保護するために、MsiLockPermissionsEx または LockPermissions テーブルを使用することは、セキュリティで保護されたインストール を作成するための推奨されるガイドラインの 1 つです。 MsiLockPermissionsEx テーブルを使用すると、パッケージ作成者は、カスタム アクション 記述しなくても、リソースをセキュリティで保護できます。
Windows インストーラー 5.0 用に開発されたパッケージ以降、MsiLockPermissionsEx テーブルは、LockPermissions テーブルの使用を置き換える必要があります。 MsiLockPermissionsEx テーブルによって提供される拡張機能により、パッケージは Windows Services、ファイル、フォルダー、レジストリ キーをセキュリティで保護できます。 パッケージには、MsiLockPermissionsEx テーブルと LockPermissions テーブルの両方を含めてはなりません。
Windows インストーラー 4.5 以前では、MsiLockPermissionsEx テーブルは無視されます。 Windows インストーラー 5.0 以降では、パッケージに LockPermissions テーブル と MsiLockPermissionsEx テーブルの両方が含まれている場合、エラー メッセージ 1941 でインストールが失敗します。 LockPermissions テーブルのみを含む既存のインストール パッケージは、Windows インストーラー 5.0 を使用して引き続きインストールできます。
Windows インストーラー 5.0 では、InstallFiles、InstallServices、WriteRegistryValues、および CreateFolders 標準アクションを実行すると、MsiLockPermissionsEx テーブルの情報が処理されます。 セキュリティ保護可能なオブジェクトをインストールまたは再インストールしてセキュリティ保護する必要があり、そのオブジェクトを再インストールせずに既存のオブジェクトに アクセス制御リスト (ACL) を追加することはできません。
セキュリティで保護するサービス、ファイル、ディレクトリ、またはレジストリ キーを指定するには、MsiLockPermissionsEx テーブルの LockObject フィールドとテーブル フィールドに識別情報を入力します。 オブジェクトは、ServiceInstall Table、File Table、Registry Table、または CreateFolder Table の主キーによって識別されます。
指定した権限がオブジェクトに適用されることを要求するには、有効な セキュリティ記述子定義言語 (SDDL) を使用して、MsiLockPermissionsEx テーブルの SDDLText フィールドに有効なセキュリティ記述子文字列を入力します。 MsiLockPermissionsEx テーブルでは、アクセス許可を拒否するセキュリティ記述子を指定したり、親リソースからのアクセス許可の継承を指定したり、新しいアカウントのアクセス許可を指定したりできます。 許可、拒否、または継承できるすべてのアクセス許可の一覧については、ACE 文字列 参照してください。 Windows インストーラー 5.0 は、使用可能なセキュリティ識別子 (SID) のセットを拡張します。有効な SID の一覧については、「SID 文字列の 」を参照してください。
手記
親リソースのセキュリティ記述子を構成して、そのアクセス許可が子オブジェクトによって継承されるように指定する場合、インストーラーは子オブジェクトを作成する前に親リソースにアクセス許可を適用する必要があります。 インストーラーが親リソースに継承可能なアクセス許可を適用する前に子オブジェクトを作成した場合、親リソースのアクセス許可は子オブジェクトに反映されません。
Windows インストーラー 5.0 以降では、FormattedSDDLText データ型は、Formatted データ型を拡張します。 Windows インストーラーは、MsiLockPermissionsEx テーブルの SDDLText 列に入力された FormattedSDDLText 文字列が、セキュリティ記述子文字列形式に準拠していることを検証します。
Windows インストーラー 4.5 以前の: サポートされていません。 MsiLockPermissionsEx テーブルと FormattedSDDLText データ型は、Windows インストーラー 5.0 以降で使用できます。