我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Win8 CreateProcessAsUser管理员权限问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Win8 CreateProcessAsUser管理员权限问题

在Windows 8中,要使用CreateProcessAsUser函数以管理员身份运行进程,需要执行以下步骤:
1. 获取管理员访问令牌:使用OpenProcessToken函数打开当前进程的访问令牌。
2. 创建新的访问令牌:使用DuplicateTokenEx函数复制管理员访问令牌,并设置访问权限为TOKEN_ALL_ACCESS。
3. 获取管理员用户的会话ID:使用WTSGetActiveConsoleSessionId函数获取当前活动的控制台会话ID。
4. 获取与控制台会话关联的用户令牌:使用WTSQueryUserToken函数获取与指定会话ID关联的用户令牌。
5. 使用CreateProcessAsUser函数以管理员身份运行进程:将步骤2中创建的管理员访问令牌和步骤4中获取的用户令牌传递给CreateProcessAsUser函数。
以下是一个使用CreateProcessAsUser函数以管理员身份运行进程的示例代码:
```cpp
#include
#include
#include
BOOL CreateProcessAsAdmin(LPCWSTR wszPath)
{
HANDLE hToken;
HANDLE hDupToken;
DWORD dwSessionId;
HANDLE hUserToken;
PROCESS_INFORMATION pi;
STARTUPINFO si;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, &hToken))
{
return FALSE;
}
if (!DuplicateTokenEx(hToken, TOKEN_ALL_ACCESS, NULL, SecurityIdentification, TokenPrimary, &hDupToken))
{
CloseHandle(hToken);
return FALSE;
}
if (!ProcessIdToSessionId(GetCurrentProcessId(), &dwSessionId))
{
CloseHandle(hToken);
CloseHandle(hDupToken);
return FALSE;
}
if (!WTSQueryUserToken(dwSessionId, &hUserToken))
{
CloseHandle(hToken);
CloseHandle(hDupToken);
return FALSE;
}
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.lpDesktop = L"winsta0\\default";
BOOL bResult = CreateProcessAsUserW(hDupToken, NULL, wszPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
CloseHandle(hToken);
CloseHandle(hDupToken);
CloseHandle(hUserToken);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return bResult;
}
int wmain(int argc, wchar_t* argv[])
{
LPCWSTR wszPath = L"C:\\Path\\To\\Your\\Executable.exe";
if (CreateProcessAsAdmin(wszPath))
{
wprintf(L"Process started successfully!\n");
}
else
{
wprintf(L"Failed to start process!\n");
}
return 0;
}
```
请注意,为了编译此示例代码,需要链接Userenv.lib和Wtsapi32.lib库文件。另外,需要在程序中使用管理员权限运行,否则OpenProcessToken函数将失败。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Win8 CreateProcessAsUser管理员权限问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Win8 CreateProcessAsUser管理员权限问题

在Windows 8中,要使用CreateProcessAsUser函数以管理员身份运行进程,需要执行以下步骤:1. 获取管理员访问令牌:使用OpenProcessToken函数打开当前进程的访问令牌。2. 创建新的访问令牌:使用Dupli
2023-08-08

Win8取得超级管理员权限为鼠标右键添加取得管理员权限选项

使用Win8在找开系统文件夹是经常提示:无法访问……,拒绝访问。就是没有超级管理员权限所致,取得Win8超级管理员权限很容易,导入一个注册表文件就可以实现,并且操作简单。 不管是使用Win8还是Win7,在打开C
2023-06-06

怎么解决Win10管理员没有权限的问题

本篇内容介绍了“怎么解决Win10管理员没有权限的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!众所周知,管理员账号Administra
2023-06-07

win10电脑权限如何设置管理员权限

win10系统中的管理员权限是账户权限中比较高的,能够对系统的很多设置或者程序进行操作,很多网友想到给win10系统设置win10管理员权限,但是不知道该如何设置win10电脑权限。下面小编就教下大家win10系统如何设置管理员权限。具体的
2023-07-15

win8如何开启管理员帐户以及为其他账户赋予管理员权限

首先使用“Windows键+X”的组合键打开系统菜单,选择“计算机管理”,然后按顺序进入“系统工具-本地用户和组-用户”。打开用户组这时候我们就能看到当前的账户列表了,
2022-06-04

