窗口工作站安全和访问权限

安全性使你能够控制对窗口工作站对象的访问。 有关安全性的详细信息,请参阅 访问控制模型

调用 CreateWindowStation 函数时,可以为窗口工作站对象指定安全描述符。 如果指定 NULL,则窗口工作站将获取默认的安全描述符。 窗口工作站的默认安全描述符中的 ACL 来自创建者的主令牌或模拟令牌。

若要获取或设置窗口站对象的安全描述符,请调用 GetSecurityInfoSetSecurityInfo 函数。

调用 OpenWindowStation 函数时,系统会根据对象的安全描述符检查请求的访问权限。

窗口工作站对象的有效访问权限包括 标准访问权限 和某些特定于对象的访问权限。 下表列出了所有对象使用的标准访问权限。

含义
DELETE (0x00010000L) 删除对象所必需的。
READ_CONTROL (0x00020000L) 需要读取对象的安全描述符中的信息,不包括 SACL 中的信息。 若要读取或写入 SACL,必须请求ACCESS_SYSTEM_SECURITY访问权限。 有关详细信息,请参阅 SACL 访问权限
同步 (0x00100000L) 窗口站对象不支持。
WRITE_DAC (0x00040000L) 需要修改对象的安全描述符中的 DACL。
WRITE_OWNER (0x00080000L) 需要更改对象的安全描述符中的所有者。

 

下表列出了特定于对象的访问权限。

访问权限 说明
WINSTA_ALL_ACCESS (0x37F) 窗口工作站的所有可能访问权限。
WINSTA_ACCESSCLIPBOARD (0x0004L) 需要使用剪贴板。
WINSTA_ACCESSGLOBALATOMS (0x0020L) 操作全局原子所必需的。
WINSTA_CREATEDESKTOP (0x0008L) 在窗口工作站上创建新桌面对象所必需的。
WINSTA_ENUMDESKTOPS (0x0001L) 枚举现有桌面对象所必需的。
WINSTA_ENUMERATE (0x0100L) 需要枚举窗口工作站。
WINSTA_EXITWINDOWS (0x0040L) 成功调用 ExitWindowsExitWindowsEx 函数所必需的。 窗口工作站可由用户共享,并且此访问类型可以防止窗口工作站的其他用户注销窗口工作站所有者。
WINSTA_READATTRIBUTES (0x0002L) 读取窗口站对象的属性所必需的。 此属性包括颜色设置和其他全局窗口站属性。
WINSTA_READSCREEN (0x0200L) 访问屏幕内容所必需的。
WINSTA_WRITEATTRIBUTES (0x0010L) 修改窗口站对象的属性所必需的。 这些属性包括颜色设置和其他全局窗口站属性。

 

下面是交互式窗口站对象的 泛型访问权限 ,该对象是分配给交互式用户的登录会话的窗口站。

访问权限 说明
GENERIC_READ
STANDARD_RIGHTS_READ
WINSTA_ENUMDESKTOPS
WINSTA_ENUMERATE
WINSTA_READATTRIBUTES
WINSTA_READSCREEN
GENERIC_WRITE
STANDARD_RIGHTS_WRITE
WINSTA_ACCESSCLIPBOARD
WINSTA_CREATEDESKTOP
WINSTA_WRITEATTRIBUTES
GENERIC_EXECUTE
STANDARD_RIGHTS_EXECUTE
WINSTA_ACCESSGLOBALATOMS
WINSTA_EXITWINDOWS
GENERIC_ALL
STANDARD_RIGHTS_REQUIRED
WINSTA_ACCESSCLIPBOARD
WINSTA_ACCESSGLOBALATOMS
WINSTA_CREATEDESKTOP
WINSTA_ENUMDESKTOPS
WINSTA_ENUMERATE
WINSTA_EXITWINDOWS
WINSTA_READATTRIBUTES
WINSTA_READSCREEN
WINSTA_WRITEATTRIBUTES

 

下面是非交互式窗口工作站对象的 泛型访问权限 。 系统将非交互式窗口工作站分配给除交互式用户以外的所有登录会话。

访问权限 说明
GENERIC_READ
STANDARD_RIGHTS_READ
WINSTA_ENUMDESKTOPS
WINSTA_ENUMERATE
WINSTA_READATTRIBUTES
GENERIC_WRITE
STANDARD_RIGHTS_WRITE
WINSTA_ACCESSCLIPBOARD
WINSTA_CREATEDESKTOP
GENERIC_EXECUTE
STANDARD_RIGHTS_EXECUTE
WINSTA_ACCESSGLOBALATOMS
WINSTA_EXITWINDOWS
GENERIC_ALL
STANDARD_RIGHTS_REQUIRED
WINSTA_ACCESSCLIPBOARD
WINSTA_ACCESSGLOBALATOMS
WINSTA_CREATEDESKTOP
WINSTA_ENUMDESKTOPS
WINSTA_ENUMERATE
WINSTA_EXITWINDOWS
WINSTA_READATTRIBUTES

 

如果要读取或写入对象的 SACL,可以请求ACCESS_SYSTEM_SECURITY访问窗口站对象的权限。 有关详细信息,请参阅 访问控制列表 (ACL) SACL 访问权限