为什么我可以使用UAC写入Program Files的特定目录?

时间:2009-01-09 04:29:55

标签: winapi windows-vista uac

这对我来说很奇怪。让我列出设置:

  • 使用清单的应用程序(即:不会被推送到虚拟商店)
  • UAC已开启(无法写入其他程序文件目录或其他区域,并显示uac提示)
  • 可以从我的应用程序(不是以管理员身份运行)以及非管理员命令提示符写入“c:\ program files \%app_name%\%directory%\”
  • 无法写入“c:\ program files \%app_name%\%目录%\%子目录%\”。

有什么想法吗?某处隐藏权限或注册表设置?可能是这个目录是在UAC关闭时创建的,所以现在它的公平游戏?可能是这个目录是在XP时代创建的,还有它的公平游戏?

对我来说,为什么我不能写入其他程序文件目录和子目录是有道理的。但是我不知道为什么我实际上被允许写入%目录%?

旁注:如果我将%目录%移动到另一个区域(appdata),我仍然无法写入子目录(混淆)。

让我知道您可能拥有的任何想法或我可以检查的任何想法。

由于

1 个答案:

答案 0 :(得分:1)

编辑:Arr,对不起,我的帖子有点太快了,看起来这不是问题!

你看过写文件的实际位置吗?

Vista具有一项功能,即应用程序写入Program Files文件夹的文件会被重定向到每个用户的本地商店。此商店位于%userprofile%\ AppData \ Local \ VirtualStore

这是为了允许将每个用户设置写入Program Files的遗留应用程序仍能正常运行,同时允许多个用户使用该程序而不会发生冲突。

在资源管理器中有一个名为“兼容性文件”的按钮,它会将您带到这个用户商店。也许你的写作结束了吗?

我不知道为什么你不能写到子目录。安全权限?