Get Domain Users Last Logon and Account Status Windows Batch

This content 4 years old. Please, read this page keeping its age in mind along with the fact technology changes fast and the information on this page me be outdated, not best practice, or plain wrong.

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

C:Users
kreider>net user

User accounts for \CTCRK-10

-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
LocalAdmin
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
setlocal
for /f "tokens=1-3" %%x in ('net users /domain^|find " " ') do (
 call :process %%x
 call :process %%y
 call :process %%z
)
pause

::-----
:process
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

Speak Your Mind

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.