基于对windows文件共享的权限精细控制需求,编了一个小脚本 可以实现加了AD域的计算机用户自主控制文件夹权限
- 实现功能:1、只有自己可编辑;2、别人只读;3、别人可修改不可删除;4、小组成员有所有权限
@echo off
echo . 把文件或文件夹拖到这个bat上面使用
for /F %%i in ('whoami /upn') do (set user=%%i)
for /F %%x in ('whoami /fqdn') do (set team=%%x)
for /F "tokens=1,* delims=," %%m in ("%team%") do (set team=%%n)
for /F "tokens=1,* delims=," %%a in ("%team%") do (set team=%%a)
set team=%team:~3%@jm.cs
set dir=%1
dir /ad "%dir%" >nul 2>nul && set isdir=(OI)(CI) || set isdir=
goto choose
:choose
echo %team% %user% %dir% %isdir%
echo.
echo. 1、只有自己可以编辑的权限
echo.
echo. 2、别人看见的只读权限
echo.
echo. 3、别人可修改不可删除权限
echo.
echo. 4、小组有所有权限
echo.
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto urwx
if "%id%"=="2" goto or
if "%id%"=="3" goto orw
if "%id%"=="4" goto orwx
:urwx
echo 先禁用继承
icacls %dir% /inheritance:d
echo.
echo 添加用户有所有权限
icacls %dir% /grant:r %user%:%isdir%(F)
echo.
echo 移除组的权限
icacls %dir% /remove:g %team%
echo.
goto getacl
:or
echo 先禁用继承
icacls %dir% /inheritance:d
echo.
echo 添加用户有所有权限
icacls %dir% /grant:r %user%:%isdir%(F)
echo.
echo 移除组的权限
icacls %dir% /remove:g %team%
echo.
echo 设置组只读
icacls %dir% /grant:r %team%:%isdir%(RX)
echo.
goto getacl
:orw
echo 先禁用继承
icacls %dir% /inheritance:d
echo.
echo 添加用户有所有权限
icacls %dir% /grant:r %user%:%isdir%(F)
echo.
echo 移除组的权限
icacls %dir% /remove:g %team%
echo.
echo 设置组
icacls %dir% /grant:r %team%:%isdir%(RX,GW)
echo.
goto getacl
:orwx
echo 先禁用继承
icacls %dir% /inheritance:d
echo.
echo 移除组的权限
icacls %dir% /remove:g %team%
echo.
echo 设置组
icacls %dir% /grant:r %team%:%isdir%(F)
echo.
goto getacl
:getacl
icacls %dir%
pause
评论区