用于重置 Windows 共享上的主目录权限的脚本

用于重置 Windows 共享上的主目录权限的脚本

是否有人使用过脚本重置主目录的权限?我正在考虑使用 FOR 循环和 CACLS 的某种组合来为使用与文件夹名称相同的域用户名的文件夹添加可继承的修改权限。

我们正在将用户共享从一台服务器迁移到另一台服务器,但现有共享并非全部都设置了正确的权限。我正在考虑复制所有文件夹而不复制权限,然后通过脚本重置权限,以便只有与文件夹匹配的用户名才有访问权限。然后,我可以重新应用有权访问其他用户文件夹的用户所需的任何额外权限。

答案1

假设您在 Windows Server 2003 或更新版本上运行此程序,您将拥有 TAKEOWN 和 ICACLS 命令。我还假设顶级文件夹权限设置合理(即“经过身份验证的用户 - 列出文件夹内容 - 仅限此文件夹”,如果您希望他们能够进入用户文件夹,则设置适当的“管理员”权限,等等)。

@echo off
FOR /D %%i in (*) do (
  TAKEOWN /f "%%i" /r /d y
  ICACLS "%%i" /reset /T
  ICACLS "%%i" /grant:r "DOMAIN\%%i":(OI)(CI)F
  rem Unremark this line to set the owner to the user, if you like that
  rem ICACLS "%%i" /setowner "DOMAIN\%%i" /T
)

这将取得所有权,清理所有权限并恢复继承,将具有完全控制权限的用户添加到目录,然后如果取消删除最后一行,则可以选择归还所有权。

我对不得不处理用户在主目录之外相互共享文件的问题表示歉意。这真的很麻烦。

答案2

作为参考,这是我使用的脚本,因为它更适合我们的环境

@ECHO OFF
FOR /D %%G IN ("*") DO echo y| cacls "%%G" /T /E /G "DOMAIN\%%G:C"

因为我们只需要授予用户权限。

相关内容