以本地pipe理员身份login。 尝试将pipe理员作为驱动器上所有文件和文件夹的所有者。 该驱动器包含一个现有的文件夹结构,其中使用robocopy从另一个服务器复制了securities / permissions / acls,这就是本地pipe理员或pipe理员组无法访问所有文件夹的原因。 这种情况发生在inheritance被破坏的各个地方。
如果我使用icacls / setowner,那么我的访问被拒绝了。 如果我使用takeown命令,它会强制取得所有权,但也会删除所有其他权限,从而导致只有本地pipe理员被列在权限中。 我需要保留现有的权限,但拥有所有权,所以我的其他恢复和复制作业不会在破损的inheritance点失败。
用Setacl完成了我想要的。 我编写了以下脚本,它翻录了整个文件夹结构和文件,并赋予了本地pipe理员组所有权,然后再次完成并为我们的IT域组添加了完整的控制ACE。 这样做没有replace或删除现有的权限/ ACE(除了replace所有者),我没有得到任何访问被拒绝的错误:
setlocal set logDir=%1 set targetDir=%2 set logFileName=%~n2 set logFileNameEnding=%3 SetACL.exe -on %targetDir% -ot file -actn setowner -ownr "n:S-1-5-32-544;s:y" -rec cont_obj -log "%logDir%\%logFileName%-TAKEOWN-%LogFileNameEnding%.txt" -silent SetACL.exe -on %targetDir% -ot file -actn ace -ace "n:domain\group;p:full;s:n;m:set;w:dacl" -rec cont_obj -log "%logDir%\%logFileName%-ADD-DOMAIN-GROUP-%LogFileNameEnding%.txt" -silent endlocal
您可以尝试添加更多的权限,而不是取得源的所有权,但如果失败,则必须弄清楚访问权限,然后在更改所有权后重新创build它们。
这些文件应该已经准备好在原始系统上传输,或者应该没有外部许可权的情况下进行robocopied。 你有没有不知名的用户在权限的负载?