@ECHO on
SETLOCAL ENABLEDELAYEDEXPANSION
Set CSVFile=C:\EveryoneShareSecurity.csv
IF NOT EXIST "%CSVFile%" ECHO "Machine Name","Share Name","Share/Security Info">"%CSVFile%"
for /F %%a in (C:\Computers.txt) do CALL :PROCESS %%a
GOTO :EOF
:PROCESS
for /f "tokens=1 delims=:" %%a in ('rmtshare \\%1^| find /v /i "default share" ^| find /v /i "Remote admin" ^| find /v /i "Remote IPC" ^| FIND /v /i "Printer drivers" ^| FIND ":"') DO (
set Share=%%a
set Share=!Share:~0,-2!
For /l %%z in (1,1,30) DO if "!Share:~-1!" == " " Set Share=!Share:~0,-1!
Set EveryoneSharePerm=
RMTSHARE \\%1\"!Share!" | find /i "\everyone" | find /i "FULL CONTROL"
IF NOT ERRORLEVEL 1 Set EveryoneSharePerm=Writeable
if not defined EveryoneSharePerm (
RMTSHARE \\%1\"!Share!" | find /i "\everyone" | find /i "CHANGE"
IF NOT ERRORLEVEL 1 Set EveryoneSharePerm=Writeable
)
IF DEFINED EveryoneSharePerm (
ECHO "%1","!Share!","Share permissions for everyone is writeable">>"%CSVFile%"
ECHO "%1","!Share!","Changing everyone share permmissions to read">>"%CSVFile%"
RMTSHARE \\%1\"!Share!" /grant everyone:R
RMTSHARE \\%1\"!Share!" | find /i "everyone" | find /i "READ"
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed everyone share permissions to read">>"%CSVFile%"
Set EveryoneSharePerm=
) ELSE (
ECHO "%1","!Share!","Error occurred while Changing everyone share permissions to read">>"%CSVFile%"
)
)
Set EveryoneSecurityPerm=
FOR /f "tokens=1,*" %%b in ('rmtshare \\%1\"!Share!" ^| FIND /i "Path"') DO (
Set SharePath=%%c
Set SharePath=!SharePath::=$!
cacls "\\%1\!SharePath!" | find /i "everyone" | findstr /e /i /c:"F "
IF NOT ERRORLEVEL 1 Set EveryoneSecurityPerm=Writeable
IF NOT DEFINED EveryoneSecurityPerm (
cacls "\\%1\!SharePath!" | find /i "everyone" | findstr /e /i /c:"C "
IF NOT ERRORLEVEL 1 Set EveryoneSecurityPerm=Writeable
)
IF DEFINED EveryoneSecurityPerm (
ECHO "%1","!Share!","Security everyone is writeable">>"%CSVFile%"
ECHO "%1","!Share!","Changing everyone security to read">>"%CSVFile%"
cacls "\\%1\!SharePath!" /e /t /p everyone:R
cacls "\\%1\!SharePath!" | find /i "everyone" | findstr /e /i /c:"R "
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed everyone security to read">>"%CSVFile%"
Set EveryoneSecurityPerm=
) ELSE (
ECHO "%1","!Share!","Error occurred while Changing everyone security to read">>"%CSVFile%"
)
)
)
IF DEFINED EveryoneSharePerm IF DEFINED EveryoneSecurityPerm ECHO "%1","!Share!","Share/Security permissions for everyone is writeable">>"%CSVFile%"
)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
Set Admin=NAS Admins
Set CSVFile=C:\ChangeShareSecurityOnly.csv
IF NOT EXIST "%CSVFile%" ECHO "Machine Name","Share Name","Share/Security Info">"%CSVFile%"
for /F %%a in (C:\Computers.txt) do CALL :PROCESS %%a
GOTO :EOF
:PROCESS
for /f "tokens=1 delims=:" %%a in ('rmtshare \\%1^| find /v /i "default share" ^| find /v /i "Remote admin" ^| find /v /i "Remote IPC" ^| FIND /v /i "Printer drivers" ^| FIND ":"') DO (
set Share=%%a
set Share=!Share:~0,-2!
For /l %%z in (1,1,30) DO if "!Share:~-1!" == " " Set Share=!Share:~0,-1!
RMTSHARE \\%1\"!Share!" | find /i "\%Admin%" | find /i "FULL CONTROL"
IF ERRORLEVEL 1 (
ECHO "%1","!Share!","Changing permissions for %Admin% to FULL access">>"%CSVFile%"
RMTSHARE \\%1\"!Share!" /grant "%Admin%":F
RMTSHARE \\%1\"!Share!" | find /i "%Admin%" | find /i "FULL"
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed %Admin% share permissions to FULL access">>"%CSVFile%"
) ELSE (
ECHO "%1","!Share!","Error occurred while Changing %Admin% share permissions to FULL access">>"%CSVFile%"
)
)
Set AdminSecurityPerm=
FOR /f "tokens=1,*" %%b in ('rmtshare \\%1\"!Share!" ^| FIND /i "Path"') DO (
Set SharePath=%%c
Set SharePath=!SharePath::=$!
cacls "\\%1\!SharePath!" | find /i "%Admin%" | findstr /e /i /c:"F "
IF NOT ERRORLEVEL 1 Set AdminSecurityPerm=Writeable
IF NOT DEFINED AdminSecurityPerm (
ECHO "%1","!Share!","Security Group %Admin% is not FULL access">>"%CSVFile%"
ECHO "%1","!Share!","Changing %Admin% security to FULL access">>"%CSVFile%"
cacls "\\%1\!SharePath!" /e /t /p "%Admin%":F
cacls "\\%1\!SharePath!" | find /i "%Admin%" | findstr /e /i /c:"F "
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed %Admin% security to FULL access">>"%CSVFile%"
Set AdminSecurityPerm=
) ELSE (
ECHO "%1","!Share!","Error occurred while Changing %Admin% security to FULL access">>"%CSVFile%"
)
)
)
FOR /f "Skip=6 Tokens=1 delims=:" %%b in ('RMTSHARE \\0012620-SXP\"!Share!" ^| FIND /v /i "The command completed successfully."') do (
Set Group=%%b
For /l %%z in (1,1,30) DO if "!Group:~-1!" == " " Set Group=!Group:~0,-1!
For /l %%z in (1,1,30) DO if "!Group:~0,1!" == " " Set Group=!Group:~1!
ECHO !Group!
Set GroupSharePerm=
RMTSHARE \\%1\"!Share!" | find /i "!Group!" | find /i "FULL CONTROL"
IF NOT ERRORLEVEL 1 Set GroupSharePerm=FULL
if not defined GroupSharePerm (
RMTSHARE \\%1\"!Share!" | find /i "!Group!" | find /i "CHANGE"
IF NOT ERRORLEVEL 1 Set GroupSharePerm=CHANGE
)
if not defined GroupSharePerm (
RMTSHARE \\%1\"!Share!" | find /i "!Group!" | find /i "READ"
IF NOT ERRORLEVEL 1 Set GroupSharePerm=READ
)
echo !Group! | FIND /i "%Admin%"
IF ERRORLEVEL 1 IF "!GroupSharePerm!" == "FULL" (
ECHO "%1","!Share!","Share permissions for !Group! is FULL access">>"%CSVFile%"
ECHO "%1","!Share!","Changing !Group! share permmissions to CHANGE access">>"%CSVFile%"
RMTSHARE \\%1\"!Share!" /grant "!Group!":C
RMTSHARE \\%1\"!Share!" | find /i "!Group!" | find /i "CHANGE"
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed !Group! share permissions to CHANGE access">>"%CSVFile%"
Set GroupSharePerm=CHANGE
) ELSE (
ECHO "%1","!Share!","Error occurred while changing !Group! share permissions to CHANGE access">>"%CSVFile%"
)
)
IF "!Group:~0,1!"=="\" Set Group=!Group:~1!
Set GroupSecurityPerm=
FOR /f "tokens=1,*" %%b in ('rmtshare \\%1\"!Share!" ^| FIND /i "Path"') DO (
Set SharePath=%%c
Set SharePath=!SharePath::=$!
cacls "\\%1\!SharePath!" | find /i "!Group!" | findstr /e /i /c:"F "
IF NOT ERRORLEVEL 1 Set GroupSecurityPerm=FULL
IF NOT DEFINED GroupSecurityPerm (
cacls "\\%1\!SharePath!" | find /i "!Group!" | findstr /e /i /c:"C "
IF NOT ERRORLEVEL 1 Set GroupSecurityPerm=CHANGE
)
IF NOT DEFINED GroupSecurityPerm (
cacls "\\%1\!SharePath!" | find /i "!Group!" | findstr /e /i /c:"R "
IF NOT ERRORLEVEL 1 Set GroupSecurityPerm=READ
)
echo !Group! | FIND /i "%Admin%"
IF ERRORLEVEL 1 IF "!GroupSecurityPerm!" == "FULL" (
ECHO "%1","!Share!","Security !Group! is !GroupSecurityPerm! access">>"%CSVFile%"
ECHO "%1","!Share!","Changing !Group! security to CHANGE access">>"%CSVFile%"
cacls "\\%1\!SharePath!" /e /t /p "!Group!":C
cacls "\\%1\!SharePath!" | find /i "!Group!" | findstr /e /i /c:"C "
IF NOT ERRORLEVEL 1 (
ECHO "%1","!Share!","Successfully changed !Group! security to CHANGE access">>"%CSVFile%"
Set GroupSecurityPerm=CHANGE
) ELSE (
ECHO "%1","!Share!","Error occurred while changing !Group! security to CHANGE access">>"%CSVFile%"
)
)
)
IF DEFINED GroupSharePerm IF DEFINED GroupSecurityPerm ECHO "%1","!Share!","!Group! has Share permissions=!GroupSharePerm! Security permissions=!GroupSecurityPerm!">>"%CSVFile%"
)
)
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "Skip=6 Tokens=1 delims=:" %%b in ('RMTSHARE \\dev-chen-nas01\"STS" ^| FIND /v /i "The command completed successfully."') do (
Set Group=%%b
For /l %%z in (1,1,30) DO if "!Group:~-1!" == " " Set Group=!Group:~0,-1!
For /l %%z in (1,1,30) DO if "!Group:~0,1!" == " " Set Group=!Group:~1!
ECHO "!Group!">>C:\Test.txt
)