Click here to Skip to main content
15,353,757 members
Articles / Product Showcase
Posted 25 Nov 2004


2 bookmarked

Software Companion Toolsmith

25 Nov 200410 min read
Configurable Capture: Easily Create Product-Specific Remote Diagnostic Tools.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Support Escalations and Remote Diagnostic Tools

Configurable Capture: Easily Create Product-Specific Remote Diagnostic Tools.

Download a Free Trial Now.

If it is not already on the plate of your engineering department to create and maintain diagnostic tools to accompany your products in the field—it might be soon. Support tickets are moving upstream at a higher rate than ever before. Even with the great number of customer issues now deflected by self-help initiatives and quick how-to answers, support tickets are more complex, more costly, lengthier in resolution, and, most specifically for engineering: are being escalated more often industry-wide.

Escalated support tickets are happening more across the board because configuration problems are just too hard to predict. There is a wellspring of problems caused by users’ constantly changing environments, and actual defects in the code get more obscure and difficult to locate as time goes on and the product gets more complex. It’s not that the solutions require more expertise—the fixes are often simple—it’s just getting to the root of the issue.

More escalations increase open ticket time for support tickets, and this slower resolution shows up on management’s radar as a function of both cost and customer satisfaction. As sales starts to worry about the loss of reference customers, management strives for a solution. Development and support create SLAs to assure all the information necessary to diagnose the problem is getting passed back and forth, time limits are set for responses within the resolution cycle, and some senior engineers are moved to a customer support role.

The new problem is that tickets aren’t necessarily getting closed faster under the pressure to resolve, they are largely getting passed around. Also, everyone has to work harder—or at least differently—to comply with SLAs.

The opportunity to benefit from remote diagnostic tools becomes clear at some level, whether it is support or engineering management that sees the fit. Gathering custom information specific to your products from your users’ systems and making it available for diagnostic purposes can drastically speed up the resolution process. Some form of remote diagnostic tool becomes suggested, if not required, to accompany your products into the field.

Build vs. Buy

As a development company, a software firm has the expertise (if not the time and physical resources) to build these tools. You know what needs to be gathered. It is difficult to find an outside product that can satisfy the majority of the functions that are needed and can be integrated into the existing workflow.

When engineered by the company itself, however, these remote diagnostic tools are now new products which must be added into the test and support cycle—forever. Seventy percent of software product cost over lifetime is in testing & maintenance, and 80% of development costs are in identifying and correcting defects. When viewed in that perspective, little diagnostic tools become a large investment. Also, there is now twice the uncertainty when a defect is found and the diagnostic is run—for example: is the log file really missing or is the diagnostic tool misreporting?

Just as a major code rewrite loses the wealth of experiences inherent in the fixes, software companies forfeit the benefit of their valuable understanding of a market space when they stray away from their root technology and customers. Many software development companies need custom diagnostic tools that they don’t have to build and maintain. They need a “diagnostic tool-maker.”

Software Companion Toolsmith

Software Companion Toolsmith is a “virtual programmer,” allowing you to build product- or project-specific companion tools for the field. The result is a wizard-based, no-installation remote diagnostic tool customized to your needs.


  • Capture an environment, complete with all of the most-commonly needed information for defect resolution, from the OS to installed software and services to IE settings and more.
  • Configure the application to gather highly customized information such as whole or partial files, file lists, registry hives and values. You can even design a companion tool to run external applications when it gathers—essentially making it possible to “insert your own code” when necessary.
  • Save ALL OF IT in one, highly-compressed and encrypted file that can be easily shared or archived.
  • Run the diagnostic tool without interfering with the users’ environment. Field diagnostic tools you create with Software Companion Toolsmith have no installation for the end user.
  • View the information all in one place, in the same format each time with our viewing tool.
  • Load two saved environments side by side, and then click “compare” to highlight differences down to the last loaded DLL.
  • Use just one field tool that works across all supported platforms.
  • Employ a solution that you don’t have to support or maintain.

How It Works

The true strength of SCT is that it is a simple tool that may be easily introduced into any situation. No large investment in training, money, hardware, change management or companion products is needed. Getting started is as easy as knowing a support address where you want to send the results of the diagnostic inquiry from the end user’s machine:

Image 1
Software Companion Toolsmith Welcome Screen

Type the name of your products you are building tools to accompany into the SCT Welcome Screen.

Then, enter the send-to address in the circled field on the QuickStart Tab, and just click Build.

Image 2
Software Companion QuickStart Tab View

With these quick steps, what you have just built is a remote diagnostic tool with SCT’s standard gathering tasks and default configuration. The gathering routines will run, save all the configuration information into a compressed and encrypted file, and send it via SMTP.

The Wizard your end user sees will allow for additional user reporting of problem description and contact details. When run by the end user, it would look something like this (the type in red is further information for you):

Image 3
User Companion Field Diagnostic Tool

Now the SMTP package has been sent with the diagnostic file attached. The package will arrive at the pre-specified address with the information enclosed:

Image 4
Receipt of Information from Field Diagnostic Tool

Finally, the information within the attached file would look something like this when opened by support—or by you in an escalation:

Image 5
Powerful Information Gathering

