C:\Users\myUSer\AppData\Local\Temp写权限的问题

yanghartai 2011-06-03 11:54:39
系统:
win2008 64bit

创建临时文件使用的windows API:
GetTempFileName(.....)

现象:
我的程序需要在C:\Users\myUser\AppData\Local\Temp目录下面创建一个临时文件,当我用myUser登录到系统后运行程序,临时文件能够被创建出来。
如果我的程序以一个service的方式启动,那么登录的用户是SYSTEM,程序将用户切换到myUser后,再去C:\Users\myUser\AppData\Local\Temp目录下面创建临时文件的时候就会失败!可是,这个时候却可以在去C:\Users\myUser\AppData\Local目录下面成功创建临时文件。

为了验证,我在C:\Users\myUser\AppData\Local目录下用Adminnistrator创建了一个目录myDir,我发现:
1)用myUser登录到系统后运行程序, 可以在C:\Users\myUser\AppData\Local\myDir下面创建临时文件。
2)以service的方式启动,程序将用户切换到myUser后,在C:\Users\myUser\AppData\Local\myDir下面创建临时文件失败!同样的,在C:\Users\myUser\AppData\Local目录下面是可以成功创建临时文件的。

请问这是什么原因呢?是权限的问题吗?Administrator是完全读写权限的啊。
最奇怪的是,为什么在C:\Users\myUser\AppData\Local\Temp目录下没有办法创建文件,却可以在C:\Users\myUser\AppData\Local目录下成功创建文件呢???

请高手指导一下!

谢谢!

...全文
11329 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanghartai 2011-06-04
  • 打赏
  • 举报
回复
是啊,为什么呢?
如何解决?

[Quote=引用 4 楼 c_losed 的回复:]
有可能是权限问题
win7系统曾遇到过类似问题
[/Quote]
yanghartai 2011-06-04
  • 打赏
  • 举报
回复
我的程序需要进行用户的切换来做一些事情。
我的理解上,即便是任何一个用户,比如myUser,不一定必须是admin,它应该是可以访问到属于自己的C:\Users\myUser\AppData\Local\Temp的,是这样的吗?

[Quote=引用 1 楼 c_losed 的回复:]
myUser是admin权限?
2008木用过 可以考虑程序提权 这样就不用切换用户鸟
[/Quote]
c_losed 2011-06-04
  • 打赏
  • 举报
回复
有可能是权限问题
win7系统曾遇到过类似问题
yanghartai 2011-06-04
  • 打赏
  • 举报
回复
编辑不了了,其实就是Administrator用户。
也就是说service方式下,切换到Administrator后,在C:\Users\Administrator\AppData\Local\Temp下不能创建文件,但是却可以在C:\Users\Administrator\AppData\Local下创建文件。

以Administrator方式登录系统后运行程序,可以在C:\Users\Administrator\AppData\Local\Temp下不创建文件。

why?
yanghartai 2011-06-04
  • 打赏
  • 举报
回复
我写错了,重新编辑一下,其实用户就是Administrator

[Quote=引用 1 楼 c_losed 的回复:]
myUser是admin权限?
2008木用过 可以考虑程序提权 这样就不用切换用户鸟
[/Quote]
c_losed 2011-06-04
  • 打赏
  • 举报
回复
myUser是admin权限?
2008木用过 可以考虑程序提权 这样就不用切换用户鸟
就想叫yoko 2011-06-04
  • 打赏
  • 举报
回复
用管理员模式开启CMD重新注册服务试试
ningto.com 2011-06-04
  • 打赏
  • 举报
回复
win7权限问题:
要写的话win7有提供一个低权限的地方就是: C:\Users\Administrator\AppData\LocalLow
注意AppData是隐藏状态的
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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