Detect Remotely if ANY User is Logged In
Posted on 2006-11-01
This one can either be fun, or a pain in the neck. It started out fun; now it's a pain in the neck so I'm gonna pass it on to you Experts.
I need a way to detect, remotely, whether a Windows XP computer is "in use" -- that is, whether somebody is presently logged-in. The query that determines this might come from anywhere within the local network.
I do NOT necessarily need to know WHO is logged in. That clearly raises some security and privacy concerns I'd best avoid. I certainly won't consider it a deal-breaker to find a solution that happens to give me a username, but that's not really what I'm after.
I want to do this without exposing the system "in any way" -- that is, I don't want to have to poke new holes in existing security. If it's necesasry to poke holes, I'd like to poke a really tiny one that allows only this information out. I've found solutions, for example, that would allow remote querying of the entire registry; I don't consider that acceptable.
In case you'll find it inspirational, here's WHY I want to do this:
I have an application used in university computer labs that does things like take attendance, keep track of which students have questions, helps students find teaching assistants who are on-duty for their classes, et cetera. This is a program students seeking help explicitly run from the desktop. Obviously once it's running (and connected to a central server) I have all the information I need.
There are often students using computers who aren't in a class, though -- students who are just peacefully writing essays on, say, privacy rights. I don't need (I don't WANT) detailed usage information from these people; they won't be running the application, so all is well.
The missing piece (what I'm asking you to find) is to tell me that somebody is logged-in to a computer who ISN'T running my application. This allows me to answer questions like, "Are there enough free seats right now for a class of 30 people, or will we have to ask people to leave?"
Be aware that I've tried several potential solutions to this already without success, but will happily try several more if there's still hope of finding an answer.