Skip to content

Intune Assignment Hygiene

The question it answers: Which Intune profiles and apps apply to nobody because they are unassigned, target empty or deleted groups, or are only excluded?

Over time Intune fills up with profiles and apps that apply to nobody: never assigned, assigned only to deleted or empty groups, or only excluded. They look deployed in reviews and clutter troubleshooting. Objects assigned to All users and All devices at the same time can apply twice and conflict.

Where in the appIntune › Device Operations & Hardening › Assignment Hygiene
WorkloadIntune
KindFindings list · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed).
LicenceMicrosoft Intune.
Report id (API and MCP)intune.operations.assignment-hygiene
ColumnKeyType
SeveritySeverityStatus
Object typeCategoryText
NameSubjectLink
CheckSettingText
AssignmentsValueText
FindingFindingText
Dead / empty groupsDetailText
DateWhenDate
CountNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: Microsoft Intune.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
DeviceManagementConfiguration.Read.AllMicrosoft GraphRead Microsoft Intune device configuration and policies
DeviceManagementApps.Read.AllMicrosoft GraphRead Microsoft Intune apps
Group.Read.AllMicrosoft GraphRead all groups
Data sources it reads
  • GET /v1.0/deviceManagement/deviceConfigurations|deviceCompliancePolicies?$expand=assignments
  • GET /beta/deviceManagement/configurationPolicies?$expand=assignments
  • GET /v1.0/deviceAppManagement/mobileApps?$expand=assignments
  • GET /beta/deviceManagement/deviceManagementScripts|deviceHealthScripts?$expand=assignments
  • GET /v1.0/groups/{id} ($batch)
GET /ir-api/v1/reports/intune.operations.assignment-hygiene?size=100

An AI assistant reads it with the MCP tool get_report and the id intune.operations.assignment-hygiene. The client needs the Read grant for Intune. See Using the API.