Introducing Intune Device Inventory

ducky

One of the announcements at Ignite, which likely was a bit under the radar is Intune’s new Device Inventory feature. Today, we’re going to cover a few things:

What is Intune Device Inventory?

The question we’re covering today is: “What exactly is Intune Device Inventory?”

Intune Device Inventory is in its very early stages at this point. The eventual goal is to leverage Intune Device Inventory to provide analytical insights into devices to answer crucial questions. Some of those questions might be: “Do any devices lack TPM 2.0 support?” or “What devices have less than 100 GB of free disk space?”

Some of its long-term goals are:

  • Extending the capabilities of Dynamic Membership Groups in Entra
  • Extended into Microsoft Copilot to drive automations, insights, troubleshooting, and more
  • Powering reports and exports of data to get great insights into devices that need to replaced or have gaps

Let’s start by discussing the available categories. The ones with a * are required:

CategoryPropertiesNotes
BatteryCycle Count
Designed Capacity
Full Charged Capacity
Instance Name*
Manufacturer
Model
Serial Number
BIOS InfoBios Name*
Manufacturer
Release Date Time
Serial Number
Sm Bios Version
Software Element ID*
Software Element State*
Target Operating System*
CPUAddress Width
Architecture
Core Count
CPU Status
Logical Processor Count
Manufacturer
Max Clock Speed
Model
Processor Id*
Processor Type
Socket Designation
Disk DriveDescription
Disk Name
Drive Id*
Drive Index
Interface Type
Manufacturer
Model
Partition Count
PNP Device Id
Serial Number
Size Bytes
Encryptable VolumeEncryption Method
Encryption Percentage
Locked
Persistent Volume Id
Protection Status
Volume Id*
Windows Drive Letter
Logical DriveDisk Description
Disk Size Bytes
Drive Identifier*
Drive Type
File System
Memory InfoPhysical Memory Total Bytes
Virtual Memory Total Bytes
Network AdapterIdentifier*
Manufacturer
Type
OS VersionArchitecture
Build Version
Install Date Time
Major Version
Minor Version
OS Name
OS Version
Patch Version
System EnclosureAudible Alarm Equipped
Breach Description
Extended Description
Lock Equipped
Manufacturer
Model
Security Breach
Serial Number*
SKU
SMBIOS Asset Tag
Status
Visible Alarm Equipped
TimeTime Zone
TPMActivated
Enabled
Manufacturer
Manufacturer Id
Manufacturer Version
Owned
Physical Presence Version
Product Name
Spec Version
Video ControllerAdapter Dac Type
Adapter Ram Bytes
Current Scan Mode
Graphics Card Model
Identifier*
Video Mode Description
Windows QFECaption
Computer Name
Fix Comments
Hot Fix Id*
Installed By User Account
Installed Date
QFE Description
QFE stands for Quick Fix Engineering. It refers to hot fixes to fix critical issues.

When you build your profile, the key thing to be aware of that you need to delete properties at the category level for them to stop being tracked.

Now, let’s talk a little bit about the Device Inventory Agent.

The Microsoft Device Inventory Agent

The MDIA (Microsoft Device Inventory Agent) lives here: “C:\Program Files\Microsoft Device Inventory Agent\Logs

When we look at the logs, we start to learn a few things:

The inventory service after installation will do a few things:

  1. The MDM certificate is retrieved
  2. The service is started
  3. The event emitter orchestrator is started (Which basically manages event listeners)
  4. An IPC server is started (this responds to requests for client data) along with 5 instances.
  5. The inventory agent orchestration process is initialized
  6. The Harvester SQLite DB is created along with its appropriate ACLs
  7. Harvesting tables are created
  8. The first policy processing is scheduled for 50m away
  9. Policies start being processed on the 5 instances, which are basically the results of WMI Inventory adapter performing GETs for Device Hardware Inventory data as seen below.
  10. The Intune Inventory Harvester begins harvesting for the items in its policy.
Image of the log lines showing policy processing

For fun, we can trace it nicely. Let’s check out below (interesting to note that it appears to reuse the same DocIDs in subsequent attempts):

