如何创建一个 bat 文件来创建具有适当权限的用户目录以及在出现问题时重置它的脚本

如何创建一个 bat 文件来创建具有适当权限的用户目录以及在出现问题时重置它的脚本

我需要为用户创建用户和目录并共享。
权限仅在 NTFS 结构上设置。

用户必须执行除更改权限和取得所有权之外的所有操作,这是不允许的,并且必须适用于此文件夹及其子文件夹和文件。

到目前为止,我已经获得了创建目录并与所有人共享的脚本。现在我只需要设置目录的权限,该权限将在用户目录中沿结构向下继承。

这些权限必须在根 NTFS 结构上具有完全控制权,并且必须在所有文件夹中。

builtin\administrators
system
domain\security
domain\backup

最后,我需要有一个脚本,当出现问题时运行,以重置所有用户文件夹的权限(如果技术人员或副管理员搞砸了)。

用于创建用户和文件夹的 Bat 文件

net user %1 /add /domain
md \\fileserve2\H$\Userhome\%1
rmtshare \\fileserve2\%1$=H:\Userhome\%1 /remark:"W-drive share for %1"
rmtshare \\fileserve2\%1$ /g Everyone:f
md \\fileserve2\H$\Userconf\%1
rmtshare \\fileserve2\%1$=H:\Userconf\%1 /remark:"Z-drive share for %1"
rmtshare \\fileserve2\%1$ /g Everyone:f

用于删除用户和文件夹的 Bat 文件

net user %1 /delete /domain
rmtshare \\fileserve2\%1 /delete
rmtshare \\fileserve2\%1$ /delete
DEL \\fileserve2\H$\userconf\%1 /S /F /Q
RD \\fileserve2\H$\userconf\%1 /S /Q
DEL \\fileserve2\H$\Userhome\%1 /S /F /Q
RD \\fileserve2\H$\Userhome\%1 /S /Q

希望有人能帮助我并指明正确的方向。

答案1

要设置文件夹的权限,您可以使用 icacls.exe。在您的示例中,您可以使用:

icacls \\fileserve2\H$\Userhome\%1 /grant administrators:(oi)(ci)m /grant system:(oi)(ci)m /grant domain\security:(oi)(ci)m /grant domain\backup:(oi)(ci)m

请注意,您可以添加多个“/grants”。“(oi)(ci)”确保继承子目录和文件。“m”代表“修改”。

以下脚本读取 \fileserve2\H$\Userhome 中的所有目录并重置权限。

For /f %%a in ('dir \\fileserve2\H$\Userhome\ /b /a:d') do call :SetPermissions %%a
Goto :eof

:SetPermissions
icacls \\fileserve2\H$\Userhome\%1 /grant administrators:(oi)(ci)m /grant system:(oi)(ci)m /grant domain\security:(oi)(ci)m /grant domain\backup:(oi)(ci)m

对于灾难恢复,您还可以使用 icacls /save 将文件权限保存到文件中。此文件可以与 icacls /restore 一起使用来恢复权限。检查http://zeda.nl/index.php/en/backup-file-permissions-en以获得详细解释。

相关内容