Using RMTShare.exe, which is in the public domain, to enumerate detail share information, like share name, path, remarks, maximum users, current number of connected users, and share permissions, AND CACLS.EXE to enumerate the NTFS permission on the shared folder and its' sub-folders, I have scripted RptSPX.bat.

The syntax for using RptSPX.bat is:

RptSPX ReportFile \[Except1 Except2 ... ExceptN\]

Where ReportFile is the path to the file that will contain the report, and each ExceptX is a share name that you wish to exclude. RptSPX.bat automatically excludes ADMIN$, IPC$, print$, and <Drive Letter>$.

RptSPX.bat contains:

@echo off
IF \{%1\}<h1><a name="_GOTO_bad_set_report_1_if_exist_report_del_q_report_set_except_TEMP_RptSPX__RANDOM_TMP_echo_ADMIN_gt_except_echo_IPC_gt_gt_except_echo_print_gt_gt_except_excl_if_2_">\{\} GOTO bad
set report=%1
if exist %report% del /q %report%
set except="%TEMP%\RptSPX_%RANDOM%.TMP"
@echo ADMIN$>%except%
@echo IPC$>>%except%
@echo print$>>%except%
if \{%2\}</a></h1>\{\} goto begin
set wrk=%2
set wrk=%wrk:"=%
@echo %wrk%>>%except%
goto excl
set f1=Findstr /v /b /C:"The command completed successfully."
set f2=findstr /v /b /L /i /g:%except%
for /f "Skip=4 Tokens=1*" %%a in ('RMTSHARE \\%computername%^|%F1%^|%F2%') do (
 set shr=%%a
 if "!shr:~1,2!#" NEQ "$#" call :share
del /q %except%
@echo Usage: RptSPX ReportFile \[Except1 Except2 ... ExceptN\]
for /f "Tokens=*" %%r in ('RMTSHARE \\%computername%\%shr%^|%F1%') do (
 @echo %%r>>%report%
 set line=%%r
 if "!line:~0,5!" EQU "Path " if "!line:~19,1!" EQU ":" call :folder "!line:~18!"
@echo .......................................................>>%report%
goto :EOF
set pf=%1
set wrk=%pf:"=%#
if "%wrk:~2,2%" EQU "\#" set pf=%pf:\=%
cacls %pf%>>%report%
for /f "Tokens=*" %%a in ('dir %pf% /ad /s /b') do (
 cacls "%%a">>%report%