服务中访问 HKEY_CURRENT_USER

处理进程在SYSTEM权限下无法读取HKEY_CURRENT_USER注册表的问题 最近在工作中碰到了,某个进程在SYSTEM权限下无法读取到HKEY_CURRENT_USER注册表的问题。所以写一下文章记录下排查和处理的过程。 阅读详情

很多人写的服务都是以默认的 LocalSystem 帐号运行,该帐号在本机上有极高的权限,但有几个限制:

1. 不能访问网络资源;

2. 没有对应的 SID,不能访问需要登录才能访问的资源;

 

所以,这样的服务不能直接访问 HKEY_CURRENT_USER,读取会失败,写入则会被重定向到 HKEY_USER/.Default 下;

经过查资料,需要做两件事:

1. 模仿一个用户登录;

 HANDLE  hLogonToken = NULL;
 HANDLE  hAdminToken = NULL;
 
 if (!LogonUser(m_strUserName, _T("."), m_strPassword,
  LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hLogonToken))
 {
  DebugInfo(_T("ImpersonateAdmin(): LogonUser() failed."));
  return FALSE;
 }
 
 if (!DuplicateTokenEx(hLogonToken, TOKEN_ALL_ACCESS, NULL,   
  SecurityIdentification, TokenPrimary, &hAdminToken))
 {
  DebugInfo(_T("ImpersonateAdmin(): DuplicateTokenEx() failed."));
  CloseHandle(hLogonToken);
  return FALSE;
 }
 
 if (!ImpersonateLoggedOnUser(hAdminToken))
 {
  DebugInfo(_T("ImpersonateAdmin(): ImpersonateLoggedOnUser() failed."));
  CloseHandle(hAdminToken);
  CloseHandle(hLogonToken);
  return FALSE;
 }

 CloseHandle(hAdminToken);
 CloseHandle(hLogonToken);

 // .....

 RevertToSelf();

2. 把 HKEY_CURRENT_USER 映射到当前模仿的用户,这个工作需要程序员显式地调用;

 HKEY hKey = HKEY_CURRENT_USER;
 RegOpenCurrentUser(KEY_ALL_ACCESS, &hKey);

Protel99SE安装教程:从零实现用户账户控制(UAC)设置 手把手带你完成Protel99SE安装全过程,重点解决Windows系统下因用户账户控制(UAC)导致的运行异常、文件写入失败等问题。涵盖兼容性模式配置、注册表权限调整及常见报错应对,确保老软件在新系统稳定运行。 阅读详情

相关推荐

ros2 humble cartographer 2D激光雷达建图

Cartographer是一个支持多平台和传感器配置的SLAM的系统。 本文主要讲述在ros2 humble系统上cartographer的安装方法,以及如何配置参数实现自己的ros2 bag包的离线建图。

weixin_43087302的博客 6939

html文件超链接打不开,Excel中出现超链接打不开的解决方法

excel表格中的超链接打不开怎么办?当excel文档里面的超链接无法打开,提示以下错误,而经确认,用户对超链接的目的文档有完全控制权限。今天,学习啦小编就教大家在Excel中出现超链接打不开的解决方法。Excel中出现超链接打不开的解决步骤如下:当excel文档里面的超链接无法打开,提示以下错误,而经确认,用户对超链接的目的文档有完全控制权限。以下提供该问题的解决办法。1、打开开始菜单,在运行里...

weixin_36240177的博客 776

AD936x Evaluation Software 实战配置指南:从寄存器设置到滤波器优化

本文提供AD936x Evaluation Software的实战配置指南,详细解析从工程创建、RF向导与时钟模块配置,到数字滤波器优化、数字接口设置及增益控制的完整流程。重点分享寄存器设置、滤波器系数权衡及PLL稳定技巧等核心要点,帮助开发者高效配置AD9361/AD9363射频芯片,快速应用于SDR、基站等场景。

perl8的博客 697

请确保你有足够的权限访问注册表项

输入gpedit.msc。

weixin_55666891的博客 3658

5个实战必备的多模态情感分析数据集(附下载链接与避坑指南)

本文精选了5个实战必备的多模态情感分析数据集,包括CMU-MOSEI、CH-SIMS、UR-FUNNY、MUStARD和IEMOCAP,并提供了详细的下载链接与避坑指南。文章重点介绍了如何高效获取、预处理这些数据集,并自然整合了多模态情感分析的核心热词,旨在帮助研究者和开发者快速启动项目,规避常见陷阱,聚焦模型创新。

yolo5detector的博客 280

高通平台开发系列讲解(系统篇)系统关机流程

📢本篇章主要图解高通平台系统关机流程。

内核笔记 3212

如何读取指定用户的 HKEY_CURRENT_USER 注册表键

