LAN Manager Remote Administration Suite

A set of tools I created to help make my job easier.

Description: I am responsible for maintaining over 60 PCs in the Texas Tech University Health Sciences Center's Medical Library's Learning Resource Center. To help streamline my maintenance duties I created a set of tools that allow me to remotely gather information from the systems and interact with them. This is one of the largest projects I have ever worked on and is definitely a work in progress. I'm actually in the process of working on a significant rewrite with better underlying networking components. Some of the interesting features of this tool set include:

A tool (DataDig) that queries each system for its stats like the CPU clock speed, memory, BIOS version, manufacture, Windows version, etc. It also gathers a listing of all software installed on each system. This information is then transmitted back to my client and stored in a database where I can prepare useful queries and reports.

Ability to layout computers in the client view to mach real world layout and apply friendly names. Computer icons in client view change color based on any current activity occurring on the system. When users are active at a system it is easy to tell (this information could also be recorded for usage statistics). It also has the ability establish a remote desktop connection.

The setup utility enables you to easily install the software on new systems and upgrade it on existing systems. It can be invoked remotely allowing me to add new features then quickly and easily upgrade all the systems to the new version.

Tools: Visual C++ Pro, MFC, Winsock2.

Topics: MFC Document/View architecture, implementing Window services, Windows Internet (WinINet) API, utilizing broadcast packets, windows sockets, multithreaded client/server architecture, using pipes for IPC, dynamically loading and using DLLs with LoadLibrary and GetProcAddress, global hooks.

Here is a composite screen shot of the major components in the client. The server runs as a service on each machine in the lab.

LANManager Remote Administration Suite - Screen Shot 1

Here is a screen shot of the solution in Visual Studio. As you can see this is a fairly large project. Keep in mind each command exist as a client and server DLL that is loaded dynamically when needed. I ended up with about 11 commands including the ability to login to the systems, launch Internet Explorer displaying a specified URL, and shutting down and restarting systems. Those projects are not shown here.

LANManager Remote Administration Suite - Screen Shot 2

Here is the setup/upgrade component. This utility can ask for the setup FTP location from the user or take the info from command line arguments. It is also capable of running in a silent and persistent mode when performing upgrades.

LANManager Remote Administration Suite - Screen Shot 3

Here are some screen shots of the Data Dig utility. This can run interactively but is normally launched remotely and hidden. The results are then transmitted back to the client and stored in a database. I have been working on a new version of this utility that utilizes WMI to query for even more information.

LANManager Remote Administration Suite - Screen Shot 4
LANManager Remote Administration Suite - Screen Shot 5
LANManager Remote Administration Suite - Screen Shot 6

Here is the Computer Information Database (CID) where all this information eventually lands.

LANManager Remote Administration Suite - Screen Shot 7

Here is a Excel spread sheet with a complete listing of all the software installed in the lab. It references a cross tab query from the above database to generate the output. This document has been particularly useful for dealing with software audits, tracking and managing licenses usage, performing regular maintenance, and a quick reference for our students to see if a specific program is available.

LANManager Remote Administration Suite - Screen Shot 8 Here is a PDF with the full report.

Another interesting component was called Window Watch. This is a service that installs along side the server and monitors what windows the user has open. This information can then be gathered at my convince with a remote command. After running this for a while I managed to build a pretty huge table of user activity.

LANManager Remote Administration Suite - Screen Shot 9

I then programmed a filter that let you add up activity for certain programs. I was using this information to gauge what applications our students were utilizing the most.

LANManager Remote Administration Suite - Screen Shot 10

The results were compiled into a report.

LANManager Remote Administration Suite - Screen Shot 11 Here is a PDF with the full report.

Here is a screen shot of some of the filter VB code.

LANManager Remote Administration Suite - Screen Shot 13

Recently I started a major rewrite of client and server. The new version uses broadcast messages to discover active servers. This has been working well with the switch our computers are hooked up to and provides for nearly instantaneous connections to any machines that are turned on.

LANManager Remote Administration Suite - Screen Shot 14

Here you can also see the remote file copy tool I created that integrates with the client.

LANManager Remote Administration Suite - Screen Shot 15

Please contact me if you are interested in acquiring a copy of the program, seeing the source code, or have any comments.

Back to the projects page.