Using only native commands, JSIWSWho.bat produces a sorted/formated report of each Workstation and the Users who are permitted to "Logon To" it.

The report format is:

 ComputerName1   UserName1   User1 Full Name 
 ComputerName1   UserName9   User9 Full Name 
----------------- ----------------- -----------------
 ComputerName2   UserName3   User3 Full Name 
 ComputerName2   UserName5   User5 Full Name 
 ComputerName2   UserName6   User6 Full Name 
----------------- ----------------- -----------------
 ComputerName3   UserName2   User2 Full Name 
 ComputerName3   UserName4   User4 Full Name 
 ComputerName3   UserName7   User7 Full Name 
 ComputerName3   UserName8   User8 Full Name 

To use JSIWSWho, place it in your path on the PDC:

JSIWSWho <Drive:>\Folder\OutputFile.Ext

JSIWSWho.bat contains:

<b>
@echo off
if NOT "%1"<h1><a name="_goto_begin_syntax_echo_Syntax_JSIWSWho_File_goto_end_begin_set_file_1_set_low_zzzzzzzzzzzzzzzzzzzz_if_exist_file_del_q_file_set_tmpf_dpn1_WSWho_if_exist_tmpf_del_q_tmpf_for_f_Skip_4_Tokens_i_in_net_users_do_call_parse_i_sort_tmpf_del_q_file_set_txt_low_#_set_txt_txt_0_22_for_f_Tokens_1_3_Delims_i_in_tmpf_do_call_output_i_j_k_del_q_tmpf_set_cnt_set_low_set_str_set_substr_set_ustr_set_txt_set_fullname_set_file_set_ws_set_tmpf_goto_end_output_set_ws_1_set_ws_ws_#_set_ws_ws_0_22_if_not_txt_">"" goto begin
:syntax
@echo Syntax: JSIWSWho File
goto end
:begin
set file=%1
set low=zzzzzzzzzzzzzzzzzzzz
if exist %file% del /q %file%
set tmpf=%~dpn1.WSWho
if exist %tmpf% del /q %tmpf%
for /f "Skip=4 Tokens=*" %%i in ('net users') do call :parse "%%i"
sort  %tmpf%
del /q %file%
set txt=%low%                                                             #
set txt=%txt:~0,22%
for /f "Tokens=1-3 Delims=\" %%i in (%tmpf%) do call :output %%i "%%j" "%%k"
del /q %tmpf%
set cnt=
set low=
set str=
set substr=
set ustr=
set txt=
set fullname=
set file=
set ws=
set tmpf=
goto end
:output
set ws=%1
set ws=%ws%                                                                #
set ws=%ws:~0,22%
if not "%txt%"</a></h1>"%ws%" @echo ------------------------------------------------------------------------------- >> %file%
set txt=%ws:~0,22%
set substr=%2
set substr=%substr:"=%
set substr=%substr%                                                        #
set substr=%substr:~0,22%
set fullname=%3
set fullname=%fullname:"=%
set fullname=%fullname%                                                    #
set fullname=%fullname:~0,30%
@echo %ws% %substr% %fullname% >> %file%
goto end
:parse
set str=#%1#
set str=%str:#"=%
set str=%str:"#=%
if "%str%"<h1><a name="_The_command_completed_successfully_goto_end_set_substr_str_0_25_#_set_substr_substr_set_substr_substr_#_set_substr_substr_#_if_substr_">"The command completed successfully." goto end
set substr=%str:~0,25%#
set substr=%substr:  =%
set substr=%substr: #=%
set substr=%substr:#=%
if "%substr%"</a></h1>"" goto end
set /a cnt=0
for /f "Tokens=*" %%i in ('net user "%substr%"') do call :parse1 "%%i"
set substr=%str:~25,25%#
set substr=%substr:  =%
set substr=%substr: #=%
set substr=%substr:#=%
if "%substr%"<h1><a name="_goto_end_set_a_cnt_0_for_f_Tokens_i_in_net_user_substr_do_call_parse1_i_set_substr_str_50_25_#_set_substr_substr_set_substr_substr_#_set_substr_substr_#_if_substr_">"" goto end
set /a cnt=0
for /f "Tokens=*" %%i in ('net user "%substr%"') do call :parse1 "%%i"
set substr=%str:~50,25%#
set substr=%substr:  =%
set substr=%substr: #=%
set substr=%substr:#=%
if "%substr%"</a></h1>"" goto end
set /a cnt=0
for /f "Tokens=*" %%i in ('net user "%substr%"') do call :parse1 "%%i"
goto end
:parse1
set /a cnt=%cnt% + 1
set ustr=%1
if %ustr%<h1><a name="_The_command_completed_successfully_goto_end_set_ustr_ustr_if_cnt_EQU_2_set_fullname_ustr_29_99_if_cnt_NEQ_13_goto_end_set_txt_ustr_29_199_if_txt_">"The command completed successfully." goto end
set ustr=%ustr:"=%
if %cnt% EQU 2 set fullname=%ustr:~29,99%
if %cnt% NEQ 13 goto end
set txt=%ustr:~29,199%
if "%txt%"</a></h1>"All" goto end
for /f "Tokens=1-8 Delims=," %%i in ('@echo %txt%') do call :Workstn %%i %%j %%k %%l %%m %%n %%o %%p
goto end
:Workstn
if "%1"=="" goto end
call :report %1
shift
goto Workstn
:report
set ws=%1
set ws=%ws:A=a%
set ws=%ws:B=b%
set ws=%ws:C=c%
set ws=%ws:D=d%
set ws=%ws:E=e%
set ws=%ws:F=f%
set ws=%ws:G=g%
set ws=%ws:H=h%
set ws=%ws:I=i%
set ws=%ws:J=j%
set ws=%ws:K=k%
set ws=%ws:L=l%
set ws=%ws:M=m%
set ws=%ws:N=n%
set ws=%ws:O=o%
set ws=%ws:P=p%
set ws=%ws:Q=q%
set ws=%ws:R=r%
set ws=%ws:S=s%
set ws=%ws:T=t%
set ws=%ws:U=u%
set ws=%ws:V=v%
set ws=%ws:W=w%
set ws=%ws:X=x%
set ws=%ws:Y=y%
set ws=%ws:Z=z%
@echo %ws%\%substr%\%fullname% >> %file%
if "%ws%" LSS "%low%" set low=%ws%
:end</b>