To find unassigned profiles and apps in Microsoft Intune, list each kind of object and keep those with no assignment: settings catalog policies and apps say so in their isAssigned property, and the older configuration profiles have an empty list of assignments. Each kind is its own list, so a check that reads only one of them misses the rest. An object assigned to no one reaches no device, but it stays in the admin centre until someone removes it.
| Method | Best fit |
|---|---|
| PowerShell | A CSV of unassigned settings catalog policies, configuration profiles and apps. |
| Admin centre | Checking whether 1 app or 1 profile is assigned, in Microsoft's own wording. |
| Altivane | Recommended for clean-ups, with profiles, policies, scripts and apps in 1 table. |
Before you start
Use an account that can read Intune policies and apps. Microsoft names Read Only Operator as a role that can view existing policies and reports and can't make any changes. The tenant needs an active Intune licence. The PowerShell example requests DeviceManagementConfiguration. and DeviceManagementApps.; your organisation may require administrator consent.
Settings catalog policies and an app's isAssigned property are only in Microsoft Graph's beta, so the example uses the beta modules throughout. Microsoft supports the beta, but says it changes more often than v1.0. The lists are read live. The examples read and export and change nothing.
Option 1
Find unassigned profiles and apps with PowerShell
Install the modules once, then connect and export the objects that nothing is assigned to. The connection prompts you to sign in, so the script holds no password.
# Install once, if the modules are not already installed.
Install-Module Microsoft.Graph.Authentication, Microsoft.Graph.Beta.DeviceManagement,
Microsoft.Graph.Beta.Devices.CorporateManagement -Scope CurrentUser$ErrorActionPreference = 'Stop'
$scopes = 'DeviceManagementConfiguration.Read.All', 'DeviceManagementApps.Read.All'
Connect-MgGraph -Scopes $scopes -NoWelcome
try {
$rows = [System.Collections.Generic.List[object]]::new()
$policies = Get-MgBetaDeviceManagementConfigurationPolicy -All
foreach ($policy in $policies | Where-Object { -not $_.IsAssigned }) {
$rows.Add([pscustomobject]@{ Kind = 'Settings catalog'; Name = $policy.Name
Modified = $policy.LastModifiedDateTime })
}
$configs = Get-MgBetaDeviceManagementDeviceConfiguration -All -ExpandProperty Assignments
foreach ($config in $configs | Where-Object { $_.Assignments.Count -eq 0 }) {
$rows.Add([pscustomobject]@{ Kind = 'Configuration profile'; Name = $config.DisplayName
Modified = $config.LastModifiedDateTime })
}
$apps = Get-MgBetaDeviceAppManagementMobileApp -All
foreach ($app in $apps | Where-Object { -not $_.IsAssigned }) {
$rows.Add([pscustomobject]@{ Kind = 'App'; Name = $app.DisplayName
Modified = $app.LastModifiedDateTime })
}
if ($rows.Count -eq 0) {
Write-Output 'Every settings catalog policy, configuration profile and app is assigned.'
} else {
$rows | Sort-Object Kind, Name |
Export-Csv -Path './unassigned-intune-objects.csv' -NoTypeInformation -Encoding utf8
Write-Output "$($rows.Count) objects are assigned to no one."
}
} finally {
Disconnect-MgGraph | Out-Null
}The script keeps 3 kinds: settings catalog policies, the older configuration profiles and apps. Microsoft has deprecated listing apps with their assignments expanded, so the app list reads isAssigned instead. Compliance policies, scripts, app protection policies and enrolment profiles are separate lists that this example leaves out. Modified helps you tell an abandoned object from one still being built: open it before you remove anything.
Option 2
Check assignments in the admin centre
- Sign in to the Microsoft Intune admin centre for the correct tenant.
- Go to Apps > All apps. The list shows whether each app is assigned.
- Select an app to open its overview. Under Essentials, Assigned says Yes or No.
- For profiles, go to Devices > Manage devices > Configuration, select the Policies tab and select a policy.
- Read Assignments on the policy's page for the users and groups it reaches. Leave the page without editing it.
This suits checking a few apps and profiles. Checking every profile this way means opening each one, so for a whole tenant, export the list with PowerShell or a report.
Option 3 ยท Recommended for clean-ups
Report on unassigned Intune objects with Altivane
- Open Altivane and choose the tenant.
- Run the Intune Objects Without Assignments report.
- Open the tenant's Excel workbook and find Unassigned Intune objects: each object's type, name and platform, and when it was last modified and created.
- To see who every other object reaches, run the Intune Assignments report next.
The report reads every Intune type in 1 run: configuration profiles, settings catalog and endpoint security policies, compliance policies, apps, app protection and app configuration policies, scripts and remediations, enrolment profiles and update policies. The report needs a tenant that uses Intune and signs in with a certificate.
Contact usCommon questions
Does a profile assigned to an empty group count as assigned?
Yes. An app's isAssigned means it is assigned to at least 1 group, whether or not the group has members, and a profile with any assignment has a non-empty list. To find objects that reach no one in practice, compare the groups they're assigned to with their members.
Why does a profile I just unassigned still apply?
Microsoft says a policy stays assigned and in effect on a device until that device next syncs with Intune, so the change can take a while to show. A sync from the device, or a remote sync from the admin centre, brings it forward.
Why does an assigned profile never reach a device?
The device has to check in with Intune to receive it. A device that hasn't synced for weeks gets nothing new; to find those, see how to find stale devices in Microsoft Intune.
Microsoft references
Technical references checked on 6 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.
- View and monitor device configuration policies in Microsoft Intune
- What is Microsoft Intune app management?
- Monitor app information and assignments
- Common questions with policies and profiles in Intune
- Get-
Mg Beta Device Management Configuration Policy reference - mobileApp resource type (beta)
- device
Management Configuration Policy resource type (beta)