Using the corrected version of SubInAcl, I have scripted Owners.bat to report all the file system objects owned by the security principal that you specify.

The syntax for using Owners.bat is:

Owners Owner \\computer1\share1 \[\\computer2\SHare2 ... \\computerN\SHareN\]


<b>Owner</b>               is the security principal, like "DomainName\UserName", "builtin\UserOrGroup, etc...

<b>\\computer1\share1</b>  Where to begin the search. Both UNC and local folder names are supported.

<b>\\computer<i>X</i>\SHare<i>X</i></b>  Optional additional shares and/or folders to search.
The output, in CSV format, is written to an Owners_<Random Number>.txt file in the current directory.

Owners.bat contains:

@echo off
if \{%2\}<h1><a name="_echo_Syntax_Owners_Owner_computer1_share1_computer2_SHare2_computerN_SHareN_amp_goto_EOF_setlocal_ENABLEDELAYEDEXPANSION_set_report_Owners__RANDOM_txt_set_work_TEMP_Owners__RANDOM_TMP_set_owner_1_shift_set_owner_owner_loop_if_1_">\{\} @echo Syntax: Owners Owner \\computer1\share1 \[\\computer2\SHare2 ... \\computerN\SHareN\]&goto :EOF
set report="Owners_%RANDOM%.txt"
set work="%TEMP%\Owners_%RANDOM%.TMP"
set owner=%1
set owner=%owner:"=%
if \{%1\}</a></h1>\{\} goto finish
set share=%1
set share=%share:"=%
if not exist "%share%" goto err
SubInAcl /outputlog=%work% /noverbose /nostatistic /file "%share%"
for /f "tokens=1* Delims<h1><a name="_x_in_type_work_find_owner_Find_i_owner_do_echo_share_y_gt_gt_report_for_f_Tokens_f_in_dir_share_b_s_a_do_SubInAcl_outputlog_work_noverbose_nostatistic_file_f_for_f_tokens_1_Delims">" %%x in ('type %work%^|find "/owner"^|Find /i "%owner%"') do (
 @echo "%share%","%%y">>%report%
for /f "Tokens=*" %%f in ('dir "%share%" /b /s /a') do (
 SubInAcl /outputlog=%work% /noverbose /nostatistic /file "%%f"
 for /f "tokens=1* Delims</a></h1>" %%x in ('type %work%^|find "/owner"^|Find /i "%owner%"') do (
  @echo "%%f","%%y">>%report%
goto loop
@echo "%share%","NOT FOUND">>%report%
goto loop
del /q %work%