Skip to content

Inventory Freshness

Ed Mozley edited this page Oct 23, 2026 · 1 revision

πŸ•’ Inventory freshness - how current is each list?

An asset's software, drives and Device Manager lists come from tools that report on their own schedule: the inventory agent, and any tool you connect through the REST API. Until now the lists just sat there. A software list could be a year old, a Device Manager tab could say 0 because the machine had never sent any, and a collection that failed looked exactly like one that worked.

Now every list says where it came from, how old it is, and whether the last attempt to update it worked.

Requested by @Dr4inder in #200. This is part B of the design. Part A was asset type layouts.


🧭 At a glance

Where On every asset: a line above Storage (Key info), Devices and Software, and an Inventory sources panel at the bottom of Key info
Who Anyone who can open the asset
The setting Assets β†’ Settings β†’ Discovery & reconciliation β†’ Inventory counts as stale after (days) - 7 by default
What you need to do Run Database Verification after upgrading. To see reported empty and failed collections from the agent, roll out the agent script that comes with this release. The old one keeps working

πŸ‘€ What you see on an asset

Above each list, one line per tool that reports it:

What the line says What it means
From the agent, observed 3 hr ago. The last report included this list, and this is it
The same, in amber That observation is older than your stale setting (7 days unless you change it). The machine may be switched off, in a drawer, or its scheduled task may have stopped
Reported empty by the agent, 2 hr ago. The tool looked and found nothing. A real empty list, not a missing one
Not in the agent's last report (3 hr ago). The list kept was observed 5 days ago. The last report left this list out, so the list you see is the one from before, with its own age
The last import from the agent failed (1 hr ago): Could not read Device Manager... The list kept was observed 2 days ago. - in red The tool tried and could not. Nothing was thrown away: the list from the last good report stays, and the line says how old it is

When nothing has ever reported a list - a monitor, a phone, a printer - the list says No device information has been reported for this asset, and the tab's count shows – instead of 0. A 0 now only ever means "a tool looked, and there were none".

The Inventory sources panel at the bottom of Key info lists every tool that reports this asset, and every list it keeps:

List Status Observed Items
Software Current 3 hr ago 214
Volumes Stale 9 days ago 2
Devices Failed - Could not read Device Manager: ... 2 days ago 188

A list in Status can be Current, Stale, Reported empty, Not in last report or Failed. Observed is when the tool looked, never when FreeITSM received it, so a scan imported a week late still says a week ago.

If two tools report the same machine - the agent and, say, your RMM through the REST API - each has its own block, so one succeeding never hides the other failing.

The panel is not part of the type's layout, so no layout can hide it. If a type hides the Software tab, the panel still shows how fresh the software list is.


βš™οΈ The stale setting

Assets β†’ Settings β†’ Discovery & reconciliation β†’ Inventory counts as stale after (days). 7 by default, the same as Last seen and Watchtower. Anything from 1 to 365 days.

Set it to how often your tools report. An agent that runs daily is worth worrying about after a week. A monthly export from another tool would be amber most of the month at 7, so set 35 for that.


πŸ–₯️ The agent: old and new scripts

The agent script that ships with this release (scripts/Invoke-AssetInventory.ps1) tells FreeITSM what happened to each list:

  • a list it collected is sent, even when it is empty, so FreeITSM can believe an empty software list
  • a list it could not read is named, with Windows' error message, and FreeITSM keeps the previous one
  • if Windows answers nothing at all for volumes, physical drives, network adapters or Device Manager, the script counts that as a failed collection, not an empty list. Every PC that can reach FreeITSM has at least one of each, so an empty answer means Windows did not answer properly

The old script keeps working. An older script cannot say whether an empty list means "none" or "could not look", so FreeITSM treats an empty list from it as Not in last report and keeps what it had, as it always has. You will simply never see Reported empty or Failed from an older script.

You can roll out the new script before or after upgrading the server. An older FreeITSM ignores the extra information.

See The inventory agent for rolling it out.


πŸ™… What it does not do

  • It does not tell you about Intune. Intune's software and stand-in disk figure still appear in the lists, marked with their source, but Intune does not record when each list was observed yet, so it has no block in the panel.
  • It does not alert anyone. A stale or failed list is shown on the asset. Watchtower still counts machines that have stopped reporting altogether.
  • Assets the agent reported before you upgraded show their lists without a status line until the agent's next report. Their age was never recorded, and FreeITSM will not guess one.

Related

FreeITSM

Getting Started

Modules

Multi-tenancy (planned)

Blue sky thinking

Bugs resolved

Links

Clone this wiki locally