Using WhoOwns.bat from How can I get the DIR command to return a file's owner in a batch script, I have scripted SFOwner.bat to report the file system objects owned by a specified security principal on a remote share.

The syntax for using SFOwner.bat is:

SFOwner Share Owner


Share    is the share URL that you want to enumerate, like \\ServerName\ShareName.                              Owner    is a mask that matches the owner, like:                                       JSIINC\Jerry -  to match Jerry from JSIINC.COM exactly.                                       \Jerry       -  to match both local and domain Jerry.                                       Admin        -  to match Domain Admins, Administrator, and the Administrators group.                                        C\Je         -  to match Jerry and Jennifer from JSIINC.COM.
The output is displayed on the console, but can be redirected to a file. Each line of output contains:

"\\ServerName\ShareName\File System Object","Matching Sercurity Principal"


"\\JSI009\Zipnew","JSIINC\Jerry"                              "\\JSI009\Zipnew\FAX","JSIINC\Jerry"                              "\\JSI009\Zipnew\Saved\HappyHal.jpg","JSIINC\Jerry"                              "\\JSI009\Zipnew\Saved\Harrods.pdf","JSIINC\Jennifer"                              "\\JSI009\Zipnew\Saved\Voting_Machine.wmv","JSIINC\Jerry"
SFOwner.bat contains:
@echo off                              if \{%2\}==\{\} @echo Syntax: call SFOwner Share Owner&goto :EOF                              setlocal ENABLEDELAYEDEXPANSION                              set object=%1                              set object="%object:"=%"                              set owner=%2                              set owner=%owner:"=%                              call WhoOwns %object% who                              call set work=%%who:%Owner%=%%                              if "%work%" NEQ "%who%" @echo %object%,"%who%"                              for /f "Tokens=*" %%a in ('dir %object% /b /s /a') do (                               call WhoOwns "%%a" who                               call set work=!!who:%Owner%=!!                               if "!work!" NEQ "!who!" @echo "%%a","!who!"                              )                              endlocal