win8超级管理员权限开启和关闭图文教程

一、如何获得win8超级管理员权限我们这里只需要对注册表进行修改就能开启win8超级管理员的权限,有大部分网友对注册表这方面更是不熟悉,不建议大家去注册表内部进行修改。所以我们可以新建一个注册表文件,在将注册表文件导入到注册表即可。首先,在
2022-06-04

win8怎样设置管理员帐户(Administrator最高权限用户)

管理员帐户是Windows默认的最高权限用户,它有权力对系统进行任何等级设置或删除应用。而一般的标准帐户仅仅拥有使用权,而不是管理权。进入运行出于安全方面的考虑,默认情况下Win8系统的系统管理员Administrator账户是处于禁用状态
2022-06-04

如何修改win7权限为最高管理员权限

小编给大家分享一下如何修改win7权限为最高管理员权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法/步骤:方法一:1.右键选中“计算机”中的“管理”进入,在
2023-06-27

Windows的管理员管理权限怎么打开

这篇文章将为大家详细讲解有关Windows的管理员管理权限怎么打开,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.右键点一下桌面的计算机,选择管理,进入下一步。2.点击左边的当地用户和组,进入下一步。3
2023-06-27

java怎么实现管理员权限

在Java中,可以使用以下几种方式实现管理员权限:1. 使用if-else语句或switch语句判断管理员权限:```javaString userRole = "admin";if (userRole.equals("admin")) {
2023-08-24

win10管理员权限如何开启

要开启Windows 10的管理员权限,可以按照以下步骤操作:1. 打开“设置”应用程序,方法是点击“开始”按钮,然后点击齿轮图标。2. 在“设置”窗口中,点击“帐户”选项。3. 在左侧导航栏中,选择“家庭和其他人”或“其他用户”选项,取决
2023-09-02

Win7怎么获取管理员权限

这篇文章主要介绍“Win7怎么获取管理员权限”,在日常操作中,相信很多人在Win7怎么获取管理员权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Win7怎么获取管理员权限”的疑惑有所帮助!接下来,请跟着小编
2023-06-27

win10怎么获得管理员权限

这篇文章主要介绍了win10怎么获得管理员权限的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10怎么获得管理员权限文章都会有所收获,下面我们一起来看看吧。1、在右下方任务栏的“搜索web和windows”
2023-07-01

ubuntu管理员权限怎么打开

要打开Ubuntu的管理员权限,可以通过以下几种方法之一:使用sudo命令:在终端中输入需要管理员权限的命令之前,加上sudo,然后输入当前用户的密码即可获得管理员权限。例如,要安装软件,可以使用sudo apt install 命令。使用
2023-10-22

ubuntu如何获取管理员权限

在Ubuntu中,可以通过以下几种方式获取管理员权限:1. 使用sudo命令:sudo命令可以在临时提升权限,允许普通用户执行需要管理员权限的命令。例如,要以管理员身份执行一个命令,可以使用以下命令:sudo 命令。系统会要求输入当前用户的
2023-08-29

win7管理员权限怎么获取

win7管理员权限怎么获取对很多使用win7的用户来说很重要,由于只要有了管理员的权限就你可以随意访问win7的文件,下面就是win7管理员权限怎么获取方式介绍,最先客户必须进到打开运行进到组策略操作面板,在这儿就能够分配用户的权限,这样就
2023-07-10

win7管理员权限如何获取

这篇“win7管理员权限如何获取”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7管理员权限如何获取”文章吧。1、打开装
2023-06-28

win7管理员权限如何更改

今天小编给大家分享一下win7管理员权限如何更改的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win7管理员权限更改教程1、
2023-07-01

Win7如何获得管理员权限

Windows 7系统的默认账户虽然是管理员账户,但在很大程度上对于一部分系统关键文件的访问和修改权限还是没有,比如说在删除某一个文件时,就会提示:“您的权限不足,请点击继续来获得权限。”因此,在很大程度上,我们要开
2023-06-03

Win10如何获取管理员权限

这篇文章主要介绍Win10如何获取管理员权限,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Win10获取管理员权限的图文操作如下:1、按下 Win + R键盘组合键,快速打开系统运行窗口;2、在打开的运行窗口中,输入
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录