保護資源
Windows Installer 在服務、檔案、建立的資料夾和登錄專案上設定訪問許可權的功能,有助於讓安裝應用程式更安全。 使用 MsiLockPermissionsEx 或 LockPermissions 數據表來保護資源,是撰寫安全安裝 的建議指導方針之一。 MsiLockPermissionsEx 數據表可讓套件作者保護資源,而不需要撰寫 自定義動作。
從針對 Windows Installer 5.0 開發的套件開始,MsiLockPermissionsEx 數據表應該取代使用 LockPermissions 數據表。 MsiLockPermissionsEx 數據表所提供的擴充功能可讓套件保護 Windows Services、檔案、資料夾和登錄機碼。 套件不應同時包含 MsiLockPermissionsEx 和 LockPermissions 數據表。
Windows Installer 4.5 和更早版本會忽略 MsiLockPermissionsEx 數據表。 從 Windows Installer 5.0 開始,如果套件同時包含 LockPermissions 數據表, 和 MsiLockPermissionsEx 數據表,安裝就會失敗,並出現錯誤訊息 1941。 只有 LockPermissions 數據表的現有安裝套件仍可使用 Windows Installer 5.0 安裝。
Windows Installer 5.0 會在執行 InstallFiles、InstallServices、WriteRegistryValues 和 CreateFolders 標準動作時,處理 MsiLockPermissionsEx 數據表中的資訊。 必須安裝或重新安裝可保護的物件才能受到保護,而且無法在不重新安裝該物件的情況下,將 訪問控制清單(ACL)附加至現有的物件。
若要指定要保護的服務、檔案、目錄或登錄機碼,請在 MsiLockPermissionsEx 數據表的 LockObject 和 Table 字段中輸入識別資訊。 物件是由 ServiceInstall Table、File Table、Registry Table或 CreateFolder Table中的主要索引鍵來識別。
若要要求指定的許可權套用至物件,請在 MsiLockPermissionsEx 數據表的 SDDLText 字段中,使用有效的 安全性描述元定義語言 (SDDL) 輸入有效的安全性描述元字元串。 MsiLockPermissionsEx 數據表可以指定安全性描述元,以拒絕許可權、指定父資源的許可權繼承,或指定新帳戶的許可權。 如需可授與、拒絕或繼承之所有許可權的清單,請參閱 ACE 字串。 Windows Installer 5.0 會擴充一組可用的安全性標識符 (SID.)如需有效 SID 的清單,請參閱 SID 字串。
注意
如果您想要設定父資源的安全性描述元,以指定子對象繼承其許可權,則安裝程式必須在建立子物件之前,將許可權套用至父資源。 如果您的安裝程式在將可繼承的許可權套用至父資源之前建立子物件,父資源的許可權將不會傳播至子物件。
從 Windows Installer 5.0 開始,FormattedSDDLText 數據類型會擴充 Formatted 數據類型。 Windows Installer 會驗證在 MsiLockPermissionsEx 資料表的 SDDLText 數據行中輸入的 FormattedSDDLText 字符串是否符合 安全性描述元字符串格式。
Windows Installer 4.5 或更早版本:不支援。 自 Windows Installer 5.0 起,MsiLockPermissionsEx 表格和 FormattedSDDLText 資料類型可用。