JSI Tip 1284. Report "missing" user data.
In tip 1252, JSIUsersBig produced a report all user data elements. JSIUMD produces a similar report if one or more user data elements are "missing."
May 3, 1999
In tip 1252, JSIUsersBig produced a report all user data elements.
JSIUMD produces a similar report if one or more user data elements are "missing". The syntax for using JSIUMD.bat is:
JSIUMD FolderReportFile.txt [/FN] [/C] [/UC] [/PE] [/PR] [/UCP] [/W] [/LS] [/UP] [/HD] [/LH] [/LG] [/GG]
where at least one switch must be specified. You may specify as many switches as you wish. The switches have the following meaning:
Switch M e a n i n g /FN Full Name is missing. /C Comment is missing. /UC User Comment is missing. /PE Password never expires. /PR Password is not required. /UCP The User may not change their passowrd. /W The user may logon at any workstation. /LS Logon Script is missing. /UP The User Profile path is missing. /HD The Home Directory path is missing. /LH There are no Logon Hours restrictions. /LG The user is not a member of any Local Group. /GG The user is not a member of any Global Group.
JSIUMD.bat contains:
@echo offif NOT "%1"
"" goto begin :syntax @echo Syntax: JSIUMD File goto end :begin setlocal set file=%1 if exist %file% del /q %file% if "%2"
"" goto syntax :switch shift if "%1"
"" goto check if /i "%1"
"/fn" set sfn=%1&goto switch if /i "%1"
"/c" set sc=%1&goto switch if /i "%1"
"/uc" set suc=%1&goto switch if /i "%1"
"/pe" set spe=%1&goto switch if /i "%1"
"/pr" set spr=%1&goto switch if /i "%1"
"/ucp" set sucp=%1&goto switch if /i "%1"
"/w" set sw=%1&goto switch if /i "%1"
"/ls" set sls=%1&goto switch if /i "%1"
"/up" set sup=%1&goto switch if /i "%1"
"/hd" set shd=%1&goto switch if /i "%1"
"/lh" set slh=%1&goto switch if /i "%1"
"/lg" set slg=%1&goto switch if /i "%1"
"/gg" set sgg=%1&goto switch goto syntax :check @echo ____________%sfn% %sc% %suc% %spe% %spr% %sucp% %sw% %sls% %sup% %shd% %slh% %slg% %sgg%______________________ >> %file% @echo * >> %file% set prev=ZZZZZZZZZZZZ for /f "Skip=4 Tokens=*" %%i in ('net users') do call :parse "%%i" endlocal goto end :parse set str=#%1# set str=%str:#"=% set str=%str:"#=% if "%str%"
"The command completed successfully." goto end set substr=%str:~0,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:~25,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%"
"" 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%
"The command completed successfully." goto end set ustr=%ustr:"=% if %cnt% GTR 18 goto parse2 goto tst%cnt% :tst1 set lh=N goto end :tst2 if /i not "%sfn%"
"/fn" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst3 if /i not "%sc%"
"/c" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst4 if /i not "%suc%"
"/uc" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst9 if /i not "%spe%"
"/pe" goto end if /i not "%ustr:~29,5%"
"Never" goto end goto out :tst11 if /i not "%spr%"
"/pr" goto end if /i not "%ustr:~29,2%"
"No" goto end goto out :tst12 if /i not "%sucp%"
"/ucp" goto end if /i not "%ustr:~29,2%"
"No" goto end goto out :tst13 if /i not "%sw%"
"/sw" goto end if /i not "%ustr:~29,3%"
"All" goto end goto out :tst14 if /i not "%sls%"
"/ls" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst15 if /i not "%sup%"
"/up" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst16 if /i not "%shd%"
"/hd" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tst17 goto end :tst18 set lh=Y if /i not "%slh%"
"/lh" goto end if /i not "%ustr:~29,3%"
"All" goto end goto out :parse2 if "%ustr:~0,1%"
"*" goto end set ln="%ustr:~0,8%" if %ln%
"Local Gr" set ln=N&goto tstlg if %ln%
"Global G" set ln=N&goto tstgg goto end :tstlg if /i not "%slg%"
"/lg" goto end if /i not "%ustr:~29,1%"
"" goto end goto out :tstgg if /i not "%sgg%"
"/gg" goto end if /i not "%ustr:~29,1%"
"" goto end :out if "%substr%"
"%prev%" goto end set prev=%substr% set substr=%substr%# set substr=%substr: #=% set substr=%substr:#=% for /f "Tokens=*" %%i in ('net user "%substr%"') do call :parse3 "%%i" goto end :sep @echo * >> %file% @echo ____________%sfn% %sc% %suc% %spe% %spr% %sucp% %sw% %sls% %sup% %shd% %slh% %slg% %sgg%______________________ >> %file% @echo * >> %file% goto end :logon set lh=Y goto out1 :parse3 set ustr=%1 if %ustr%
"The command completed successfully." goto sep set ustr=%ustr:"=% if "%ustr%"
"" goto end if "%ustr:~0,1%"
"*" set ustr=%ustr% set ln="%ustr:~0,8%" if %ln%
"User nam" set lh=N if %ln%
"Logon ho" goto logon if "%lh%"
"N" goto out1 if %ln%
"Local Gr" set ln=N&goto out1 if %ln%=="Global G" set ln=N&goto out1 set ustr= %ustr% :out1 @echo %ustr% >> %file% :tst5 :tst6 :tst7 :tst8 :tst10 :end
About the Author
You May Also Like