Using PsLoggedOn, I have scripted LLO.BAT to determine what user is logged on locally.
The syntax for using LLO.BAT is:
call LLO who \[DomainOrComputer\]
Where who is a call directed environment variable that will contain the the logged on user, or will NOT be set if no one is logged on. DomainOrComputer is an optional call directed environment variable that will be set to the domain or computer that the user is logged onto, and Who will NOT have the leading DomainOrComputer\.
NOTE: If I am the logged on user, Who would be set to JSIINC\Jerry, unless you used the DomainOrComputer parameter, in which case Who would be set to Jerry and DomainOrComputer would be set to JSIINC. If the user is NOT logged onto a domain account, DomainOrComputer would be set to their computer name.
Sample Usage:
call LLO who if not defined who goto none :: Processing for logged on user :none OR set who=# call LLO who if "%who%" EQU "#" goto none :: Processing for logged on user :none
LLO.BAT contains:
@echo off if \{%1\}\{\} @echo Syntax LLO Who&exit /b 1 setlocal for /f "Tokens=3*" %%u in ('psloggedon -l^|Find /i /v "Error:"^|Find /i /v "Unknown"^|Find "\"') do set p1=%%u&set p2=%%v set who=%p1% if defined P2 set who=%p2% if \{%2\}
\{\} endlocal&set %1=%who%&exit /b 0 set dorc= if defined who for /f "Tokens=1* Delims=\" %%a in ('@echo %who%') do set dorc=%%a&set who=%%b endlocal&set %1=%who%&set %2=%dorc% exit /b 0