【问题标题】:Access denied to file on windows 7 for Administrator account访问拒绝在 Windows 7 上为管理员帐户提交文件
【发布时间】:2011-05-31 21:01:16
【问题描述】:

我想删除 git 在我的 Windows 7 机器上创建的 git 存储库(.git 文件夹)。它说拒绝访问 .git/refs/header 文件夹。

我打开一个具有管理员角色的控制台,发出命令“takeown /F head /A /R”,它仍然显示“错误:访问被拒绝。”,我也不能通过 GUI 安全对话框进行操作。

有什么建议吗?

问候, 绿色

【问题讨论】:

    标签: windows git windows-7 access-denied administrator


    【解决方案1】:

    访问被拒绝错误可能意味着文件正在被另一个进程使用,对于 GIT 存储库,这似乎比文件权限问题更有可能。

    (我假设 GIT 类似于 SVN,其中存储库中的每个文件都是由您自己的具有标准权限的帐户创建的。如果不是这样,那么我可能是错的。)

    • 第一步,以管理员身份运行 Process Explorer,然后按 Ctrl-F 打开一个窗口,您可以在其中键入文件名并查看哪些进程(如果有)打开了该文件。

      当我说“以管理员身份运行”时:

      我不仅仅指以管理员身份登录时。 Windows 7 的 UAC 意味着管理员帐户在默认情况下不运行具有完全管理员访问权限的东西。右键单击 procmon.exe 并选择“以管理员身份运行”选项。

      我假设您已经通过以管理员身份运行命令提示符熟悉了这一点。 如果您刚刚更改为管理员帐户,但没有在命令提示符下使用“以管理员身份运行”,那么这可能是 takeown 命令失败的原因。命令提示符应显示“管理员:”如果它被正确提升,则在其窗口标题中,除非 UAC 完全关闭。

    • 如果列出了一个或多个进程,请确认列表中的完整文件路径(以防磁盘上的其他文件具有相似名称)。

    • 关闭所有打开文件的进程。如果可以,请尝试正常关闭它们。作为最后的手段,你可以结束他们的任务。如果它是作为另一个用户/帐户运行的进程,它可能是您可以停止的服务。

      (确保查看->显示所有用户的进程被勾选,然后通过 PID 列找到有问题的进程。如果您认为它是一项服务,请将鼠标悬停在它上面,将出现一个工具提示,告诉您名称(s ) 它正在运行的任何服务。)

    • 如果您找不到任何访问文件的进程,或者将它们全部关闭仍会导致访问被拒绝错误,并且您肯定是在尝试从提升的命令提示符删除,那么您可能想尝试告诉 Windows下次重新启动时删除该文件。为此,您可以使用 SysInternals MoveFile 工具。

    【讨论】:

    • 你是对的,一定有其他进程锁定了该文件夹。当我关闭我的 Eclipse 进程时,它会被删除。我想它被eclipse E-Git插件以某种方式锁定了。它的窗口提供了文件属于未知用户的误导性信息,而 cygwin 报告用户和组是???。
    • +1 对我来说,问题是 TGitCache(Toirtoise Git Cache)。杀死它解决了它。
    • +1 我在尝试切换分支时使用带有 git 集成的 Visual Studio 时遇到了这个问题。我关闭了 VS,文件消失了(它在另一个分支中不存在),现在一切都很好。谢谢!
    • Git 重命名 --> 拒绝访问;文件资源管理器:重命名 --> 确定
    • 当 cygwin 会话打开文件夹(拒绝访问文件夹等于 $PWD)时,这发生在我身上。解决方案是简单地离开它cd ..cd ~
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2015-06-22
    相关资源
    最近更新 更多