授予管理员权限并遍历所有文件和文件夹的批处理脚本

授予管理员权限并遍历所有文件和文件夹的批处理脚本

我有这个,很确定它有点苛刻但可以完成工作,当在驱动器上运行时,赋予我对驱动器上的文件和文件夹的所有权限,现在我需要帮助让它进入子目录,所以我不需要复制每个文件夹内的 bat 脚本并运行它。

takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F

我如何让它递归地遍历驱动器?

答案1

简短回答: 添加/t到 (i)cacls

长答案:

这是我希望任何用户都可以访问文件时使用的脚本。它包含对每个标志的作用的注释。只需将其放在%AppData%文件夹中的某个批处理文件中即可。

REM --v2 -----------------------------------------------------------
takeown /r /d y /f %1
icacls %1 /t /grant Everyone:F

REM takeown /r /d y /f will set the owner to the Administrators group recursively.
REM /t makes it recursive
REM /grant Sets the permision to the following user, replaces existing permissions for the specified uesr.
REM :f Grants full controll permission.
REM ----------------------------------------------------------------

REM --v1 -----------------------------------------------------------
REM cacls %1 /t /e /g Everyone:f

REM /t makes it recursive
REM /e Edits the ACL instead of replaceing it
REM /g Grants permissions to the following users
REM :f Grants full controll permission.
REM ----------------------------------------------------------------

然后%AppData%\Microsoft\Windows\SendTo创建批处理脚本的快捷方式。

编辑该快捷方式的属性,然后转到Advanced...并选中复选框Run as Administrator.

在此处输入图片描述

现在,right click menu -> Send To您将拥有一个名为的项目,Fix Permissions您对其执行的任何文件或文件夹Send To都将获得 Everyone 组的Full Access权限。如果您对文件夹执行此操作,它将以递归方式遍历该文件夹并将权限应用于文件夹中的所有子文件夹。


我将批处理文件保存到%AppData%文件夹中,因为我在域中,这使其成为我的漫游配置文件的一部分,因此它将在任何我连接的计算机上打开并可供使用。

答案2

这对于网络共享有用吗?

Takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F
icacls * /grant "doamin\users":R

相关内容