【问题标题】:Why can I write to a particular directory off of Program Files with UAC on?为什么我可以在打开 UAC 的情况下写入 Program Files 的特定目录?
【发布时间】:2009-01-09 04:29:55
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: winapi windows-vista uac


    【解决方案1】:

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

    您是否查看过写入文件的实际去向?

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

    这是为了允许将每个用户设置写入 Program Files 的旧版应用程序仍然可以正常运行,还允许多个用户使用该程序而不会发生冲突。

    资源管理器中有一个名为“Compatibility Files”的按钮,可将您带到此用户存储区。也许您的写入将结束?

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

    【讨论】:

    • 绝对不会写入虚拟商店。原因,即使应用程序的清单不工作,我很确定 cmd.exe 不会把东西扔在那里。很奇怪,不过还是感谢您的意见。
    • 好像和安全权限有关。不知道它是怎么变成这样的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多