检测程序是否以完全pipe理员权限运行

我需要确定我的程序是否具有完整的pipe理员权限。 我的意思是如果开启了uac(对于win vista / 7),我需要确定程序是否确实具有pipe理权限(如用户右键单击并select“以pipe理员身份运行”),而不受uac的限制。 我如何在C ++中做到这一点?

  • Win9x:每个人都是“pipe理员”
  • 在DOMAIN_ALIAS_RID_ADMINS SID中的 NT4: OpenThreadToken / OpenProcessToken + GetTokenInformation(…,TokenGroups,…)
  • 2000+:DOMAIN_ALIAS_RID_ADMINS SID上的OpenThreadToken / OpenProcessToken + CheckTokenMembership

其他的select是: IsUserAnAdmin或AccessCheck

在令牌中检查TOKEN_ELEVATION *内容对于testing当前进程不是必需的,但是如果您需要查明用户是否可以提升,因为它们具有拆分令牌等。