窗口工作站安全和访问权限
通过安全性,你可以控制对窗口工作站对象的访问。 有关安全性的详细信息,请参阅 Access-Control 模型。
调用 CreateWindowStation 函数时,可以为窗口站对象指定 安全描述符。 如果指定 NULL,窗口工作站将获取默认的安全描述符。 窗口工作站的默认安全描述符中的 ACL 来自创建者的主要或模拟令牌。
若要获取或设置窗口工作站对象的安全描述符,请调用 GetSecurityInfo 和 SetSecurityInfo 函数。
调用 OpenWindowStation 函数时,系统会根据对象的安全描述符检查请求的访问权限。
窗口工作站对象的有效访问权限包括 标准访问权限 和某些特定于对象的访问权限。 下表列出了所有对象使用的标准访问权限。
价值 | 意义 |
---|---|
DELETE (0x00010000L) | 需要删除对象。 |
READ_CONTROL (0x00020000L) | 在对象的安全描述符中读取信息(不包括 SACL 中的信息)所必需的。 若要读取或写入 SACL,必须请求ACCESS_SYSTEM_SECURITY访问权限。 有关详细信息,请参阅 SACL 访问权限。 |
SYNCHRONIZE (0x001000000L) | 不支持窗口工作站对象。 |
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) | 成功调用 ExitWindows 或 ExitWindowsEx 函数所必需的。 窗口站可由用户共享,此访问类型可以防止窗口站的其他用户注销窗口站所有者。 |
WINSTA_READATTRIBUTES (0x0002L) | 读取窗口工作站对象的属性是必需的。 此属性包括颜色设置和其他全局窗口工作站属性。 |
WINSTA_READSCREEN (0x0200L) | 访问屏幕内容所必需的。 |
WINSTA_WRITEATTRIBUTES (0x0010L) | 修改窗口工作站对象的属性是必需的。 这些属性包括颜色设置和其他全局窗口工作站属性。 |
以下是交互式窗口工作站对象的 通用访问权限,即分配给交互式用户的登录会话的窗口工作站。
访问权限 | 描述 |
---|---|
GENERIC_READ |
WINSTA_ENUMDESKTOPS WINSTA_ENUMERATE WINSTA_READATTRIBUTES WINSTA_READSCREEN |
GENERIC_WRITE |
WINSTA_ACCESSCLIPBOARD WINSTA_CREATEDESKTOP WINSTA_WRITEATTRIBUTES |
GENERIC_EXECUTE |
WINSTA_ACCESSGLOBALATOMS WINSTA_EXITWINDOWS |
GENERIC_ALL |
WINSTA_ACCESSCLIPBOARD WINSTA_ACCESSGLOBALATOMS WINSTA_CREATEDESKTOP WINSTA_ENUMDESKTOPS WINSTA_ENUMERATE WINSTA_EXITWINDOWS WINSTA_READATTRIBUTES WINSTA_READSCREEN WINSTA_WRITEATTRIBUTES |
下面是非交互窗口工作站对象的 泛型访问权限。 系统将非交互窗口工作站分配给交互式用户以外的所有登录会话。
访问权限 | 描述 |
---|---|
GENERIC_READ |
WINSTA_ENUMDESKTOPS WINSTA_ENUMERATE WINSTA_READATTRIBUTES |
GENERIC_WRITE |
WINSTA_ACCESSCLIPBOARD WINSTA_CREATEDESKTOP |
GENERIC_EXECUTE |
WINSTA_ACCESSGLOBALATOMS WINSTA_EXITWINDOWS |
GENERIC_ALL |
WINSTA_ACCESSCLIPBOARD WINSTA_ACCESSGLOBALATOMS WINSTA_CREATEDESKTOP WINSTA_ENUMDESKTOPS WINSTA_ENUMERATE WINSTA_EXITWINDOWS WINSTA_READATTRIBUTES |
如果要读取或写入对象的 SACL,可以请求对窗口工作站对象的ACCESS_SYSTEM_SECURITY访问权限。 有关详细信息,请参阅 Access-Control 列表(ACL) 和 SACL 访问权限。