【问题标题】:Windows 7 file access permission questionWindows 7 文件访问权限问题
【发布时间】:2010-11-19 04:47:51
【问题描述】:

我在 Windows 7 中安装了我的应用程序,作为安装的一部分,它安装了一些文本文件。现在,如果我在记事本中打开文本文件并尝试保存它,我会收到“拒绝访问”错误。我在机器上以管理员身份登录,文件未标记为只读,安全权限似乎没问题。

但是,我可以毫无问题地删除或重命名文件,并且可以使用记事本创建一个具有相同名称/位置的新文件,并且保存工作正常。

我知道这与 UAC 有关。我想知道 UAC 做了什么来阻止对文件的访问。我们的应用程序未安装在 Program Files 文件夹中,因为我相信 UAC 会限制对 Program Files 文件夹中文件的任何更改

任何人都可以了解正在发生的事情吗?

问候 G

【问题讨论】:

    标签: windows-7 uac


    【解决方案1】:

    使用 UAC,仅仅因为您以具有管理员权限的用户身份登录并不意味着程序实际上与它们一起运行。该程序必须请求特权提升(这会弹出“您是否要允许此程序_____”UAC弹出窗口)或明确以管理员身份运行(右键单击程序/快捷方式并选择以管理员身份运行)。

    默认情况下,标准“用户文件”(又名“我的文档”)之外的大多数驱动器区域仅限管理员访问,但如果需要,可以更改文件夹权限以添加特定用户的访问权限.

    【讨论】:

    • 正如我在原始问题中所述,通过记事本保存时,我可以删除/重命名导致访问被拒绝错误的文件。此外,我可以在出现访问被拒绝错误的同一位置创建新文件。我猜当我们的应用程序使用 Installshield 安装时,Windows 7 会处理在安装过程中部署的所有文件,从而阻止访问。真的很想知道 UAC 如何阻止仅访问某些文件以及它如何跟踪文件是否由安装程序部署
    • 与非系统应用程序(例如记事本)相比,Windows 资源管理器进程(您将在其中进行重命名/移动)可能存在不同级别的访问权限。跨度>
    • 这个答案提出了一种可能有用的策略:使用“以管理员身份运行”打开记事本,然后编辑并保存文件。
    【解决方案2】:

    您会发现,除了用户的“我的文档”区域之外,几乎在任何地方保存文件都会受到限制,这包括保存到系统上的其他驱动器等。

    如果您检查您尝试写入的目录的权限,您所要做的就是明确授予用户权限。否则只有管理员有权限,这需要用户的 UAC 批准才能获得管理员令牌。

    【讨论】:

      【解决方案3】:

      当文件正在使用时,您通常会收到“拒绝访问”错误。 UAC 在这里不是问题。检查文件是否正在被其他进程使用。

      您可以使用 sysinternals 的 Process Explorer 等工具来执行此操作。

      【讨论】:

      • 该文件肯定没有被使用,因为我可以重命名/删除它。仅从记事本或任何编辑器中保存都会出现此错误。
      【解决方案4】:

      您必须右键单击该文件并选择属性。然后打开安全选项卡,您可以看到具有不同权限的不同帐户。单击用户,它应该突出显示。它下面的框应该有一堆复选标记,指示该用户可以做什么。单击完全控制。申请并确定。那你就可以省了!!!

      【讨论】:

      • 这不起作用 - 即使您是管理员,UAC 也会阻止请求。
      猜你喜欢
      • 2018-04-28
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2011-05-22
      相关资源
      最近更新 更多