Lately, I have really been wanting to rewrite my ‘Global Domination‘ app. Mainly, because I want to add a lot of features to it, but I’m not going to go to the trouble of trying to ‘polish a turd’. The underlying code is ‘stable’ but is incredibly craptastic. So before I add anything new I guess I have to rip the whole thing down and rebuild.
This time around I’m going to go client/server (with the current version if you have multiple versions running they are all ping slamming the network all the time) so having a single server doing all the monitoring will of course be better. The server would probably use the excellent sqlite database which I have recently become enamored with. One main new feature which is driving the scratch rebuild is type filter/selecting of any user/computer in the domain. The way GD is most often used now is we ask the user what their computer name is and then double click that computer to take control of it.
The problem is that most users don’t know their computer name.
What most users do know is their logon name.
So I envision asking the user, whats your username. Then you start typing it into the NMT, as you type non matching users/computers start fading until you only have one which then you can hit the enter key, or double click to remote control.
This functionality can be easily implemented either calling something like psLoggedOn but actually even better is this code get user name of remote logged on user which originally came from http://www.vbforums.com/showthread.php?t=426827
Another simple addition will be one that my wife told me that they do at her workplace, one of the more common questions you ask a user is ‘Have you rebooted lately’ well at her workplace they run some form of psinfo and just check the uptime. Would like to add similar functionality to just check and report the uptime of all monitored computers. This code will do the trick uptime code although I can’t get my uptime to match that returned from psinfo or from systeminfo (I didn’t even know there was a systeminfo dos command).
After a little more poking I think the “Select * from Win32_ComputerSystem” is an even easier method of getting the remote logged in user. Sample code is here
Some other useful data I might gather are
DNS hostname, IPAddress, Mac Address,
“SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True”
DNSHostName, IPAddress, MACAddress
—
Last Logon Time
“Select * from Win32_LogonSession where AuthenticationPackage = ‘NTLM'”
StartTime
—
I think it would also be useful to capture the last error of the workstation.
—
Bandwidth used by workstation/server (prob through plugin)
—
Fuzzy screen shot to show kindof what a workstation/server is up to (prob through plugin)
—
Computers retrieved from AD grouped together, see this post
Others discovered through ping etc.. and identified grouped together as a different group
—
Jet direct monitoring.
—
And whatever else springs to mind. I would like some sort of DHCP monitoring as well as DNS