In tip 0557, we granted a user Full Control of all new files and folders that they
create in a directory.
To grant a user Full Control on existing files in a folder, use:
JSIFCU UserName FullFolderPath, where JSIFCU.bat contains:
@echo off if NOT \{%2\}If you have a directory structure like:\{\} goto begin :syntax @echo Syntax: JSIFCU UserName Folder \[/N\] goto end :begin setlocal set user=%1 set folder=%2 set folder=%folder:"=% if not exist "%folder%\*.*" goto syntax if /i \{%3\}
\{/N\} goto nok set found=N for /f "Tokens=*" %%i in ('net user %user%') do call :parse "%%i" if "%found%""N" goto syntax :nok for /f "Tokens=*" %%i in ('dir /b /a-d /s "%folder%"') do call :doit "%%i" endlocal goto end :doit CACLS %1 /E /C /P %user%:F goto end :parse set str=%1 if %str%
"The command completed successfully." set found=Y :end
<Drive:>\Folder\UserName1
<Drive:>\Folder\UserName2
<Drive:>\Folder\UserNameN
you can use JSIFCUAll.bat, which calls JSIFCU with the /N switch, to do them all.
JSIFCUAll.bat contains :
@echo off if NOT "%1"To grant a user Full Control of files that they own in a common folder, see tip 1255."" goto begin :syntax @echo Syntax: JSIFCUAll TopFolder goto end :begin setlocal set Folder=%1 set folder=%folder:"=% if not exist "%folder%\*.*" goto syntax for /f "Skip=4 Tokens=*" %%i in ('net users') do call :parse "%%i" endlocal goto end :parse set str=#%1# set str=%str:#"=% set str=%str:"#=% if "%str%"
"The command completed successfully." goto end set substr=%str:~0,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%""" goto end if exist "%folder%\%substr%\*.*" call JSIFCU "%substr%" "%folder%\%substr%" /N set substr=%str:~25,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%"
"" goto end if exist "%folder%\%substr%\*.*" call JSIFCU "%substr%" "%folder%\%substr%" /N set substr=%str:~50,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%"=="" goto end if exist "%folder%\%substr%\*.*" call JSIFCU "%substr%" "%folder%\%substr%" /N :end
0 comments
Hide comments