How to Create an Application Inventory That Stays Accurate

Rows of dark server racks in a data hall, one rack open and lit blue

Direct answer: An application inventory is a record of every business application in your organisation, with its versions, the devices it is installed on, its owner, its dependencies and its vulnerability status. To create one, pull install data from the systems that already know (Intune, Configuration Manager), clean out runtimes, drivers and other noise, group variant names into one entry per product, then add owners and dependencies through interviews and procurement records. Keep it current by refreshing it from source on a schedule, not by repeating a one-off audit.

Most organisations already have something they call an application inventory. Usually it is a spreadsheet. It was accurate on the day someone finished it, and it has been drifting ever since.

What Is an Application Inventory?

An application inventory answers four questions about every business application you run: what is it, where is it, who owns it, and how risky is it right now.

It is not the same as a list of installed software. An export from your device management tool will tell you that thousands of distinct items are installed across the estate. Most of those are not applications anyone would put on a list: they are runtimes, drivers, language packs, update helpers and components that came bundled with something else.

It is also not the same as an asset register or a licence register. Those are useful, and an inventory often feeds them, but they answer different questions. The inventory is the operational view: the thing you reach for when an advisory lands, when a migration is planned, or when someone asks which devices still run an old version of a product.

What an Application Inventory Must Hold

Whatever tool you use, a working inventory needs six things for every application.

  1. Application. One consistent name per product, not one row per installer variant.
  2. Version. Every version in use, not just the latest one you deployed.
  3. Device. Which devices have each version installed, so you can count and target them.
  4. Owner. The person in the business who can say yes or no to a change. Without one, every decision turns into a hunt.
  5. Dependencies. What the application needs to run, and what depends on it. These decide the order in which things can be changed.
  6. Vulnerability status. Which known vulnerabilities apply to the versions you actually run.

The figures below are illustrative, not drawn from a customer estate.

Notice what the table does not have: rows for the runtime the finance client needs, or for the driver the drawing tool installs. Those still matter, as dependencies, but they are not applications in their own right.

You can add more columns later, such as business criticality, cost centre or contract renewal date. Start with these six. They are the ones you will need most often, and the ones that go stale fastest.

Where the Data Comes From

No single source holds all six fields. A good inventory combines several, and is clear about which source is trusted for which field.

Device management (Intune). Intune’s discovered apps data tells you what is installed, at which version, on which managed device. It is the most reliable source for the first three fields. It has gaps, though, and it is worth knowing them before you rely on it. We cover those in detail in application discovery: what you’re missing in Intune today.

Configuration Manager (SCCM). If your estate is still on SCCM, or part-way through moving to Intune, its install data is just as valuable. Hardware and software inventory gives you applications, devices and the links between them. Building the inventory here first is often the sensible start of a move to Intune, because you only want to carry forward what the business still needs.

Interviews. Install data cannot tell you who owns an application, why an old version is still in place, or what breaks if it changes. Only people can. Short, structured conversations with department leads and service owners fill the owner and dependency fields and surface the exceptions nobody wrote down.

Procurement and contracts. Purchase records tell you what the organisation believes it has bought, and from whom. Comparing them with install data is a useful cross-check: applications that were bought but never show up, and applications that show up but were never bought, both need a conversation.

Vulnerability sources. Public databases such as the NIST National Vulnerability Database list known vulnerabilities by product and version range. Matching them against your inventory is what turns a list into a risk view.

Why Raw Install Data Is Not an Inventory

The most common mistake is to export installed software, sort it alphabetically and call it the inventory. It looks complete. It is not usable.

It is full of things that are not applications. Runtimes, redistributables, device drivers, help files, installers left behind after setup, and components that came inside a bundle all register as installed software. Count them and your inventory inflates with noise, and the real business applications get buried.

The same product appears under several names. A vendor renames an edition. A language pack registers separately. Two installers leave slightly different display names. Unless these variants are grouped into one application family, you will overcount the number of products and undercount the versions of the ones that matter.

Look-alikes get merged by mistake. The opposite problem is just as costly. An add-in for a collaboration tool is not the tool itself. Merge them and the add-in’s version numbers get confused with the main product’s, which throws off vulnerability matching.

It says nothing about owners or dependencies. Install data is a starting point for the first three fields only.

So the order matters: collect, then clean, then group, then enrich. Measuring anything before the inventory is clean, such as how many versions of each product you run, gives you numbers you cannot defend. The version debt and application sprawl article shows what you can measure once the families are right.

How to Create an Application Inventory, Step by Step

  1. Agree the scope. Decide which devices are in (for example, all managed Windows devices) and which are out. Write it down; it will be asked.
  2. Pull install data from source. Export from Intune, SCCM or both. Keep the raw export untouched so you can trace any row back to where it came from.
  3. Strip the noise. Remove runtimes, drivers, redistributables, help files, installers and bundled components from the application view. Keep them available, because some will reappear as dependencies.
  4. Group variants into families. One consistent name per product. Keep look-alikes, such as add-ins and plug-ins, separate.
  5. Record versions and device counts per family. This is where the inventory starts to show you something useful.
  6. Name an owner for every family. Start with the most widely installed applications and work down.
  7. Record dependencies. Ask owners what each application needs and what needs it.
  8. Match vulnerabilities. Check each version in use against known vulnerability data.
  9. Decide how it stays current. Before you publish it, agree how and how often it is refreshed. This is the step most inventories skip.

