Log Total Logon Time

I worked out a deal with my boys where they need to give me an hour of reading for every hour of computer game time.  I'm running Windows Server 2003 at home, and both boys have a domain account.  Is there a Group Policy, a domain account property, or a script  that enables me to log their time logged on?  Ideally, I'd like to push the data into SQL Server (where I keep everything else), but a simple log file will work fine as well.
jdanaAsked:
Who is Participating?
 
Brum07Connect With a Mentor Commented:
You could run a logon and then log off script (as below) this records the following

Time
Date
User
NetBIOS Name
OU & Domain
Make/Model
Serial Number

You could then calculate from the two times how long a user was on the system

Dim objWMI : Set objWMI = GetObject("winmgmts:")
Dim colSettingsComp : Set colSettings = objWMI.ExecQuery("Select * from Win32_ComputerSystem")
Dim colSettingsBios : Set colSettingsBios = objWMI.ExecQuery("Select * from Win32_BIOS")
Dim objComputer, strModel, strSerial
For Each objComputer in colSettings
  strModel = objComputer.Model
Next
For Each objComputer in colSettingsBios
  strSerial = objComputer.SerialNumber
Next
'INSERT LOG FILE PATH HERE
sLogFilePath = "C:\log.csv"
sType = "Logon"
Const OpenAsASCII = 0
Const OverwriteIfExist = -1
Const ForAppending = 8
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshNetwork = CreateObject("WScript.Network")
Set oADSystemInfo = CreateObject("ADSystemInfo")
sDate = date
sTime = time
sComputer = oWshNetwork.ComputerName
sUser = oWshNetwork.UserName
Set oUser = GetObject("LDAP://" & oADSystemInfo.UserName)
sUserOU = Mid(oUser.Parent, 8)
sLogLine = """" & sType & """,""" & sDate & """,""" & sTime & """,""" & sUser _
& """,""" & sComputer & """,""" & sUserOU & """,""" & strModel & """,""" & strSerial & """"
If oFSO.FolderExists(oFSO.GetParentFolderName(sLogFilePath)) Then
bUpdLogFinished = False
iLoops = 0
On Error Resume Next
Do
Err.Clear
Set fLogFile = oFSO.OpenTextFile(sLogFilePath, ForAppending, True)
If Err.Number <> 0 Then
WScript.Sleep 500
Else
fLogFile.WriteLine sLogLine
fLogFile.Close
bUpdLogFinished = True
End If
iLoops = iLoops + 1
Loop Until bUpdLogFinished Or iLoops > 10
On Error Goto 0
End If

Open in new window

0
 
Farhan KaziConnect With a Mentor Systems EngineerCommented:
Have a look at following link:
http://www.rlmueller.net/Logon5.htm

Hope this helps!
Farhan
0
 
jdanaAuthor Commented:
Thanks guys.  These are perfect!  Maybe I'll customize the scripts a little and practice my VBS skills (which stink).
0
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.

All Courses

From novice to tech pro — start learning today.