VBScript - User Account Usage ( Least used accts, most frequently used accts)

Posted on 2007-11-21
Last Modified: 2008-02-22
I need a VBScript to report on user acct usage (URGENTLY..)

It -must- report on the following two things (anything additional + relevant is cool)

 - Most frequently used account
 - Least frequently used

I've attached the following code, dont know if it will work because I cant test. It's as far as I got without being completely stumped.

500 Points and a BIG AWESOME THANK YOU to anyone that helps in advance.. I have to hand this in in about .. 9 hours so I hope someone can finish my code
'To check the login time and disable the account

Dim dDate, oUser, oObject, oGroup

Dim iFlags, iDiff, iResult

dim arrweeks()


'Point to group containing users to check

Set oGroup = GetObject("WinNT://MyDomain/Domain Users")

'Enable error trapping

On error resume Next

'for each user object in the group...

For each oObject in oGroup.Members

x = x + 1

  'ensure the user isn't a computer account!

  If (oObject.Class="User") And _

  (InStr(oObject.Name, "$") = 0) Then

     'retrieve the user object

     Set oUser = GetoObject(oObject.ADsPath)

     'get the last login Date from the domain

     'and strip off the time portion

     '(just need the date)

     dDate = oUser.get("LastLogin")

     dDate = Left(dDate,8)

     dDate = CDate(dDate)

     'calculate how long ago that was in weeks

     iDiff = DateDiff("ww", dDate, Now)

     'store into an array

     arrweeks(x) = idiff

     arrusername(x) = oObject.Name

     End If

  End If


Do until strcount = 1

y = y + 1

	If arrusername = "" then

	strcount = 1


	msgbox "account name" & vbtab & arrusername(y) & vbcrlf & _

		"how long since last login (weeks)" & vbtab & arrweeks(y) "

	End If


Open in new window

Question by:dshocker
  • 3
  • 2
  • 2
  • +3
LVL 12

Expert Comment

ID: 20327014

Do you want to know the last login details?

If you have 2003 domain we can pull the lastlogin details to see who are the users that are not logged in before x days.


Expert Comment

ID: 20327029

Can't you do things the other way around ? So for example list all users that haven't logged in for say 20 weeks:

dsquery user ou=users,ou=nl,dc=microsoft,dc=com -inactive 20 -limit 0

Add >>output.txt to put it into a textfile.



Author Comment

ID: 20327089
Argh I don't even know about that script, lol.

I just need it to show simply in a msgbox the LEAST used account, and the most frequently used account..

Once I get that script I can think about like, last 5 logged in accts and stuff x_O
LVL 28

Accepted Solution

Michael Pfister earned 168 total points
ID: 20327104
You won't get that info from Active Directory. Its not counting the number of logons, just date and time when the user logs on.

Assisted Solution

MorDrakka earned 166 total points
ID: 20327133
And that's sonly stored on the DC that processed that request. That information is not replicated.

So i suggest you play with dsquery :P

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.


Author Comment

ID: 20327235
MPFister? Okay, then it must be locally?????

Author Comment

ID: 20327270
Oh, sorry I misunderstood, hehe.


Yeah, I have no idea..

Could someone play with my code and get it to work? :S
LVL 19

Assisted Solution

SteveH_UK earned 166 total points
ID: 20334849
MorDrakka is right in saying that it is only stored on the DC that processed the request.

Here's how I'd go about it.

1.  See if you can delimit user accounts somehow, such as membership of a group or containment in an OU.
2.  Use dsquery to search and retrieve the users and their last logon details
3.  Either output to Excel or use script
4.  Sort on the basis of logon date/time
5.  Trim to the ones you want
LVL 19

Expert Comment

ID: 20334854
Forgot to mention that you need to repeat the search for each DC in each site accessible to the user.  If you are a large organisation then that will be a lot of searching, but if you are small it will be pretty simple.

Expert Comment

ID: 20962204
Forced accept.

Community Support Moderator

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
Many of us in IT utilize a combination of roaming profiles and folder redirection to ensure user information carries over from one workstation to another; in my environment, it was to enable virtualization without needing a separate desktop for each…
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Sending a Secure fax is easy with eFax Corporate ( First, just open a new email message. In the To field, type your recipient's fax number You can even send a secure international fax — just include t…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now