注册表中 HKEY_CURRENT_USER 键下的内容隶属当前用户,所以当你以不同用户登陆时该键下的内容都是不尽相同的。但有时候我们有读取指定用户该键下内容的需求。比如,我们有一个服务程序运行在 Session0, SYSTEM 权限,而我们想读取的却是当前登陆到本地控制台的用户的 IE 代理服务器设置参数。我们当然不能直接从服务中打开 HKEY_CURENT_USER 键, 用我们当前令牌打开

白水绕东城 7615

6.10华为OD机试真题 新系统 - 查找温度记录统计信息 (Java/Py/C/C++/Js/Go)

6.10华为OD机试真题 新系统 - 查找温度记录统计信息 (Java/Py/C/C++/Js/Go)

算法大师! 436

SYSTEM权限的进程操作HKEY_CURRENT_USER注册表

系统权限进程读取用户注册表 system权限的进程、服务若要操作用户注册表(HKEY_CURRENT_USER),如果直接操作则获取的内容不是真正想要获取的内容,因为路径被重定向的,所以要从HKEY_USERS中来操作。 首先获取用户SID,然后再将该SID与要操作的注册表项凭借在一起,就可以操作HKEY_CURRENT_USER中的项了 //这个函数的的代码不美观哈 BOOL GetTokenByName(HANDLE &hToken,LPTSTR lpName) { if (!l

feixi7358的博客 3112

二、NovAtel Connect 2.3.2 版本 操作说明

一、连接方式 有 串口连接、USB连接、蓝牙连接、无线网连接、网口连接,具体的连接方式看博客: https://blog.youkuaiyun.com/hltt3838/article/details/110622732 下面具体的介绍一下 串口的连接方式: 接收机有三个串口,COM1、COM2、COM3,看上面的连接就知道了! 并且有三个对应的线,1 2 3 ; 把线和串口对应连接,串口的另一端和电脑连接,当然如果电脑没有串口,可以用 串口转USB,如线图所示: (当然,一定要连接电源呀) ...

努力努力努力 4383

机器学习特征选择-t检验

在特征选择的过程中通过计算检验统计量值,比较特征之间的统计量的大小,并降序排列,选取统计值较高的特征,从而起到去除差别小的特征(此差别小的特征难以区分不同的额类别)的目的。 以t检验(Student's t test)为例: 假设检验 通过比较两类样本的随机变化,通过计算其p值决定是否拒绝零假设,也即是说:通过计算p值,若p值小于某一阈值则认为两个样本具有显著差异,两个样本是不同的,此时拒绝...

heda3的博客 6700

从系统服务进程访问HKEY_CURRENT_USER主键

gh0st服务端中写了个函数修改HKEY_CURRENT_USER里面键的值,demo中都能顺利修改,但移植到服务端中却无法修改(后来才发现其实是修改了的,不过却是修改到HKEY_USER\.Default 下了),优快云也发贴了,可是却没有人能说到重点或者是自己对问题的描述不清楚吧,别人无法帮助。       百度了好久,资料一点点汇集,才找到了正确答案。       具体原因是,

oceanark的博客 868

手把手教你学Simulink——光伏储能系统双向DC-AC逆变器恒功率控制(PQ控制)仿真

本文详细介绍了光伏储能系统中双向DC-AC逆变器的恒功率控制(PQ控制)仿真方法。主要内容包括:1)PQ控制原理及其在光伏满发和储能充放电中的应用;2)系统架构设计,重点推导了功率到dq电流的数学映射关系及电流内环控制算法;3)Simulink建模步骤,涵盖功率电路搭建、PLL设计、电流参考转换等关键环节;4)仿真结果分析,验证了系统在10kW光伏满发和-5kW储能充电模式下的稳态精度和动态切换性能;5)工程实践建议,包括数字控制延迟补偿、低电压穿越处理等实际问题解决方案。该指南为新能源并网系统的功率精准控

MHD0815的博客 425

服务中读取当前用户注册表HKEY_CURRENT_USER

服务 HKEY_CURRENT_USER HKEY_USER 读取 RegQueryValueEx 注册表   我在服务程序中使用RegQueryValueEx读取注册表HKEY_CURRENT_USER下的内容,发现读取到的内容不是预期的内容。 原因是: 1.服务运行在系统权限之下,而不是任何一个用户 2.HKEY_CURRENT_USER存储的是当前用户的信息

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 2931

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

电脑账户服务器未能登录拒绝访问,win7系统开机提示服务未能登入拒绝访问的解决方法...

很多小伙伴都遇到过win7系统开机提示服务未能登入拒绝访问的困惑吧,一些朋友看过网上零散的win7系统开机提示服务未能登入拒绝访问的处理方法,并没有完完全全明白win7系统开机提示服务未能登入拒绝访问是如何解决的,今天小编准备了简单的解决办法,只需要按照 1、重启win7旗舰版系统计算机,不停地快速点击F8键,弹出“高级启动选项”窗口之后,使用键盘上的上下方向箭头选中“安全模式”,然后按回车键即可...

