使用GetTokenInformation()获取TokenElevationType:各枚举值实际含义解析
关于TOKEN_ELEVATION_TYPE枚举的实际含义解析
当使用GetTokenInformation()搭配TokenElevationType参数时,会返回以下枚举类型:
typedef enum _TOKEN_ELEVATION_TYPE { TokenElevationTypeDefault, TokenElevationTypeFull, TokenElevationTypeLimited } TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
下面结合实际场景拆解每个枚举值的含义:
TokenElevationTypeDefault
该令牌没有关联的UAC令牌,对应两种场景:- 当前登录用户是标准用户(无管理员权限),程序只能以标准权限运行,不存在提升空间,因此没有关联令牌。
- 系统UAC功能已关闭,管理员用户启动的程序直接以最高权限运行,无需关联受限令牌。
TokenElevationTypeFull
该令牌是完全提升的管理员令牌。当用户通过UAC确认(或系统自动授权)后,程序获得完整的管理员权限,可执行所有需要高权限的操作,比如修改系统目录、编辑系统级注册表项等。TokenElevationTypeLimited
这是UAC管理员批准模式下的核心场景:管理员用户登录系统后,系统会生成两个令牌——受限的标准权限令牌和完整的管理员令牌。默认启动的程序都会使用这个受限的标准权限令牌运行,目的是缩小程序的权限范围,降低恶意软件利用管理员权限破坏系统的风险。只有当用户手动选择“以管理员身份运行”,或者程序通过清单文件声明需要管理员权限时,系统才会触发UAC确认,切换到
TokenElevationTypeFull的令牌运行程序。官方文档里的“受限令牌”指的是这个令牌的权限范围受限,并非“提升后受限”,这是容易混淆的点。
内容的提问来源于stack exchange,提问作者user3161924
相关产品推荐
相关产品推荐

