Windows下切换进程用户名为当前用户名,而不是SYSTEM

2023-11-01

在windows操作系统中,某些情况下,我们需要将程序以管理员身份启动,通过任务管理器我们可以看到程序的持有者,如下图所示:
在这里插入图片描述
使用SYSYTEM权限启动的程序,理论是不可以访问到当前用户下的部分目录,这个时候我们可以在必要时候切换成武到当前用户权限,使用后切换为SYSTEM。

  • 首先判断用户名是不是SYSTEM
bool CurrentUserIsLocalSystem()    //判断用户名是不是SYSTEM
{
    BOOL bIsLocalSystem = FALSE;
    PSID psidLocalSystem;
    SID_IDENTIFIER_AUTHORITY ntAuthority = SECURITY_NT_AUTHORITY;

    BOOL fSuccess = ::AllocateAndInitializeSid(&ntAuthority, 1, SECURITY_LOCAL_SYSTEM_RID,
                                        0, 0, 0, 0, 0, 0, 0, &psidLocalSystem);
    if (fSuccess) 
    {
        fSuccess = ::CheckTokenMembership(0, psidLocalSystem, &bIsLocalSystem);
        ::FreeSid(psidLocalSystem);
    }
    return bIsLocalSystem;
}
  • 切换进程为当前用户
HANDLE hTokenUser = NULL;
DWORD ConsoleSessionId = 0;
BOOL bImpersonateLoggedOnUser = FALSE;
if (CurrentUserIsLocalSystem())
{
	// 得到当前激活用户的会话ID
  	ConsoleSessionId = WTSGetActiveConsoleSessionId();
  	// 得到当前登录用户的令牌
  	if (WTSQueryUserToken(ConsoleSessionId, &hTokenUser))
  	{
      	// 模仿成当前登录用户
      	bImpersonateLoggedOnUser = ImpersonateLoggedOnUser(hTokenUser);
  	}
}
  • 使用完毕后切换为SYSTEM权限