On the Adapter we see:
[Fri Dec 13 08:39:07 2024][45976] - Adapter=WmiInventory Operation=SET DocumentId=4e1b96b9-8f50-df6b-9a27-60cede49fb9a MeId=04533fcf-c431-4d54-b17b-89be7476f8da Version=5A1E41E2D936228DF02B2E63AE359E9733E9C9024D66D863C048302CD119A666 Result=0x00000000 MIResult=0x00000000
[Fri Dec 13 08:39:07 2024][45976] - Completed action with HRESULT 0x0, MI_Result 0x0.
[Fri Dec 13 08:39:07 2024][45976] - Completed Set action MeID - 04533fcf-c431-4d54-b17b-89be7476f8da, DocumentID - 4e1b96b9-8f50-df6b-9a27-60cede49fb9a, Version - 5A1E41E2D936228DF02B2E63AE359E9733E9C9024D66D863C048302CD119A666 with HRESULT 0x0, MI_Result 0x0.
[Fri Dec 13 08:39:07 2024][45976] - Legacy: Validated that SettingReportIDs is empty and InventoryPayload contains content.

On the Harvester we see:
12/13/2024 4:39:06 AM [Information] Received payload is being processed on pipe instance 5.
12/13/2024 4:39:06 AM [Information] Harvester policy saved successfully: MeId:04533fcf-c431-4d54-b17b-89be7476f8da, DocumentId:4e1b96b9-8f50-df6b-9a27-60cede49fb9a, Version:5A1E41E2D936228DF02B2E63AE359E9733E9C9024D66D863C048302CD119A666.
12/13/2024 4:39:06 AM [Information] Ipc Server instance 5 waiting for connection...

Once harvested, it will update the DB with the successfully harvested data:

Image of the endpoint used to upload the data from the database

The interesting thing is after it successfully uploads the data, it will delete the data inside of the DB:

Image of the deletion of events in the DB

The process will reoccur every 4 hours for posterity’s sake.

Creating the Intune Properties Catalog Profile

To get started, you need to create the Intune Properties Catalog Profile and deploy it to devices.

Image of creating a properties catalog profile in Intune

You can select any of the categories and items that I mentioned earlier. Once you create and deploy it, it can take up to 24 hours for things to resolve themselves.

A frustration you might run into is this delightful 21477449902 error (typically means not supported) before things are ready:

Image of the dreaded 21477449902 error message in Intune

You will find it eventually resolves itself once the agent is installed and data starts to flow properly:

Image of successful Intune Device Inventory onboarding

You can see the entire process in detail in the video below:

Using Intune Resource Explorer

If you watched the whole video before, you saw the delightful Intune Resource Explorer. For those who are co-managed, you’re already familiar with it. Intune Device Inventory adds a second one of those menus, but that is fine.

For those who aren’t aware, you go into a device > monitor > resource explorer and can click on any of the categories to see the data:

Image of the Intune Resource Explorer

Another thing of interest is the old legacy “Hardware” section will eventually be sourced by this same service as it’s a huge improvement over the legacy data sourcing the “Hardware” section.

Final Thoughts

At this juncture, Intune Device Inventory is a good idea, but still has a ton of work to do before its a great addition to the Intune lineup. Most of us are waiting for it to be part of dynamic device groups and/or Copilot before being super excited about it.

I would also like to see custom categories/properties so customers can tailor this new high-potential service to their needs. We’re definitely moving in the right direction, and they’ve done an exceptional job making it easy for all Intune admins to use.

One bonus item that I found after my good friend Steve Weiner kept me honest, is we already know the graph endpoints for this, but they’re currently undocumented despite our strongest attempts to bust in:

GET https://graph.microsoft.com/beta/deviceManagement/managedDevices('DEVICEID')/deviceInventories('Cpu')?$expand=instances($expand=Microsoft.Graph.deviceInventorySimpleItem/properties)

I hope they will be in due time, but let me finish up with a shameless plug for Graph X-Ray by the amazing PM Merill, which helps you find some of these secret squirrel API commands.

Facebook
Twitter
LinkedIn
The new Intune Device Inventory feature aims to enhance analytical insights into devices, addressing critical questions about device specifications and support. Key components include the Microsoft Device Inventory Agent and the creation of a Properties Catalog Profile. While promising, the feature requires further development to fully integrate with dynamic groups and Microsoft Copilot.

Let me know what you think

Scroll to Top

Discover more from Mobile Jon's Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading