(view source code of whoru.bat as plain text)
@ECHO OFF
ECHO.
:: Keep variables localSETLOCAL
:: Check for exactly one single command line parameterIF [%1]==[] GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
:: The command line parameter should not contain a question markECHO.%* | FIND "?" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
:: The command line parameter should either:: be a valid user ID or a valid host nameSET ERROR=0
PING %1 -n 1 | FIND " TTL=" >NUL 2>NUL
IF ERRORLEVEL 1 SET ERROR=1
NET USER %1 /DOMAIN >NUL 2>NUL
IF ERRORLEVEL 1 SET /A ERROR = %ERROR% + 1
IF %ERROR%==2 GOTO Syntax
:: Find the primary WINS server:: * * * US NT version * * * ::FOR /F "tokens=2* delims=:" %%A IN ('IPCONFIG /ALL ^| FIND "Primary WINS Server"') DO SET WINSSRV=%%A
:: * * * Dutch NT version * * * :::: FOR /F "tokens=2* delims=:" %%A IN ('IPCONFIG /ALL ^| FIND "Primaire WINS-server"') DO SET WINSSRV=%%ASET WINSSRV=%WINSSRV:~1%
:: Find the command line parameter in the:: WINS database and resolve its IP addressFOR /F "tokens=12-13* delims=," %%A IN ('WINSDMP %WINSSRV% 2^>NUL ^| FIND /I "%1 "') DO SET IPADDR=%%A
:: If not found, then exitIF "%IPADDR%"=="" ECHO No WINS entry found for %1
IF "%IPADDR%"=="" GOTO:EOF
:: Find the host name for the IP address found in WINSFOR /F "tokens=2* delims= " %%A IN ('PING -a %IPADDR% -n 1 ^| FIND "[%IPADDR%]"') DO SET HOSTNAME=%%A
:: "Escape" ampersands in variableIF NOT "%HOSTNAME%"=="" SET USERID=%HOSTNAME:&=^&%
:: Find the user ID for the IP address found in WINS:: * * * US NT version * * * ::FOR /F "tokens=1* delims= " %%A IN ('NBTSTAT -A %IPADDR% ^| FIND "UNIQUE" ^| FIND /I /V "%HOSTNAME% " ^| FIND "<0"') DO SET USERID=%%A
:: * * * Dutch NT version * * * :::: FOR /F "tokens=1* delims= " %%A IN ('NBTSTAT -A %IPADDR% ^| FIND "UNIQUE" ^| FIND /I /V "%HOSTNAME%" ^| FIND "<0"') DO SET USERID=%%A:: "Escape" ampersands in variableIF NOT "%USERID%"=="" SET USERID=%USERID:&=^&%
:: Display user IDECHO User ID %USERID%
:: Find the full name for this user ID:: * * * US NT version * * * ::IF NOT "%USERID%"=="" FOR /F "tokens=2* delims= " %%A IN ('NET USER %USERID% /DOMAIN ^| FIND "Full Name"') DO SET FULLNAME=%%B
:: * * * Dutch NT version * * * :::: IF NOT "%USERID%"=="" FOR /F "tokens=2* delims= " %%A IN ('NET USER %USERID% /DOMAIN ^| FIND "Volledige naam"') DO SET FULLNAME=%%B:: "Escape" ampersands in variableIF NOT "%FULLNAME%"=="" SET FULLNAME=%FULLNAME:&=^&%
:: Display full nameECHO Full name %FULLNAME%
:: Find the user comment:: * * * US NT version * * * ::IF NOT "%USERID%"=="" FOR /F "tokens=2* delims= " %%A IN ('NET USER %USERID% /DOMAIN ^| FIND "User comment"') DO SET COMMENT=%%B
:: * * * Dutch NT version * * * :::: IF NOT "%USERID%"=="" FOR /F "tokens=1* delims= " %%A IN ('NET USER %USERID% /DOMAIN ^| FIND "Opmerking "') DO SET COMMENT=%%B:: "Escape" ampersands in variableIF NOT "%COMMENT%"=="" SET USERID=%COMMENT:&=^&%
:: Display commentECHO Comment %COMMENT%
:: Find the SID for this user ID (useful when you need:: to remotely edit the CURRENT_USER registry tree)FOR /F "skip=2 tokens=6* delims= " %%A IN ('GETSID \\%WINSSRV% %USERID% \\%HOSTNAME% %USERID%') DO SET SID=%%B
:: Display SIDECHO Security ID %SID%
:: Display host name and IP addressECHO Host name %HOSTNAME%
ECHO IP address %IPADDR%
:: Find the MAC address for the IP address found in WINS:: * * * US NT version * * * ::FOR /F "tokens=4* delims= " %%A IN ('NBTSTAT -A %IPADDR% ^| FIND "MAC Address"') DO SET MACADDR=%%A
:: * * * Dutch NT version * * * :::: FOR /F "tokens=3* delims= " %%A IN ('NBTSTAT -A %IPADDR% ^| FIND "MAC-adres"') DO SET MACADDR=%%A:: Display MAC addressECHO MAC address %MACADDR%
:: Find the network adapter typeIF NOT "%HOSTNAME%"=="" FOR /F "tokens=1* delims=_" %%A IN ('GETMAC.EXE \\%HOSTNAME% ^| FIND "\Device\"') DO SET ADAPTER=%%B
:: Display adapter typeECHO Network adapter %ADAPTER%
:: Find the up-time for this hostFOR /F "Tokens=1* delims=:" %%A IN ('SRVINFO -ns \\%HOSTNAME% ^| FIND /I "System Up Time:"') DO SET UPTIME=%%B
IF NOT "%UPTIME%"=="" SET UPTIME=%UPTIME:~1%
:: Display uptimeECHO Uptime %UPTIME%
:: End programGOTO End
:Syntax:: Display online helpECHO.
ECHO WhoRU, Version 3.11 for Windows NT
ECHO Remote WHOAMI command
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
ECHO Idea by Rob van der Woude and Adriaan Westra
ECHO http://www.westra.speedlinq.nl/
ECHO.
ECHO Usage: WHORU ^<user_id^>
ECHO or: WHORU ^<hostname^>
ECHO.
ECHO Returns user ID, full name, comment, security ID
ECHO (SID), hostname, IP address, Mac address, network
ECHO adapter type and up-time
ECHO.
ECHO When a user account is used on more than one
ECHO computer simultaneously, WhoRU will only find
ECHO the first logon (the one that has the messenger
ECHO name).
ECHO.
ECHO Requires GETMAC, GETSID, SRVINFO and WINSDMP from
ECHO the Microsoft Windows NT 4 Server Resource Kit
:End:: Clear local environmentENDLOCAL
:: End programGOTO:EOF
page last modified: 2025-10-11; loaded in 0.0082 seconds