将
GetTokenInformation()
与 TokenElevationType
一起使用将返回以下枚举器:
typedef enum _TOKEN_ELEVATION_TYPE {
TokenElevationTypeDefault,
TokenElevationTypeFull,
TokenElevationTypeLimited
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
但是它们实际上是什么意思?
TokenElevationTypeDefault
The token does not have a linked token.
TokenElevationTypeFull
The token is an elevated token.
TokenElevationTypeLimited
The token is a limited token.
对我来说没有任何意义。我可以告诉你
TokenElevationTypeDefault
和TokenElevationTypeFull
似乎是我认为“提升”的东西,但是不知道如何在有限模式下提升它?
蒂亚!!
您可以在此处查看官方文档以了解上下文:用户帐户控制如何工作
默认情况下,标准用户和管理员用户都可以访问资源并 在标准用户的安全上下文中执行应用程序。当用户 登录后,系统会为该用户创建访问令牌。访问权限 令牌包含有关用户访问级别的信息 授予[...]
当管理员登录时,会创建两个单独的访问令牌 对于用户:标准用户访问令牌和管理员访问权限 代币.
所以
TOKEN_ELEVATION_TYPE
枚举值的含义是这样的:
TokenElevationTypeDefault
:当您是标准用户时(或者在特殊情况下,例如没有启用 UAC 的管理员(请查看此链接,例如 https://candritzky.wordpress.com/tag/uac/),这样您就不会t 有两个访问令牌。在这种情况下,您可以使用 GetTokenInformation 的 TokenElevation
类和 TOKEN_ELEVATION 的 TokenIsElevated 成员 来确定令牌是否具有提升的权限。
TokenElevationTypeFull
:当您有两个令牌并且您使用提升的管理员访问令牌时。
TokenElevationTypeLimited
:当您有两个令牌并且您使用的是标准用户访问令牌时。