How to Keep an Application Inventory Current

This is where the manual approach breaks down. A spreadsheet inventory is a snapshot. The estate keeps changing after the snapshot is taken: devices are rebuilt, applications are updated, new versions arrive, and new vulnerabilities are published against versions that looked safe last month.

The usual response is a periodic audit. Someone re-runs the export, re-does the cleaning by hand, and tries to carry the owners and notes across from the old spreadsheet. Each round costs nearly as much as the first, and the cleaning decisions are rarely made the same way twice.

Three habits keep an inventory accurate instead.

  • Refresh from source, don’t rebuild. Re-read install data on a schedule and update the inventory in place, rather than starting a new file.
  • Make decisions stick. When someone decides a row is a driver, or that two names are the same product, or who owns a family, that decision should survive the next refresh. Otherwise the cleaning work is lost every time.
  • Keep vulnerability data moving separately. New vulnerabilities are published far more often than your estate changes. Re-match the inventory whenever the vulnerability data changes, not only when you re-collect install data.

For organisations planning a Windows 11 move, this is not optional. Migration programmes tend to stall on applications rather than the operating system, as we set out in why Windows 11 programmes fail on apps, not the OS. A current inventory is the first thing those programmes need.

How ALICE Builds and Maintains Your Application Inventory

ALICE follows the same method, and keeps it running after the first pass. It works with Microsoft Intune estates, and can also start from SCCM.

  • Discover from Intune. ALICE reads which applications are installed on which Windows devices, at which versions, from your own Intune tenant through Microsoft Graph. Access is granted by your own administrator through admin consent, and you can remove it at any time. Syncs run on demand, with an optional nightly sync, and each one refreshes the whole estate.
  • Or discover from SCCM. For estates still on Configuration Manager, ALICE imports three exports from one run: applications, the device-to-application link and devices. Each is previewed before import and reconciled against SCCM’s own install counts. This lets you build and rationalise the inventory before you move to Intune. SCCM tenants are set up with Camwood’s help.
  • Enrich after every sync. Once the install data is in, ALICE tags rows for rationalisation, consolidates variant names into application families, matches vulnerabilities, and checks each application for a catalogue match to show whether it can be packaged automatically. If one step fails, you are warned and the rest still runs.
  • Clean with flags and families. Rows are checked against a centrally maintained applications database across eight flags, such as device driver, redistributable and non-business. Flagged rows drop out of the rationalised view, and your team can adjust any flag.
  • Keep your decisions. Rationalisation decisions, packaging status and scope settings carry over from one sync to the next, so the cleaning work is done once, not every audit.
  • See it five ways. Discover has five views. The Rationalisation view is the default, with non-business rows removed. The Apps view lists applications and their versions. The Families view gathers every version and variant under one name. The Vulnerabilities view shows exposure across the estate.
  • Record owners and dependencies. Each family has a governance page recording its owner, any versions to be kept out of deployments, and its dependencies. Dependencies can be entered by hand or taken from catalogue manifests.
  • Stay current on vulnerabilities. The vulnerability database is refreshed daily from NIST NVD, EPSS exploit-likelihood scores and CISA’s Known Exploited Vulnerabilities catalogue, and every tenant is re-matched after each refresh without waiting for a new sync.
  • Take the data with you. Dashboards give the overview, an optional weekly digest summarises changes, and dataset exports let you use the inventory in your own reporting.

The result is an inventory that is refreshed from source, cleaned the same way each time, and connected to what you do next: rationalise, package and deploy through your own Intune.

A Checklist for Your First Application Inventory

  1. Write down the scope: which devices, which platforms.
  2. Export install data from Intune or SCCM and keep the raw file.
  3. Remove runtimes, drivers, redistributables and installers from the application view.
  4. Group variant names into one family per product, keeping add-ins separate.
  5. Record versions and device counts for each family.
  6. Name an owner for your twenty most widely installed families.
  7. Record their dependencies.
  8. Check the versions in use against known vulnerability data.
  9. Agree the refresh schedule, and who keeps the decisions consistent.

If step nine is the hard one, that is the sign the spreadsheet has reached its limit.

Frequently Asked Questions

For every business application: one consistent name, every version in use, the devices it is installed on, its owner, its dependencies and its vulnerability status. Other fields, such as business criticality or contract dates, can be added later.

Build an Inventory That Stays Current

An application inventory is only useful while it is true. Building it once is a project. Keeping it accurate is a process, and that is the part worth automating.

Start a 14-day ALICE trial, connect your Microsoft environment and see your estate grouped into application families, with versions, devices and vulnerabilities in one place.

Start your free trial · Or book a demo

ALICE is Camwood‘s platform for Autonomous Application Lifecycle Management: discover, rationalise, package, deploy and patch through your own Intune, with every decision kept on one record.

Latest Posts

Several near-identical glass cubes on a dark reflective surface, lit blue
Duplicate applications come in three kinds: same product under many names, many versions, and different tools doing one job. Here’s……
A board reviewing a security shield on a large display in a dark boardroom
Six questions a risk committee should ask any platform that connects to your Microsoft tenant, what good answers look like,……
A single line of light running through a row of glass panels, connecting each stage
The hidden cost of an application estate is re-work between tools. Here’s where decisions get lost, and what a single……