Get Domain Users Last Logon and Account Status Windows Batch

A typical output of net user command produces 3 columns of usernames with the last row containing up to three columns.

kreider>net user

User accounts for \CTCRK-10

Administrator            DefaultAccount           Guest
The command completed successfully.

To filter this, I’ll use a for loop and set 3 tokens. Tokens 2 and/or 3 could be empty when we get the last row, as you can see.

@echo off
for /f "tokens=1-3" %%x in ('net users /domain^|find " " ') do (
 call :process %%x
 call :process %%y
 call :process %%z

if "%1"=="" goto :eof
REM echo User is %1
for /f "tokens=1-3" %%a in ('net user %1 /domain ^| findstr /r "active"') do (
 if "%%c"=="Yes" (
 for /f "tokens=1-5" %%e in ('net user %1 /domain ^| findstr /r "logon"') do (
 echo %1,ACTIVE,%%g %%h %%i
 ) ELSE (
 echo %1,DISABLED
:: other user processing here
goto :eof