保護資源

Windows Installer 對服務、檔案、建立的資料夾和登錄專案設定存取權限的功能,有助於讓安裝應用程式更安全。 使用 MsiLockPermissionsExLockPermissions資料表來保護資源是撰寫安全安裝的建議指導方針之一。 MsiLockPermissionsEx 資料表可讓套件作者保護資源,而不需要撰寫 自訂動作

從針對 Windows Installer 5.0 開發的套件開始, MsiLockPermissionsEx 資料表應該取代 LockPermissions 資料表的使用方式。 MsiLockPermissionsEx 資料表所提供的擴充功能可讓套件保護 Windows 服務、檔案、資料夾和登錄機碼。 套件不應同時包含 MsiLockPermissionsEx 和 LockPermissions 資料表。

Windows Installer 4.5 和更早版本會忽略 MsiLockPermissionsEx 資料表。 從 Windows Installer 5.0 開始,如果套件同時包含 LockPermissions 資料表 和 MsiLockPermissionsEx 資料表,安裝就會失敗,並出現錯誤訊息 1941。 只有 LockPermissions 資料表的現有安裝套件仍可使用 Windows Installer 5.0 安裝。

Windows Installer 5.0 會在執行InstallFilesInstallServicesWriteRegistryValuesCreateFolders標準動作時,處理MsiLockPermissionsEx資料表中的資訊。 安全性實體物件必須安裝或重新安裝才能受到保護,而且無法將存取控制清單 (ACL) 附加至現有的物件,而不需要重新安裝該物件。

若要指定要保護的服務、檔案、目錄或登錄機碼,請在 MsiLockPermissionsEx 資料表的 LockObject 和 Table 欄位中輸入識別資訊。 物件是由 ServiceInstall TableFile TableRegistry TableCreateFolder 資料表中的主鍵所識別。

若要要求指定的許可權套用至物件,請在MsiLockPermissionsEx資料表的SDDLText欄位中,使用有效的安全性描述元定義語言輸入有效的安全性描述元字串, (SDDL) 。 MsiLockPermissionsEx資料表可以指定拒絕許可權的安全性描述元、指定父資源的許可權繼承,或指定新帳戶的許可權。 如需可授與、拒絕或繼承之擁有權限的清單,請參閱 ACE 字串。 Windows Installer 5.0 會擴充一組可用的安全性識別碼 (SIDs.) 如需有效 SID 的清單,請參閱 SID 字串

注意

如果您想要設定父資源的安全性描述元,以指定子物件繼承其許可權,則安裝程式必須先將許可權套用至父資源,才能建立子物件。 如果您的安裝程式在將可繼承的許可權套用至父資源之前建立子物件,父資源的許可權將不會傳播至子物件。

從 Windows Installer 5.0 開始, FormattedSDDLText 資料類型會擴充 Formatted 資料類型。 Windows Installer 會驗證 在 MsiLockPermissionsEx 資料表的 SDDLText 資料行中輸入的 FormattedSDDLText 字串符合安全性描述項字串格式

Windows Installer 4.5 或更早版本不支援。 MsiLockPermissionsEx資料表和FormattedSDDLText資料類型可從 Windows Installer 5.0 開始提供。