c ++获取进程所有者/当前用户令牌

时间:2017-06-30 09:14:20

标签: c++ windows winapi token

我试图从正常进程中获取当前用户令牌(未提升,而不是SYSTEM等)。我已经使用WTSQueryUserToken尝试过此操作,但您需要使用SYSTEM访问权限才能使其无法正常工作。我在互联网上找到的唯一一件事就是获取用户的SID或名称,但我找不到有关获取当前用户令牌的任何信息。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

因此,您需要与当前进程关联的令牌。这很简单:

if (!OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &token_handle)) fail();

请注意,您可能需要指定不同的权限,具体取决于您在获得令牌后要对令牌执行的操作。如果您要查询令牌,TOKEN_READ权限是合适的,例如,提取用户名。如果要启用权限(当前进程令牌的另一种常见用途),则需要TOKEN_ADJUST_PRIVILEGE