weixin_42131601的博客 9505

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Fiddler开启Https的时候出现unable to configure windows to trust Fiddler Root certificate问题

前言 通过log页面看到错误为:访问控制列表(ACL)结构无效。 网上(baidu,bing,google)各种方式都试过了: 如重置证书(Reset all certificates) 导出证书到本地(Export Root certificates to Desktop) 删除证书,重新搞 各种重装软件操作 ...... 然而都没用,家里和公司电脑都一样(家里重装系统搞定的)...

weixin_30292745的博客 612

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

纯java访问注册表

纯java访问注册表One can use the private code of Suns Preferences API to access values of type REG_SZ in the Windows Registry. Ofcourse - I completely agree that this is a VERY HORRIBLE HACK so dont lect

xymyeah 1583

服务操作注册表问题

一般应用程序可以操作注册表,不会出现上面问题。但是做成Windows服务的形式就会存在很多问题。问题一:服务无法访问到HKEY_CURRENT_USER中的值。解决:服务一般做成LocalSystem,本地服务,本地服务权限比较高,但本地服务无法访问HKEY_CURRENT_USER中的值,因为它是保存当前用户的信息内容(需要用户登录),本地服务无法访问到需要用户登录的注册表信息。HKEY_CURRENT_USER中的值是一直在变的,登录用户不同,值不同,HKEY_USERS下保存了很多sid,包含用户的s

野百合的专栏 1752

小功能隐藏着大学问---windows的ACL带来的挑战

     为什么说这个功能小呢?1.此功能只是在用户装了某一软件时才用得着,用户装这个软件的可能性很小;2.此功能只需要修改一处注册表键值;   于是这样简单实现了:   在一个windows服务程序中调用一个修改注册表键值的方法进行修改,单元测试,这个方法很成功。但是在以服务运行的方式进行的测试中,打开此处注册表的方法一直报“找不到注册表路径”的错误。诸位看官,此处注册表的根键为HKEY_CUR...

weixin_33889665的博客 219

计算机 服务未能登陆,Ghost win7开机提示服务未能登入拒绝访问怎么办

当用户开启Windows7操作系统的时,提示Group Policy Client 服务未能登录,拒绝访问,怎么办呢?其实出现提示说明该服务默认是自动运行的,若某些第三方应用或病毒修改了用户配置文件的权限,就会导致这个开机异常。解决是通过添加相关账户完全控制的权限措施来解决。 雨林木风Ghost win7系统 开机提示服务未能登入拒绝访问怎么办?一起来学习吧!操作方法:1、重启计算机,不停地快速点...

weixin_34141225的博客 687

Win7开机时显示服务器未登录,Ghost win7开机提示服务未能登入拒绝访问怎么办

当用户开启Windows7操作系统的时,提示Group Policy Client 服务未能登录,拒绝访问,怎么办呢?其实出现提示说明该服务默认是自动运行的,若某些第三方应用或病毒修改了用户配置文件的权限,就会导致这个开机异常。解决是通过添加相关账户完全控制的权限措施来解决。 雨林木风Ghost win7系统 开机提示服务未能登入拒绝访问怎么办?一起来学习吧!操作方法:1、重启计算机,不停地快速点...

weixin_35435986的博客 1630

对注册表项“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”的访问被拒绝。

打开注册表,把这几个地方的权限设置一下。

li5672的专栏 4383

注册表中的HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER

特点作用范围适用于整个计算机,所有用户适用于当前登录用户数据类型硬件信息、系统配置、全局软件设置用户环境配置、应用程序特定设置访问权限需要管理员权限来改变普通用户即可更改常见子键SOFTWARESYSTEMHARDWARESAMBCDSoftware示例应用系统设置,如安装路径,驱动程序,安全策略用户偏好,如桌面背景,键盘布局,应用程序设置。

2301_80892630的博客 5876

Windows注册表的HKEY_CLASSES_ROOT是HKEY_LOCAL_MACHINE\SOFTWARE\Classes合并HKEY_CURRENT_USER\Software\Classes

定义:HKEY_CURRENT_USER(HKCU)包含了当前登录用户的配置信息的根目录。功能:存储当前用户的桌面设置、屏幕颜色、“控制面板”设置、用户文件夹路径等个性化配置。这些配置信息对于每个用户都是独立的,确保每个用户登录时都能看到自己的个性化设置。定义:HKEY_CLASSES_ROOT(HKCR)是系统中控制所有数据文件的项,包含了应用程序运行时必需的信息。功能:管理文件和应用程序之间的关联,包括文件扩展名、驱动程序名称、类的ID数字(CLSID)等。

kfepiza的博客 6386
上一篇: 如何评价房型优劣
下一篇: 在VC中WININET如何使用HTTP的POSTA和GET方法
HEJSCLK
博客等级 码龄19年 17粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值