Based on the most commonly-needed information for defect resolution, quite a bit of the gathering power of the field diagnostic tool is standard. It is quickly grabbed whenever the application is run and compresses to a file that can be as small as 20K.

An Overview of the Information Gathered by SCT Remote Companion Tools:

Type of Information Gathered


Running Tasks

Sorted by module. Author, version, copyright information, etc. available.

Loaded Modules

Sorted by process. Commonly-used details available, as well as file path.

Screen Resolution and Depth

In addition to settings view detailed information on display driver.

System Up-Time

Displays uptime to the second.

Virtual Memory Settings

Lists “total” and “free” space.

Load Address

Available for modules, relocation addresses also shown.

OS Version

Version details available.

Processor Information

Speed, identifier, and name.

Physical Memory Information

Lists “total” and “free” space. Also available for paging file memory.

Active Window Screen Capture

Takes snapshot of active window at the time of gather. Edit in preview.

TCP/IP Information

System-wide DNS information.

Network Adaptor Information

IP address, NIC description, physical address, Subnet mask, WINS server information, and more.

Installed Software

Installed software list based on uninstall registry key.

Installed Microsoft Updates

Lists components for which updates are possible and all their installed updates. Whatever details provided for each update are shown.

Drive Information

Drive letter, type, free space, free to user, total size, total used, UNC.

Time Zone Information

International time zone setting of machine.

Information on Services

Display name, dependencies, logon account, start up type and path, status.

IE Settings

Domain information, specific protocol defaults, IP ranges.

Customized Capture Commands

What separates Software Companion Toolsmith from other capture tools is its ability to allow custom, configurable capture. Streamlining engineering communication rests on gathering everything relevant surrounding a defect into one file. For this reason, the field diagnostic tools compress the data by around 90%, so that anything that MIGHT be needed can be captured—the first time.

An Overview of the Custom Gathering Options in SCT Remote Companion Tools:

Global Groups and User Information

Each member of every group and their user details. Sorted by group or user. This can be turned on or off depending on whether you think the information is needed.

Local Groups and User Information

Each member of every group and their user details. Is turned on and off with the Global Group Command.

Custom Output from Running Other Applications

Launch, run, and gather information from OTHER programs. For example, PING.exe will run and the results will be captured. Or, your script you have already written to do very specific diagnostic tasks can be run right from our product.

Specific Files

Capture the actual file, its location information, and all of its details. You can also capture partial files, or select files based on criteria such as size and age of file. Locate the files for capture via a set path or via the registry.

File Lists

Capture a directory without the actual files but with all of their details.

Registry Values

Value with name, type and data.

Registry Hives

Complete hive with all associated details.

Event Log Viewing (BETA)

Allows for Capture and Filtering of NT Event Logs. View captured data right within our product.

Additional Customization

Aside from the information gathered, you have a fairly wide amount of control over the design of your remote tools.

Presentation Options dictate the appearance, whether you include your company logo and license agreement.

Communication Settings allow you to control a range of delivery-related details. How many and what user-entry fields do you want to appear? Will the file be sent via SMTP, or saved to desktop for some other delivery method? It is your choice whether or not to allow the end user to view the data before it is sent and even choose to remove items that could be security risks. Add custom text or links to assist the user in your support processes.

Performance Options define whether or not the remote tool is deleted from the end user’s system upon next reboot, whether screen shots or group membership information are captured, and more.

All of your choices are saved as a specification file, which you can open and edit at a later time to easily create new remote tools.

Customize, Capture, Compare

These elements work hand-in-hand in Software Companion Toolsmith and its remote diagnostic solutions. Customize the gathering features to your specific products. Capture the remote environment surrounding the defect. Compare data down to the smallest detail. This kind of pinpointed troubleshooting is priceless.

Benefits for Engineering

You can now quickly and inexpensively build remote diagnostic solutions for support—without any engineering effort. Escalated cases now arrive at a developer’s inbox with a complete view of the user’s machine attached—you can address the problems on the first attempt. Because these files of the users’ environments can be easily archived, there is better information than ever before on the systems of the users and the configuration issues or other software installed that might affect performance. Both Marketing and Development can use this for future planning.

Whether you already have “build remote companion tools” on your project list or not—download a free trial of Software Companion Toolsmith today, and share it with your support department. You’ll enjoy the great benefit of receiving complete, accurate, highly-specific information in a standard format with every escalation or defect report, and support will thank you time and again.

Download a free trial of this new engineering solution at


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

ByStorm Software
Web Developer
United States United States
ByStorm Software's developer Gene Allen launched his commercial software career in the early 80’s at the age of 18 when he built an integrated word publishing, spreadsheet, and graphics package using Z80 Assembler on a TRS-80. Since then, he has alternated between the roles of architect, manager, and director at several companies including DacEasy, McAfee, Mission Critical and Net IQ. Owning his own company now allows him to be all three roles at the same time. He currently goes by the title of Development Guy, and takes great joy in using ByStorm’s products to streamline the testing of ByStorm’s products.

Marketing Gal Amy Anderson is the other side of the equation. While Gene is engineering fantastic software, Amy uses her MBA, background in marketing and communications, and sheer belief in the usefulness and quality of the products to do everything else. Her background as a professional ballet dancer helps her to lead the company Tai Chi sessions.

Comments and Discussions

-- There are no messages in this forum --