桌面安全性與存取權限

安全性可讓您控制桌面物件的存取。 如需安全性的詳細資訊,請參閱 存取控制模型

呼叫CreateDesktopCreateDesktopEx函式時,您可以指定桌面物件的安全性描述元。 如果您指定 Null,桌面會取得預設的安全性描述元。 桌面預設安全性描述元中的 ACL 來自其父視窗月臺。

若要取得或設定視窗月臺物件的安全性描述元,請呼叫 GetSecurityInfoSetSecurityInfo 函式。

當您呼叫 OpenDesktopOpenInputDesktop 函式時,系統會根據物件的安全性描述元檢查要求的存取權限。

桌面物件的有效存取權限包括 標準存取權限 和某些特定物件存取權限。 下表列出所有物件所使用的標準存取權限。

意義
DELETE (0x00010000L) 刪除物件的必要專案。
READ_CONTROL (0x00020000L) 需要讀取物件之安全性描述元中的資訊,不包括 SACL 中的資訊。 若要讀取或寫入 SACL,您必須要求ACCESS_SYSTEM_SECURITY存取權限。 如需詳細資訊,請參閱 SACL 存取權限
SYNCHRONIZE (0x00100000L) 桌面物件不支援。
WRITE_DAC (0x00040000L) 需要修改 物件之安全性描述元中的 DACL。
WRITE_OWNER (0x00080000L) 需要變更 物件之安全性描述元中的擁有者。

 

下表列出物件特定的存取權限。

存取權限 描述
DESKTOP_CREATEMENU (0x0004L) 需要才能在桌面上建立功能表。
DESKTOP_CREATEWINDOW (0x0002L) 必須在桌面上建立視窗。
DESKTOP_ENUMERATE (0x0040L) 必須列舉桌面。
DESKTOP_HOOKCONTROL (0x0008L) 建立任何視窗勾點的必要專案。
DESKTOP_JOURNALPLAYBACK (0x0020L) 需要在桌面上執行日誌播放。
DESKTOP_JOURNALRECORD (0x0010L) 需要在桌面上執行日誌錄製。
DESKTOP_READOBJECTS (0x0001L) 需要讀取桌面上的物件。
DESKTOP_SWITCHDESKTOP (0x0100L) 使用 SwitchDesktop 函式啟動桌面的必要專案。
DESKTOP_WRITEOBJECTS (0x0080L) 需要才能在桌面上寫入物件。

 

以下是使用者登入會話之互動式視窗月臺中包含的桌面物件的 一般存取權限

存取權限 描述
GENERIC_READ
DESKTOP_ENUMERATE
DESKTOP_READOBJECTS
STANDARD_RIGHTS_READ
GENERIC_WRITE
DESKTOP_CREATEMENU
DESKTOP_CREATEWINDOW
DESKTOP_HOOKCONTROL
DESKTOP_JOURNALPLAYBACK
DESKTOP_JOURNALRECORD
DESKTOP_WRITEOBJECTS
STANDARD_RIGHTS_WRITE
GENERIC_EXECUTE
DESKTOP_SWITCHDESKTOP
STANDARD_RIGHTS_EXECUTE
GENERIC_ALL
DESKTOP_CREATEMENU
DESKTOP_CREATEWINDOW
DESKTOP_ENUMERATE
DESKTOP_HOOKCONTROL
DESKTOP_JOURNALPLAYBACK
DESKTOP_JOURNALRECORD
DESKTOP_READOBJECTS
DESKTOP_SWITCHDESKTOP
DESKTOP_WRITEOBJECTS
STANDARD_RIGHTS_REQUIRED

 

如果您想要讀取或寫入物件的 SACL,您可以要求對桌面物件的ACCESS_SYSTEM_SECURITY存取權。 如需詳細資訊,請參閱 存取控制清單 (ACL) SACL 存取權限