访问被拒绝在Windows 7上为管理员帐户提交文件

Gel*_*Luo 13 windows git administrator access-denied windows-7

我想删除我的Windows 7框中由git创建的git存储库(.git文件夹).它说拒绝访问.git/refs/header文件夹.

我打开一个具有管理员角色的控制台,发出命令"takeown/F heads/A/R",它仍然显示"ERROR:Access is denied.",我也无法通过GUI安全对话框进行操作.

有什么建议吗?

此致,绿色

Leo*_*son 18

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

(我假设GIT就像SVN,其中存储库中的每个文件都是由您自己的帐户使用标准权限创建的.如果不是这样,那么我可能是错的.)

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

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

    我不仅仅意味着以管理员身份登录.Windows 7的UAC意味着管理员帐户默认情况下不会运行具有完全管理员权限的内容.右键单击procmon.exe,然后选择"以管理员身份运行"选项.

    我假设你已经熟悉这个以管理员身份运行命令提示符.如果您刚刚更改为管理员帐户,但未在命令提示符下使用"以管理员身份运行",那么这可能就是takeown命令失败的原因.除非UAC完全关闭,否则命令提示符应在其窗口标题中显示"Administrator:"(如果它已正确提升).

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

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

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

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

  • 你是对的,肯定有其他进程锁定了该文件夹。当我关闭我的 eclipse 进程时,它会被删除。我想它以某种方式被 eclipse E-Git 插件锁定了。它的 Windows 提供了该文件属于未知用户的误导性信息,并且 cygwin 报告用户和组是 ???。 (2认同)
  • +1对我来说问题是TGitCache(Toirtoise Git Cache)。杀掉就解决了。 (2认同)