Skip navigation

JSI Tip 0964. List all Users who have not logged on since YYYYMMDD.


Using only native commands, JSILLD.bat produces a sorted/formated report of Users who have not logged on since YYYYMMDD.

The report is sorted by UserName and list the user's full name and last logon date.

The syntax for using JSILLD.bat is:

JSILLD <Drive:>\Folder\OutputFile.Ext YYYYMMDD \[/N\]

where:

YYYYMMDD will report all users who have not logged on since this date.

/N                   is an optional parameter that will bypass users who have never logged on.

JSILLD.bat contains:

@echo off
setlocal
if \{%2\}

\{\} goto syntax if "%3"

"" goto begin if /i "%3"

"/n" goto begin :syntax @echo Syntax: JSILLD File yyyymmdd \[/N\] endlocal goto :EOF :begin if /i "%2"

"/n" goto syntax set dte=%2 set XX=%dte:~0,4% if "%XX%" LSS "1993" goto syntax set XX=%dte:~4,2% if "%XX%" LSS "01" goto syntax if "%XX%" GTR "12" goto syntax set XX=%dte:~6,2% if "%XX%" LSS "01" goto syntax if "%XX%" GTR "31" goto syntax set never=X if /i "%3"

"/n" set never=/n set file=%1 if exist %file% del /q %file% for /f "Skip=4 Tokens=*" %%i in ('net user /domain^|findstr /v /c:"----"^|findstr /v /i /c:"The command completed"') do ( do call :parse "%%i" ) endlocal goto :EOF :parse set str=#%1# set str=%str:#"=% set str=%str:"#=% set substr=%str:~0,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%"

"" goto :EOF for /f "Skip=1 Tokens=*" %%i in ('net user "%substr%" /domain') do call :parse1 "%%i" set substr=%str:~25,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%"

"" goto :EOF for /f "Skip=1 Tokens=*" %%i in ('net user "%substr%" /domain') do call :parse1 "%%i" set substr=%str:~50,25%# set substr=%substr: =% set substr=%substr: #=% set substr=%substr:#=% if "%substr%"

"" goto :EOF for /f "Skip=1 Tokens=*" %%i in ('net user "%substr%" /domain') do call :parse1 "%%i" goto :EOF :parse1 set ustr=%1 if %ustr%

"The command completed successfully." goto :EOF set ustr=%ustr:"=% if /i "%ustr:~0,9%"

"Full Name" set fullname=%ustr:~29,99% if /i not "%ustr:~0,10%"

"Last logon" goto :EOF set txt=%ustr:~29,99% for /f "Tokens=1,2,3 Delims=/ " %%i in ('@echo %txt%') do set MM=%%i&set DD=%%j&set YY=%%k if /i "%MM%"

"Never" goto tstnvr goto year :tstnvr if /i "%never%"=="/n" goto :EOF goto report :year if "%YY%" GTR "1000" goto mmm if "%YY%" GTR "92" goto Y19 set /a YY=100%YY%%%100 set YY=%YY% + 2000 goto mmm :Y19 set YY=19%YY% :mmm set /a XX=100%MM%%%100 if %XX% LSS 10 set MM=0%XX% set /a XX=100%DD%%%100 if %XX% LSS 10 set DD=0%XX% set YMD=%YY%%MM%%DD% if "%YMD%" GEQ "%dte%" goto :EOF :report set fullname=%fullname% # set fullname=%fullname:~0,35% set substr=%substr% # set substr=%substr:~0,30% @echo %substr% %fullname% %txt% >> %file%



Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish