How can I identify inactive users consuming licenses?

Novak Kafka 0 Reputation points
2026-11-12T16:07:41.45+00:00

I'm reviewing our company's license allocation and noticed that several accounts still have paid licenses assigned despite showing little or no recent activity. Is there a convenient way to identify these users and review their sign-in activity before reclaiming the licenses?

Microsoft 365 and Office | Subscription, account, billing | For business | Other
0 comments No comments

2 answers

Sort by: Most helpful
  1. Jayden-P 4,385 Reputation points Independent Advisor
    2026-11-12T16:27:10.67+00:00

    Hi @Novak Kafka

    Yes, you can use the Microsoft 365 Admin Center to identify users who have licenses assigned but show little or no recent activity.

    1. Sign in to the Microsoft 365 Admin Center.
    2. Navigate to Reports → Usage → Microsoft 365 apps → License Activity.
    3. Review the Last activity date column and the assigned products for each user.
    4. Users with blank or older activity dates may be candidates for license review.
    5. You can also select Export to download the report and sort or filter the results in Excel.
      User's image

    If the report shows hashed values instead of actual usernames:

    1. Go to Settings → Org settings → Services → Reports.
    2. Locate Display concealed user, group, and site names in all reports.
    3. Disable this option and save the change.
    4. Reopen the report after a few minutes. The Username column should then display the actual user accounts instead of anonymized identifiers.

    Before reclaiming a license, I recommend confirming that the account is not a shared mailbox, service account, or otherwise required for business operations. This can help avoid unintentionally impacting active services or users.

    If you're familiar with PowerShell and would like a more automated approach, you can also try the script provided in the following article: https://m365corner.com/m365-blogs/find-inactive-microsoft-365-users-with-licenses-powershell.html

    Note: Please be aware that this link directs to a third-party website and is not an official Microsoft resource. I recommend reviewing the website carefully and understanding any potential risks before accessing or using it.

    Was this answer helpful?


  2. AI answer

    2026-11-12T16:08:00.01+00:00

    Yes. A practical approach is to combine license assignment data with sign-in activity so inactive accounts that still consume paid licenses can be reviewed before licenses are removed.

    1. Find disabled accounts that still have licenses with Microsoft Entra PowerShell:
    Connect-Entra -Scopes 'User.Read.All'
    $disabledUsersWithLicenses = Get-EntraUser -Filter "accountEnabled eq false" -All | Where-Object {
        $_.AssignedLicenses -ne $null -and $_.AssignedLicenses.Count -gt 0
    }
    $disabledUsersWithLicenses | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled | Format-Table -AutoSize
    

    This quickly identifies accounts that are already disabled but still consuming licenses.

    1. Review sign-in activity for inactivity using Microsoft Graph. The key property is signInActivity, especially:
      • lastSignInDateTime
      • lastSuccessfulSignInDateTime

    Examples:

    • All users with sign-in activity: https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity
    • Users whose last successful sign-in was before a cutoff date: https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSuccessfulSignInDateTime le 2024-06-01T00:00:00Z
    • Users whose last sign-in attempt was before a cutoff date: https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSignInDateTime le 2024-06-01T00:00:00Z

    Important details:

    • signInActivity is not returned by default. Include $select=signInActivity or filter on it.
    • signInActivity filtering supports eq, ne, not, ge, and le, but not with other filterable properties.
    • lastSignInDateTime can be blank if the user never signed in, or if the last attempted sign-in was before April 2020.
    • Sign-in data can take time to update: sign-ins typically appear within 6 hours, and the last sign-in date can take up to 24 hours to update.
    1. Decide what counts as inactive for the organization. A common window is 90 to 180 days, but that should match business policy because some users may be inactive temporarily, such as while on leave.
    2. Review before reclaiming licenses. For each inactive user, confirm:
      • whether the person is still employed
      • whether access is still required
      • whether the account must remain for another reason
    3. Use admin portals for license auditing if a UI-based review is preferred:
      • In the Microsoft 365 admin center billing area, review available and assigned licenses and drill down to users assigned to each product subscription.
      • In Microsoft 365 Lighthouse, the Users > Account management > Inactive users tab shows users inactive for over six months across managed tenants. From there, accounts can be reviewed and then blocked or deleted if no longer needed.

    A simple workflow is:

    • export licensed users,
    • compare that list to Graph sign-in activity,
    • flag accounts with no recent sign-in,
    • validate business need,
    • then remove the license or block the account as appropriate.

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.