你如何解决公司文件共享损坏或阻止的权限?

最近我一直在和一个存储人员合作一个项目,这个项目涉及公司多年来一直使用的大文件股份的审查。 我们经常遇到无法访问的目录或文件(使用域pipe理员帐户),原因如下:

  • 损坏的ACL
  • 访问权已被撤销或拒绝pipe理员组(或SYSTEM用户)
  • 文件名+path太长(超出MAX_PATH )

在微软(如TAKEOWN.EXE和ICALCS.EXE)或第三方(如SETACL.EXE )的这些情况下,有一些工具可以提供帮助。 有时候还需要其他技巧,比如在PSEXEC.EXE下运行SYSTEM帐户下的一个命令。 即使只是搞清楚要采取什么措施,按照什么顺序是一个挑战。

例如,我希望能够像这样的stream程排除故障:

  1. path太长了吗? 如果是这样,用\\?\前缀build立一个path,然后再次testing。
  2. ACL是否损坏? 如果是这样,请正确地重新sortingACE并删除所有未知数,然后再次testing。
  3. pipe理员组是否拒绝访问? 如果是这样,请取得所有权,为Administrators组和SYSTEM帐户添加权限,然后重新进行testing。
  4. 它还在失败吗? 如果是,则删除所有ACE并仅应用inheritance权限,然后再次检查。 (这是最后的手段,因为它经常会打开更严格的权限。)
  5. 这是一个目录吗? 如果是这样,那么这个过程需要recursion地继续进行内部的文件…

手动完成上述步骤是一件痛苦的事情,当我们有数百个目录需要修复时,这是不合理的。 我曾尝试编写脚本来帮助解决这些问题,但发现很难使脚本对其做出的决策“很聪明”,因此通常只需要修复inheritance权限就可以轻松地完成一个总体修复方法。

任何人都可以推荐其他软件和/或脚本,这将有助于在这个过程? 或者,你如何去解决像这样的权限问题?

我build议使用fileacl – 它能够使用SeBackupPrivelege设置ACL,因此不需要您正在运行下面的命令的用户将有权限更改给定对象上的ACL。 此外,它本身支持后NTFS-5inheritancefunction,并且很容易编写脚本,所以对于一些包装脚本逻辑,它应该做你想做的。