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目录下成功创建文件呢???

请高手指导一下!

谢谢!

...全文
10424 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是隐藏状态的

65,178

社区成员

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

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