如何在SYSTEM进程中访问注册表下HKEY_CURRENT_USER

kane 2007-04-17 05:45:42
产品安装程序是MSI做的,在安装过程中另起了一个进程来完成一些安装操作,这个新建的进程是一个SYSTEM进程,在这个进程中想存取注册表的HKEY_CURRENT_USER应该怎样做?

由于用户问题,在程序中直接存取HKEY_CURRENT_USER的话,只能访问到HKEY_USER/.DEFAULT

请有经验的高人指点
...全文
304 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallcrocodile 2007-04-23
  • 打赏
  • 举报
回复
很多安装程序都可以直接修改注册表的
kane 2007-04-19
  • 打赏
  • 举报
回复
最终是在SYSTEM进程中先得到当前登陆用户的SID,再拼接上HKEY_USER
相当于得到HKEY_CURRENT_USER
kane 2007-04-18
  • 打赏
  • 举报
回复
在MSI安装程序时新建进程的时候要用CreateProcessAsUser来创建进程,是这样理解的吗?
蒋晟 2007-04-18
  • 打赏
  • 举报
回复
CreateProcessAsUser
liuyaoyou 2007-04-18
  • 打赏
  • 举报
回复
帮顶
kane 2007-04-18
  • 打赏
  • 举报
回复
to ljc007:

需求是在程序里调用api访问注册表
kane 2007-04-18
  • 打赏
  • 举报
回复
to jiangsheng:
感谢你的建议,能详细一些吗?runas 是API?
蒋晟 2007-04-17
  • 打赏
  • 举报
回复
用runas服务,但是需要知道用户名和密码
ljc007 2007-04-17
  • 打赏
  • 举报
回复
提升为System权限的方法
方法一:使用pstools里面的PsExec(具体用法google一下可以找到很多)
方法二:使用at命令(因为at命令启动的计划任务,默认以SYSTEM特权运行)
at 15:00 /interactive C:\WINDOWS\regedit.exe

参数/interactive表示以交互模式启动注册表编辑器,必须加上该命令参数,否则将无法看到启动的注册表编辑器。
ltzhh 2007-04-17
  • 打赏
  • 举报
回复
对不起,
我无能为力,
但可以帮你顶一下
SQL Server 2005(适用于2000)的卸载是一个非常头疼的问题。我曾经尝试过直接使用【添加或删除程序】工具卸载、清除安装目录、删除注册表内容等等各种方式综合卸载,勉强成功。现在终于找到了一个事半功倍的方法,多次尝试,未有失败,具体如下: 1.下载卸载工具,有两种: 第一种是微软官方提供的工具(msicuu2.exe) http://support.microsoft.com/default.aspx?kbid=290301 第二种是各大下载网站下载的非微软官方工具(SrvInstw.exe) 微软官方工具需要安装,而且安装步骤比较麻烦,还有没找到支持64位的; 非微软官方工具纯绿色,不需安装,直接卸载,支持64位。 所以我还是习惯用非微软官方工具,觉得好用。 2.使用卸载工具卸载所有SQL Server服务和相关组件(注意:卸载前要先停止对应的服务,否则可能卸载失败) 3.删除C:\WINDOWS\inf 下所用文件(我是在该文件夹下搜索“sqlserver”,然后删除所有结果文件) 可能搜索inf文件夹,根本没有任何信息,那就不用删了 4.删除sql 2005安装目录下的所有文件 5.删除注册表: 把HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Microsoft SQL Server HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVER AGENT HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \MSSQLServerADHelper 全部删掉,但是一般来说,如果用了卸载工具之后,注册表不会有这些内容了(我用了SrvInstw.exe之后就没发现注册表有以上内容) 6.使用控制面板的【添加或删除程序】工具,查看有无其他未删除的SQL Server程序,如有都一并删除掉 7.重启计算机 计算机重启完成后,SQL Server 2005就被完全的卸载干净了,可以正常重新安装。

6,868

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