Forum Discussion

d-rajapaksa's avatar
Oct 04, 2021
Solved

Get list of inactive users with licenses assigned in Microsoft 365

I have a Microsoft 365 tenant with more than 1000 users in it. I need to get a list of users who have not been active for the last 180 days but are assigned with licenses. The goal is to check if users left the company but never removed their licenses although inactive, which is a waste of money. Please advice. 

  • To be more precise you could:

    1/ Get all the users with licenses assigned
    The most simple solution is: Get-MsolUser -All | where {$_.isLicensed -eq $true}

    To go further, I use several custom scripts :
    - To get a list of the licenses assigned to a user (ex : Office 365 E3) : https://github.com/thijoubert/Sharing/blob/main/PowerShell/AAD_Licenses_Users.ps1
    - To get a full list of the SKU assigned to a user (ex : SharePoint Online P2) : https://github.com/thijoubert/Sharing/blob/main/PowerShell/AAD_Licenses_Users_Details.ps1

    2/ Get the last sign-in date for you users:
    The most simple solution : https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/howto-manage-inactive-user-accounts
    You could use Graph explorer with an admin account

    3/ Cross-reference the two lists to get your answer

20 Replies

  • d-rajapaksa 

    The link below should be the perfect answer:

    https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/howto-manage-inactive-user-accounts

     

    • ronalddolfsma's avatar
      ronalddolfsma
      Copper Contributor

      d-rajapaksaAzure AD is an enterprise product. How can it be that a page/list of inactive users is not available in the interface, by default? It's actually mindblowing.... 

      • JJKW1984's avatar
        JJKW1984
        Copper Contributor
        As you said it is an Enterprise Product so they provide the infrastructure with an API.
        Pretty user interface and prebuilt reports are second class user cases.
    • d-rajapaksa's avatar
      d-rajapaksa
      MVP
      Thanks, but this does not have a way to get users with licenses assigned
      • thijoubertold's avatar
        thijoubertold
        Iron Contributor
        To be more precise you could:

        1/ Get all the users with licenses assigned
        The most simple solution is: Get-MsolUser -All | where {$_.isLicensed -eq $true}

        To go further, I use several custom scripts :
        - To get a list of the licenses assigned to a user (ex : Office 365 E3) : https://github.com/thijoubert/Sharing/blob/main/PowerShell/AAD_Licenses_Users.ps1
        - To get a full list of the SKU assigned to a user (ex : SharePoint Online P2) : https://github.com/thijoubert/Sharing/blob/main/PowerShell/AAD_Licenses_Users_Details.ps1

        2/ Get the last sign-in date for you users:
        The most simple solution : https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/howto-manage-inactive-user-accounts
        You could use Graph explorer with an admin account

        3/ Cross-reference the two lists to get your answer

Resources