摘抄了 Windows via C/C++ 上的一段代码,一个函数——GetProcessElevation,返回安全令牌的提升类型和一个表示当前是否运行在管理员身份下。

BOOL GetProcesElevation(TOKEN_ELEVATION_TYPE *pElevation, BOOL *pIsAdmin)
{HANDLE hToken = NULL;DWORD    dwSize;// 获得当前进程令牌if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))return FALSE;BOOL b_Result = FALSE;// 检索提升类型信息if (GetTokenInformation(hToken, TokenElevationType, pElevation, sizeof(TOKEN_ELEVATION_TYPE), &dwSize)){if(*pElevation == TokenElevationTypeLimited){// 创建 Administrator 组相应的 SIDBYTE adminSID[SECURITY_MAX_SID_SIZE];dwSize = sizeof(adminSID);CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, adminSID, &dwSize);// 获得链接令牌的句柄HANDLE hUnfilteredToken = NULL;GetTokenInformation(hToken, TokenLinkedToken, (LPVOID)&hUnfilteredToken, sizeof(HANDLE), &dwSize);// 检测令牌是否包含管理员SIDif(CheckTokenMembership(hUnfilteredToken, &adminSID, pIsAdmin))b_Result = TRUE;CloseHandle(hUnfilteredToken);}else{*pIsAdmin = IsUserAnAdmin();b_Result = TRUE;}CloseHandle(hToken);return b_Result;}
}

转载于:https://www.cnblogs.com/Fly-pig/archive/2011/01/21/1941189.html

WIndows via C/C++ 学习(12)权限上下文相关推荐

  1. 分享Silverlight/WPF/Windows Phone一周学习导读(11月6日-11月12日)

    分享Silverlight/WPF/Windows Phone一周学习导读(11月6日-11月12日) 本周Silverlight学习资源更新 [Silverlight]关于对Canvas.ZInde ...

  2. 如何安装mysql 8.0.12_基于Windows安装MySQL 8.0.12图文教程

    本教程仅适用Windows系统,如果你原本装了没装上,一定要先删除原本的数据库,执行:mysqld --remove mysql,然后在看我的帖子! 第一步:到MySQL官网下载安装包 第二步:将下载 ...

  3. Windows内网协议学习Kerberos篇之PAC

    转自:https://www.anquanke.com/post/id/192810 author: daiker@360RedTeam 0x00 前言 这是kerbreos篇的最后一篇文章了.这篇文 ...

  4. 分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)

    分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日) 本周Silverlight学习资源更新 Silverlight 定位 niejunhua [学习 ...

  5. 分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日)

    分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日) 本周Silverlight学习资源更新: Silverlight Tools 4安装时的错误提示 ...

  6. 分享Silverlight/WPF/Windows Phone一周学习导读(3月1日-3月5日)

    休假一个月,没有更新Silverlight/WPF/Windows Phone学习导读.从本周开始继续分享每周最新的Silverlight/WPF/Windows Phone开发学习导读. 本周Sil ...

  7. Windows进程与线程学习笔记(一)—— 进程结构体

    Windows进程与线程学习笔记(一)-- 进程结构体 进程结构体 EPROCESS +0x000 Pcb : _KPROCESS +0x1b0 Peb : Ptr32 _PEB 练习 解题步骤 第一 ...

  8. 分享Silverlight/WPF/Windows Phone一周学习导读(06月13日-06月18日)

    分享Silverlight/WPF/Windows Phone一周学习导读 本周Silverlight学习资源更新: 小D学blend-----优美简洁的mp3播放器 D调の幸福 Silverligh ...

  9. 分享Silverlight/WPF/Windows Phone一周学习导读(06月06日-06月11日)

    Windows 8预览版推出后,Silverlight社区掀起一番新的"Silverlight灭亡"讨论,由于Windows 8预览版中微软重点强调HTML 5和Javascrip ...

  10. 分享Silverlight/WPF/Windows Phone一周学习导读(1月3日-1月8日)

    新年后开始工作的第一周,新的一批MVP被评出来了,其中Silverlight方向增加了不少国人.在JohnPapa的个人网站公布了2011年1月的Silverlight MVPs名单,其中至少五位国人 ...

最新文章

  1. 使用带有用户名和密码的cURL?
  2. Android中自定义属性(attrs.xml,TypedArray的使用)
  3. Codeforces 1196E Connected Component on a Chessboard
  4. OpenCV距离变换和分水岭算法的图像分割
  5. 获取计算机的信息(IP地址、MAC地址、CUP序列号、硬盘序列号、主板信息等等)...
  6. python求三个数中最小(大)的元素
  7. mysql data to long_mysql 当插入中文字段时发生“data too long for column”错误
  8. Spring Boot-------JPA——EntityManager构建通用DAO
  9. Adobe系列错误代码解决方案汇总
  10. pg数据库中postgis的使用
  11. win10 电池测试软件,Win10电池检测方法及查看Win10电池检测报告说明
  12. 关于NXP公司的IMX6系列芯片参考资料体系介绍
  13. html5制作人物动作,骨骼动画制作新利器:快速制作动作人物动画,省时简单!...
  14. MATLAB 四点定球及三点定圆(完整代码)
  15. JavaScript 编写Date 格式化方法『Python风格』
  16. 记录下SpringBoot父子工程使用jib构建docker镜像的过程(跳过多余模块)
  17. rand函数和srand函数详解
  18. Excel表格插入斜线
  19. Google Earth Engine APP ——Forest Health监测APP(可下载)
  20. 计算机科学引论2021中文,计算机科学引论(2021英文精编版)

热门文章

  1. 程序员的一个爬虫,把估值175亿的马蜂窝给捅了
  2. 阿里员工都是这样排查Java问题的,附工具单
  3. redis:RDM连接阿里云redis服务器
  4. 9.C++弱引用智能指针weak_ptr的用处
  5. 0666 | IPC_CREAT
  6. 【Python】青少年蓝桥杯_每日一题_9.03_画三角形和半圆相切
  7. Java洛谷P1149 火柴棒等式
  8. 怎么样让body、div占满整个浏览器的窗口
  9. java中io流案例_Java IO流的简单使用 通俗易懂 超详细 【内含案例】
  10. 1000亿,行业巨头纷纷押宝的数据中心