(bImpersonateLoggedOnUser)  
{  
    RevertToSelf();  
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下切换进程用户名为当前用户名,而不是SYSTEM 的相关文章

随机推荐

  • 利用python制作一款截图识别软件

    先给大家推荐一款截图软件 非常方便 可以把截出的图片放置到窗口上 并且可以随意移动 这个是微软开发的一款工具 Snipaste 支持各类电脑系统 先简单介绍一下它的用法 F1截图 ctrl c把图片复制到剪贴板 方便下次使用 ctrl v
  • python协程—asyncio模块

    为什么使用协程 当多线程或者多进程足够多时 实际上并不能解决性能的瓶颈问题 也就是多线程和多进程对小规模的请求可以提高效率 过多的请求实际上会降低服务资源响应效率 因此协程是更好的解决文案 什么是协程 当一个程序遇到阻塞时 如果将这个程序挂
  • (翻译)Linux中的IS_ERR()宏

    本文翻译自 https newbedev com is err macro in linux text 20IS ERR 20 28 29 20macro 20in 20Linux 20Tests 20if can 20find 20MAC
  • VUE3.0生命周期函数

    什么是生命周期 1 vue中每个组件都是独立的 每个组件都有一个属于它的生命周期 2 从一个组件创建 数据初始化 挂载 更新 销毁 这就是一个组件所谓的生命周期 强调的是一个时间段 在vue3中 新增了一个setup生命周期函数 setup
  • 四川岳池2021年高考成绩查询,2021年岳池中学升学率高不高?

    引语 了解一个学校 就要全方位的进行了解 清楚学校的师资 录取分数线 升学率等等 四川初升高升学网网编为同学们梳理了2021年岳池中学升学率高不高的相关信息 更多最新资讯可以关注四川初升高升学网公众号 岳池中学2021升学率 立即点击查看
  • MySQL 表分区 报错:Table has no partition for value XXX

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 对已存在的未分区的表进行分区 alter table test PARTITION BY RANGE id PARTITION p1 VALUES LESS THAN 10
  • 扫码点餐软件,打造智慧餐厅新体验!【点餐小程序】

    随着科技的不断发展 扫码点餐软件成为了越来越多餐厅的选择 它们可以帮助顾客快速方便地点餐 同时也带来了更高效的服务体验和更好的管理效果 在这篇文章中 我们将探讨如何通过扫码点餐软件打造智慧餐厅新体验 并且以一个具体的案例来解析其中的技巧 步
  • 10-6 计算时间差

    时间差可以用来衡量程序运行效率 计算其有三种方法 一是使用 difftime 函数 二是使用自定义的 TimeInMillisecond 函数 三是使用 clock 函数 1 使用 difftime 函数计算秒级时间差 三种方法本质相同 都
  • iTerm2使用笔记

    鼠标 设置在less vim中等使用滚轮 在高级设置里面 设置系统编辑方式 让写命令和在其他编辑器中一致 比如alt delete 删除一个word vim vimrc中设置系统clipboard set clipboard unnamed
  • 机器人学习--卡尔曼滤波及各种滤波解析

    什么是滤波 举个最直观的简单例子 臭水沟里舀一大勺水 需要过滤成干净水怎么办 用滤网 网孔可根据需要选择大小孔 过滤 在电路方面波形的高低通滤波原理类似 图像上的噪声点各种中值滤波等类似的滤波方案 Filter 在状态测量领域是根据 预测
  • webpack 和 ts 简单配置及使用

    如何使用webpack 与 ts结合使用 新建项目 执行项目初始化 npm init y 会生成 name tsdemo01 version 1 0 0 description main index js scripts test echo
  • Notion 的插件介绍和使用

    十分推荐 Save to Notion Notion Web Clipper notion 官方的剪藏插件 插件安装 Chrome 商店 https chrome google com webstore detail notion web
  • 看完这篇 教你玩转渗透测试靶机vulnhub——DC8

    Vulnhub靶机DC8渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 暴力破解 提权 获取flag Vulnhub靶机渗透总结 Vulnhub靶机介绍 vulnh
  • keil仿真调试报错

    问题 程序能正常下载 但是keil仿真调试报错 进入仿真程序就在全速运行了 此时什么都干不了 查看command窗口日志信息会发现有报错 jlink error cpu is not halted 然后点击reset按钮会退出全速仿真 所有
  • 一个自己用的opencv历程

    include
  • 设两个栈(stack1,stack2)共享一个一维数组空间s[m],怎么最大限度地利用数组空间

    可以利用扩充栈操作 在传统的双端栈中 两个栈之间存在一种制约关系 两个栈中的元素总数最大可以达到M 如果一个栈中的元素较多 那么另一个栈中的元素就较少 两个栈中的元素总和超不过M 它主要利用了栈的 栈底位置不变 而栈顶位置动态变化 的特性
  • jquery 读取 解析 四级的xml文件 案例

    答案 jQuery 可以很容易地使用 AJAX 技术来解析 XML 文件 下面是一个案例 ajax type GET url yourXMLFile xml dataType xml success function xml xml fin
  • python day55

    今日内容 如何写一个测试脚本 创建一个test py文件 from django test import TestCase Create your tests here import os if name main os environ s
  • unity shader中的矩阵变换知识

    提要 在图形的计算中 比如旋转 缩放 平移 投影等操作 矩阵都扮演着极其重要的角色 它是操作图元的基本工具 虽然很多的图形API已经封装好了这些矩阵操作 但是理解这些矩阵操作的原理会非常非常有帮助 比如说我们可以通过一些矩阵的快捷计算来加速
  • Windows下切换进程用户名为当前用户名,而不是SYSTEM

    在windows操作系统中 某些情况下 我们需要将程序以管理员身份启动 通过任务管理器我们可以看到程序的持有者 如下图所示 使用SYSYTEM权限启动的程序 理论是不可以访问到当前用户下的部分目录 这个时候我们可以在必要时候切换成武到当前用