Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 591
  • Last Modified:

Ldap/ADSI|Script/Query to find out last logged on computer

Hi there,
I'm a systems administrator and my company has various sites across UK. Sometimes users have to travel between sites and often save their data on the C drive of the desktop. All sites are under on domain. I'm fairly new to this but is there is a way I can find out what computer a particular user logged on on a particular day. I mean is there any way we can query Active Direcory to find this out. ? I need to know the computer name the user logged on to .

  • 3
  • 2
  • 2
1 Solution

The user's last logon time can be stored in AD (See an article here: I am not a 100% sure but think you can extract the last time a particular machine accessed the networkas well, but I don't believe the the two are connected in any way within AD. Also, only the last log entry is stored unless you have setup Auditing Policies to track it. (IMO) The best way to track what you want is to incorporate you own logging into a logon script. You can control where and what information is tracked. If you would like help putting together a script let me know and I'll see what I can put together for you.

gtrivediAuthor Commented:
Hi Krompton,

Thats what I thought. The login script can come handy. Now where will you put the login script ? (So that I can track which user logged on to which computer)
The idea is that I have the NT username and want to find the last logged on computer. If you can give me a script that would be wonderful.


Below is an example. Save it as a .vbs file to your NetLogon directory. I would then assign it as a logon script in a new or existing GPO after testing.

Good Luck,

Option Explicit
On Error Resume Next
Dim WshNetwork, WshShell, LogFile, oFS, strCPUName, strUserName, objFileSystem, objOutputFile

Const Read = 1
Const Write = 2
Const Append = 8

Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")

LogFile = "\\Server\Share\Test.log" 'Input your info

Set WshNetwork = WScript.CreateObject("WScript.Network")
strCPUName = WshNetwork.ComputerName
strUserName = ""
'Make sure username loaded
While strUserName = ""
WScript.Sleep 100
strUserName = WshNetwork.UserName

'Open your log, enter info and close file
OpenFile LogFile, Write'Append
objOutputFile.WriteLine strUserName & " " & "logged on at: (" & Now & ") from: (" & strCPUName & ")"


'Open a file
Public Function OpenFile(FileToOpen, AccessType)'
      set objFileSystem = CreateObject("Scripting.FileSystemObject")
      set objOutputFile = objFileSystem.OpenTextFile(FileToOpen, AccessType, True)
End Function
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

i would use simpler batch file :

echo ************ >>\\server\share$\log.txt
echo %username% >>\\server\share$\log.txt
echo %computername% >>\\server\share$\log.txt
echo %time% >>\\server\share$\log.txt
echo %date% >>\\server\share$\log.txt
echo ************ >> \\server\share$\log.txt

put the lines in common login script and replace \\server\share$
with your server name and share that you will create (don't forget write access to everyone)
gtrivediAuthor Commented:
Thanks Krompton and Haim96. Both script works fine. And I can search for the username and and find the computer name used by the user last. Great stuff!

Good Batch file and you can do quite a bit with them. Scripting does have much more versitility though and I encourage anyone to learn a scripting language when they administrate a network (VB, Java, Kix or whatever) but as your example shows you don't want to ignore the batch file either.


As I mentioned, I highly encourage network admins to learn scripting especially VB when you are running a windows AD network. Haim96 does make a good point though that some things are simpler with batch files; I myself have quite a store of them and have no intention of getting rid of them until they no longer function on the prevailing OS of the time. Of course I've been using them since DOS3.0 days in the 80's so who knows when they'll become obsolete. :) And thanks for the points.

Cheers all,
thanks gtrivedi and Krompton   :)
i know how to script VBS and WMI too but if we can keep it simple so whay not ?

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now