As a proof of concept - and for something to do - I decided to implement my logon/logoff script idea
I have two scripts.
logon.bat
Generates a random 15 character alphanumeric string called sessionid and then writes:
LOGON,%DATE% %TIME%,%USERNAME%,%COMPUTERNAME%,%sessionid% to a log on my server and also saves the sessionid to a temp file on the machine.
logoff.bat
This reads the saved session ID, and outputs almost identical info as above to the log, prefixed with LOGOFF instead.
The log file is all very pretty, but I went one step further - I wrote a Powershell script that parses the log file and generates logon session objects which I can query.
So now if I was ever in your situation [unlikely, home domain only has 4 machines!

] I can load up a PS console and type:
Code:
Get-LogonSessions -computer SFLAPTOP01
And I get something like below as the output:
Code:
Open : False
LogonTime : 16/07/2010 20:31:44.13
Computer : SFLAPTOP01
User : user1
SessionDuration : 0.69
SessionID : GW0Wp8cWJcV78S8
LogoffTime : 16/07/2010 21:13:17.34
Open : False
LogonTime : 16/07/2010 21:31:23.47
Computer : SFLAPTOP01
User : user2
SessionDuration : 1.42
SessionID : IUEgvev0f4zJbH
LogoffTime : 16/07/2010 22:56:30.33
Open : True
LogonTime : 17/07/2010 1:12:34
Computer : SFLAPTOP01
User : user3
SessionDuration : 0
SessionID : BblPovm3QAT30ns
LogoffTime :
From that I can see user3 was the last to log in to SFLAPTOP01, and since the session is still open they're very likely to be the last person using it
One command did what it has taken you several hours to do

It is not perfect - I have not decided how to handle missing LOGOFF events [i.e. computer crashes or server is unavailable to update the log etc] - but the theory is sound!
I originally tried to parse the Event Logs on the server, but it was really hard trying to decypher the logs as there was
nothing to differentiate the different logon events [same ID for users, built-in users, type of logon etc].