LockPermissions 資料表

LockPermissions 資料表是用來保護鎖定環境中應用程式的個別部分。 它可用於安裝檔案、登錄機碼和已建立的資料夾。

適用于在 Windows Server 2008 R2 或 Windows 7 中安裝的套件應該使用 MsiLockPermissionsEx Table,而不是 LockPermissions 資料表 。 Windows Installer 5.0 之前的 Windows Installer 版本會忽略 MsiLockPermissionsEx 資料表。 Windows Installer 5.0 可以安裝包含 LockPermissions 資料表的套件。 從 Windows Installer 5.0 開始,安裝包含 MsiLockPermissionsEx Table 和 LockPermissions 資料表的套件會失敗,並傳回 Windows Installer 錯誤訊息 1941。

LockPermissions 資料表具有下列資料行。

資料行 類型 答案 Nullable
LockObject 識別碼 Y N
資料表 Text Y N
網域 格式 化 Y Y
User 格式 化 Y N
權限 DoubleInteger N Y

 

資料行

LockObject

此資料行和資料表資料行一起指定要保護的檔案、目錄或登錄機碼。 LockObject 資料行是指向 Table 資料行所指定資料表主鍵的外鍵。

此資料行和 LockObject 資料行會指定要保護的檔案、目錄或登錄機碼。 在 [資料表] 資料行中,輸入 File、Registry 或 CreateFolder,以指定 File TableRegistry TableCreateFolder 資料表中列出的 LockObject。

資料行,可識別要設定許可權之使用者的網域。 這是獨立電腦或功能變數名稱的名稱。 資料行資料類型為 Formatted,而且您可以使用此欄位中的字串 [%USERDOMAIN] 來取得目前網域的 USERDOMAIN 環境變數值。 若要取得任何其他網域,請使用 自訂動作。 如需詳細資訊,請參閱自訂動作資料表。

使用者

資料行,可識別要設定許可權之使用者的當地語系化名稱。 此名稱必須位於電腦或網域上。 如果電腦或網域控制站無法辨識網域和使用者組合,或無法擷取使用者的安全性識別碼 (SID) ,安裝就會失敗。 您可以為單一 LockObject 指定多個使用者。

通用使用者名稱 「Everyone」 和 「Administrators」 可能會以英文輸入,並對應至已知的 SID。 LocalSystem 在透過 LockPermissions 資料表建立的所有安全性描述元中都會獲得完整控制權。 您可以使用此欄位中的 ComputerName 屬性LogonUser 屬性USERNAME 屬性 來取得目前的使用者。 需要自訂動作,才能輸入任何其他使用者或群組的當地語系化名稱。

您可以使用多個記錄搭配相同的 LockObject 和 Table 專案 (,但不同的使用者專案) 來指定多位使用者的存取控制清單。

許可

識別系統許可權整數描述的資料行。 下列提供最常見的值, (Winnt.h) 中存在完整清單。

Privilege 描述
GENERIC_ALL
0X10000000
268435456
讀取、寫入和執行存取權
GENERIC_EXECUTE
0X20000000
536870912
執行存取
GENERIC_WRITE
0X40000000
1073741824
寫入存取權

 

您無法在 [許可權] 資料行中指定GENERIC_READ。 嘗試這樣做將會失敗。 相反地,您必須指定值,例如KEY_READ或FILE_GENERIC_READ。

在此資料行中輸入的 Null 會保留供日後使用。

備註

Sequence資料表中的InstallFilesWriteRegistryValuesCreateFolders動作會處理此資料表中的資訊。 如需使用 時序表的詳細資訊,請參閱 使用序列資料表

許可權只能在 LockPermissions 資料表中設定,供已存在於電腦或網域的使用者使用。 嘗試設定未知使用者的許可權會導致安裝失敗,即使延遲自訂動作在安裝期間建立該使用者帳戶也一樣。

建議系統管理員的本機群組包含在所有存取控制清單中, (ACL) 。 這可確保系統管理員可以存取和維護物件。

LockPermissions 資料表中列出的每個檔案、登錄機碼或目錄都會接收明確的安全性描述元,不論它是否取代現有的物件。 Windows Installer 會嘗試在系統上已經存在的物件上保留安全性。 如果物件未列在 LockPermissions Table 中,並取代現有的物件,則取代會取得它所取代之物件的安全性設定。

如果物件未列在 LockPermissions Table 中,而且不會取代現有的物件,它就不會收到明確的安全性描述元。 新物件的存取權是以其父物件或容器物件的屬性為基礎。 如果物件未列在資料表中,並且以沒有明確的安全性描述元取代物件,則新物件的存取是根據其父物件或容器物件的屬性。

Windows Installer 會將 UserSID 屬性設定為安全性識別碼, (SID) 或執行安裝的使用者。

驗證

ICE03
ICE06
ICE46
ICE55