Create an Inventory of Applications

Applies To: Windows 7, Windows Server 2008 R2

In this step, you develop a list or inventory of the applications that are used in your organization.

  • Plan the inventory

  • Conduct a manual inventory

  • Automate the inventory collection

  • Decide which computers to include in the inventory

Plan the inventory

The process of gathering an application inventory for your organization depends on several factors, including:

  • Managed or unmanaged environment. It is easier to perform an inventory of computers in managed environments because the applications that can be installed on any managed computer are controlled. A managed environment most likely already has 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 installed applications, 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 infrastructure. Organizations with a centralized IT infrastructure have an advantage in gathering an inventory of applications because they are 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 in the Microsoft Desktop Optimization Pack for Software Assurance customers), 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 need to select a tool to gather the inventory. Although it is possible to conduct an inventory manually, you run the risk of making mistakes and omissions. An inventory tool can effectively gather the list of applications running on every computer, such as Microsoft Application Compatibility Toolkit 5.5. For a demonstration of collecting data in your environment, see "Creating Data Collection Packages to Generate an Application Inventory" in Application Compatibility (

    Many organizations install ActiveX controls on their desktop computers to help ensure that the applications and business processes that they use work properly. If ActiveX controls are deployed in your environment, you also need to perform an inventory of ActiveX controls. For more information, see Performing an Inventory of ActiveX Controls in Windows 7 (

  • Scope. The number of computers is a factor when gathering an inventory, but it may not be as simple as specifying the number of computers to include in the inventory. You can reduce the number of computers to include in the inventory if the computers are managed (users cannot install their own software) and if you can identify all the user roles within the organization. In this case, you can perform an inventory of a sampling of computers from each specific role and location. In partially 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.

Conduct 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 listing them from the Start menu, or by conducting a survey where each user provides the list to you. The accuracy of these methods is affected by applications that are installed on a per-user basis and not visible when you log on, and by the thoroughness of the user responses.

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

Automate the inventory collection

In a well-managed environment, there is an up-to-date list of installed applications for your organization. This is normally accomplished 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. If you currently work in a partially managed or unmanaged environment, you may not have an up-to-date inventory of all the applications in your corporate environment. In this case, you can use the Microsoft Application Compatibility Toolkit 5.5 ( The toolkit can help you gather data about your environment, identify applications that are used, determine whether those applications are compatible with Windows 7, and manage application compatibility mitigations.

Decide which computers to include in the inventory

Small organizations can simply inventory every computer on the network. Large organizations, however, may need to perform an inventory of 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 partially managed environments, you may need to determine what the typical configurations are for each role, and perform an inventory for at least one computer for each role. If there is any variation in the configurations, you need to ensure that inventory information for at least one of each configuration is captured. By using an automated inventory tool, you can perform an inventory on every computer, which provides the most complete view of your applications.