Environment is in domain, server is Windows Server 2003, workstations have Vista and XP installed.
I need the way to check remotely who is currently logged on workstation, preferably from some simple command line and without sysinternals or third party programs.

Thanks

link|improve this question

feedback

3 Answers

up vote 10 down vote accepted

see here : http://techrepublic.com.com/5208-7343-0.html?forumID=101&threadID=307918&messageID=3065346

They suggest the wmic command which available on windows :

WMIC /NODE: xxx.xxx.xxx.xxx COMPUTERSYSTEM GET USERNAME Will return the username currently logged into xxx.xxx.xxx.xxx

or WMIC /NODE: "workstation_name" COMPUTERSYSTEM GET USERNAME will return the username currently logged into "workstation_name"

link|improve this answer
feedback

Sorry, did not notice you do not want to use Sysinternals.
That is now a Microsoft technet tool, any specific reason to not use it?
I have preferred Sysinternals over other third party tools before Mark Russinovich moved into Microsoft.


The Microsoft Sysinternals Suite has a tool called Psloggedon,

psloggedon.exe -l


There is also NBTSTAT,

nbtstat -a NetBIOS-Computer-NAme
link|improve this answer
1  
sysinternals is just the business. I hope they paid Mark a ton of money to go there, currently they havn't stopped him doing the good work he was doing before and long may that continue. – gbjbaanb Jun 27 '09 at 13:44
@gbjbaanb, I am happy about that. Hope he keeps updating and adding to the suite. – nik Jun 27 '09 at 15:45
feedback

You can get this info from win32_loggedonuser.

From this page:

strComputer = "."   ' " use "." for local computer

Set objWMI = GetObject("winmgmts:" _
              & "{impersonationLevel=impersonate}!\\" _
              & strComputer & "\root\cimv2")

Set colSessions = objWMI.ExecQuery _
    ("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10")

If colSessions.Count = 0 Then
   Wscript.Echo "No interactive users found"
Else
   For Each objSession in colSessions
     If objSession.LogonType = 2 Then
       WScript.Echo "Logon type: Console"
     Else
       WScript.Echo "Logon type: RDP/Terminal Server"
     End If
     Set colList = objWMI.ExecQuery("Associators of " _
         & "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
         & "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )

     For Each objItem in colList
       WScript.Echo "User: " & objItem.Name
       WScript.Echo "FullName: " & objItem.FullName
       WScript.Echo "Domain: " & objItem.Domain
     Next
     Wscript.Echo "Session start time: " & objSession.StartTime
     WScript.Echo
   Next
End If
link|improve this answer
feedback

protected by Community Jun 28 '11 at 16:45

This question is protected to prevent "thanks!", "me too!", or spam answers by new users. To answer it, you must have earned at least 10 reputation on this site.

Not the answer you're looking for? Browse other questions tagged or ask your own question.