In tip 6790, we determined Who is currently logged on to your domain?.

Using NETDOM from the Server Support Tools and Psloggedon freeware, I have scripted WhoDomNot.bat to determine what domain computers do not currently have domain users logged on.

The syntax for using WhoDomNot.bat is:

WhoDomNot NetBIOSDomainName ReportFile User Password

where:

NetBiosDomainName is the NetBIOS domain name of the domain your are querying, like JSIINC.

ReportFile is the report file, like WhoDomNot.TXT or \\Server\ShareName\WhoDomNot.log.

User is the User ID that has permissions to run Netdom.exe on the NetBIOSDomainName domain, and has RWXD permissions on ReportFile.

Password is the password of User.

WhoDomNot.bat contains:

@echo off
setlocal
if \{%4\}==\{\} goto syntax
set domain=%1
set report=%2
set user=%3
set password=%4
set domain=%domain:"=%
set user=%user:"=%
set password=%password:"=%
set old=##
if exist %report% del /q %report%
for /f "skip=1 Tokens=1" %%u in ('netdom.exe query /domain:"%domain%" /UserD:"%user%" /PasswordD:"%password%" DC') do call :computer "%%u"
for /f "skip=1 Tokens=1" %%u in ('netdom.exe query /domain:"%domain%" /UserD:"%user%" /PasswordD:"%password%" SERVER') do call :computer "%%u"
for /f "skip=1 Tokens=1" %%u in ('netdom.exe query /domain:"%domain%" /UserD:"%user%" /PasswordD:"%password%" WORKSTATION') do call :computer "%%u"
endlocal
goto :EOF
:syntax
@echo Syntax: WhoDomNot NetBIOSDomainName ReportFile User Password
endlocal
goto :EOF
:computer
set OK=N
set machine=%1
set machine=%machine:"=%
if "%machine%" EQU "The" goto :EOF
if "%machine%" EQU "Directory" goto :EOF
<font size="1">for /f "Skip=1 Tokens=*" %%l in ('psloggedon "\\%machine%" -l^|Find /v "
if "%OK%" EQU "Y" goto :EOF
if "%old%" EQU "%machine%" goto :EOF
@echo %machine%>>%report%
set old=%machine%
goto:EOF
:who
call set work=%%line:%domain%=%%
if "%work%" EQU "%line%" goto :EOF
set OK=Y
</font>