Gathering an Application Inventory

The process of gathering an application inventory for your organization will depend on many factors, including:

Managed or unmanaged environment—Managed environments are much easier to inventory, because they control which applications can be installed on any managed computer. A managed environment will most likely already have a list of supported and approved applications, and you can view this list as complete for all managed computers. An unmanaged environment is challenging due to the complex task of discovering all the applications installed, both officially supported and approved applications, and the programs that users have installed on their own. Most organizations fall somewhere in the middle of this range: they have a combination of a central repository of applications and images, and a number of applications that are exceptions to the standard throughout the organization.

Centralized or Autonomous IT—Organizations with a centralized IT infrastructure will have an advantage in gathering an inventory of applications because they will be aware of, and in contact with, all of the departments within the organization. Decentralized IT infrastructures have a more complex task of communicating their individual inventories across organizational, cost center, and geographical boundaries.

Available Inventory Tools—Organizations that use a software management tool such as Microsoft Asset Inventory Service (a tool available through Microsoft® Desktop Optimization Pack for Software Assurance), Microsoft System Center Configuration Manager 2007, or Microsoft Systems Management Server 2003 (SMS) may already have a comprehensive list of applications present in the organization. Smaller organizations without management software will need to select a tool to gather the inventory. Although it is possible to take an inventory manually, you will run the risk of making mistakes and omissions. An inventory tool can effectively gather the list of applications running on every computer. The Application Compatibility Toolkit 5.5 includes an inventory tool that can help you automate this process.

Scope—The number of computers is a factor when gathering an inventory, but it may not be as obvious as simply specifying the number of computers to inventory. You can reduce the number of computers to be inventoried if they are managed (users cannot install their own software) and if you can identify all the roles within the organization. In this case, you can inventory a sampling of computers from each specific role and location to gather an inventory. In lightly managed or unmanaged environments, users may be permitted to install their own software, and there may be hundreds or thousands of applications beyond the approved suite of programs. The number of user roles will also affect the total scope of the inventory, because you must include representative computers from each role to ensure proper coverage.

Conducting a manual inventory

A very small organization could choose to conduct a manual inventory. If you manage the IT infrastructure for a small organization, you might find it simplest to create a spreadsheet listing the applications on each computer. You can gather the list by logging on to each computer and writing them down from the Start menu, or by conducting a survey where each user can provide the list to you. The accuracy of these methods will be impacted by applications that are installed on a per-user basis and not visible when you log on, and by the thoroughness of the user’s response.

Larger organizations would expand these techniques to include interviewing representatives from each department to help the application compatibility team create a list of applications used by that department.

These interviews are also important for identifying the importance of applications within each role. Obviously, a manual process doesn’t sound like fun for anyone involved, but the greater risk is the possibility of making omissions and mistakes. If you consider that a highly effective automated inventory tool is available free from Microsoft in the Application Compatibility Toolkit (ACT), it makes more sense to automate this process.

Automating the inventory collection

In a well managed environment, you would always have an up-to-date list of installed applications for your organization. You can accomplish this by implementing a software management or inventory tool and using it on a regular basis. A system management tool such as Configuration Manager 2007 or SMS 2003 can assist by maintaining a list of applications that are approved and installed in the organization. But if you currently work in a lightly managed or unmanaged environment, you probably do not have an up-to-date inventory of all the applications in your corporate environment. In this case, you may choose to use the Application Compatibility Toolkit (ACT), which can be downloaded from Microsoft.

The ACT contains an inventory tool among other testing and remediation tools, which can be used to automate the collection of application inventories for all computers in your organization or for a subset, based on how you choose to deploy the ACT inventory client. ACT is a valuable tool for both managed and unmanaged environments, regardless of size. For more information on ACT, see Microsoft Application Compatibility Toolkit 5.5 (

Deciding how much to inventory

Small organizations have an easy answer to the question of “How many computers should I inventory?” In a small organization, you could simply inventory every computer on the network. Large organizations, on the other hand, may face the task of inventorying thousands of computers, and those computers may be spread over multiple time zones and geographic locations.

In well-managed environments, you can base your inventory on one computer for each role and supported configuration. In lightly managed environments, you will need to determine what the typical configurations are for each role, and inventory at least one computer for each role, while understanding that users will have added applications and tools. If there is any variation in the various configurations, you will need to be sure to capture inventory information for at least one of each configuration. By using an automated inventory tool, you have the option of inventorying every computer, which would provide the most complete view of your application portfolio.