The Network Multitool

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

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'”


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


More Infrastructure Ramblings

So I mentioned yesterday our Rim-600, well it came in very handy yesterday and today when we had a little bit of server  flooding 😦 but at least it notified us of the fact, and nothing got fried!

So back to Infrastructure, I think most people want there stuff to just work… and if it doesn’t work than to at least know that there is a problem. I have messed around with a few applications. The first was hyperic-hq which I used a few versions back, I was very pleased with it except for the occasional client lock up, which made the portal think that the server it was monitoring had gone down. I should try it again and see how stable it is now.

This also looks worth taking a look if nothing else you can make some cool google maps eye candy.