Jump to content

How can I find the Username from remote computer?


Recommended Posts


Thanks for the reply. I know this, but there are some computers in my local network that don't answer with username <03>. There is active user and if I check with NetWkstaUserEnum(), this function returns correct result. What is the correct way of doing this? Please help with information :)

Link to comment
Share on other sites

The computers are logged on domain. I need to make a simple database with who is logged, and when logged in and out. If there is solution for one computer I will write software which will check the computers in background one by one.

Link to comment
Share on other sites

Sysinternals has a command line tool that can return the locally logged on user (and more info as well). You can use this to create a text dumpfile and parse it to pull out the relevent data:

PsLoggedOn

You can determine who is using resources on your local computer with the "net" command ("net session"), however, there is no built-in way to determine who is using the resources of a remote computer. In addition, NT comes with no tools to see who is logged onto a computer, either locally or remotely. PsLoggedOn is an applet that displays both the locally logged on users and users logged on via resources for either the local computer, or a remote one. If you specify a user name instead of a computer, PsLoggedOn searches the computers in the network neighborhood and tells you if the user is currently logged on.

PsLoggedOn's definition of a locally logged on user is one that has their profile loaded into the Registry, so PsLoggedOn determines who is logged on by scanning the keys under the HKEY_USERS key. For each key that has a name that is a user SID (security Identifier), PsLoggedOn looks up the corresponding user name and displays it. To determine who is logged onto a computer via resource shares, PsLoggedOn uses the NetSessionEnum API. Note that PsLoggedOn will show you as logged on via resource share to remote computers that you query because a logon is required for PsLoggedOn to access the Registry of a remote system.

Installation

Copy PsLoggedOn onto your executable path and type "psloggedon".

PsLoggedOn works on NT 4.0, Windows 2000 and Windows XP.

Usage

usage: psloggedon [-?] [-l] [-x] [\\computername | username]

-l

Shows only local logons instead of both local and network resource logons.

-x

Don't show logon times.

\\computername

Specifies the name of the computer for which to list logon information.

username

If you specify a user name PsLoggedOn searches the network for computers to which that user is loggedon. This is useful if you want to ensure that a particular user is not logged on when you are about to change their user profile configuration.

Link to comment
Share on other sites

Using code to perform the function might be easier... Here's a decent snippet.

'RegObj must be installed to run this script.

'http://msdn.microsoft.com/vbasic/downloads/addins/default.asp

'Author.Mike Ford.08.26.03

Dim rserver

const objKey = "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"

const name = "DefaultUserName"

strComputer = Inputbox("Remote Computer?")

If strComputer = "" Then

WScript.Quit

End If

Set fso = WScript.CreateObject("RegObj.Registry")

Set connect = fso.RemoteRegistry(strComputer)

Set username = connect.RegKeyFromString(objKey).Values(name)

wscript.echo "The Last Logged on User was: " & username

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...