How to View All External Users with Access to a SharePoint Site?

Ben 0 Reputation points
2025-11-19T22:41:43.65+00:00

I'm a SharePoint admin and need to audit external user access across our SharePoint sites. I want to generate a comprehensive list of all external users who currently have access to a specific site (or multiple sites).

I know I can check site permissions manually through the Settings gear, but that seems tedious for a full audit. I'm looking for:

  1. A way to export/view all external users at the site level
  2. Whether SharePoint Admin Center has a better reporting option
  3. Any PowerShell scripts that could help automate this

What I've tried so far:

  • Checking Site Permissions → Advanced permissions settings (but this requires clicking through each group individually)
  • Looking in SharePoint Admin Center under Policies → Sharing

My questions:

  • Is there a built-in report or view that shows all external users for a specific site?
  • What's the best PowerShell cmdlet for this? (Get-SPOExternalUser?)
  • Can I export this data to CSV for reporting purposes?

Any guidance or best practices would be greatly appreciated!

Thanks in advance!I'm a SharePoint admin and need to audit external user access across our SharePoint sites. I want to generate a comprehensive list of all external users who currently have access to a specific site (or multiple sites).

I know I can check site permissions manually through the Settings gear, but that seems tedious for a full audit. I'm looking for:

  1. A way to export/view all external users at the site level
  2. Whether SharePoint Admin Center has a better reporting option
  3. Any PowerShell scripts that could help automate this

What I've tried so far:

  • Checking Site Permissions → Advanced permissions settings (but this requires clicking through each group individually)
  • Looking in SharePoint Admin Center under Policies → Sharing

My questions:

  • Is there a built-in report or view that shows all external users for a specific site?
  • What's the best PowerShell cmdlet for this? (Get-SPOExternalUser?)
  • Can I export this data to CSV for reporting purposes?

Any guidance or best practices would be greatly appreciated!

Thanks in advance!

Microsoft 365 and Office | SharePoint | For business | Windows
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Jade Ng 6,400 Reputation points Microsoft External Staff Moderator
    2025-11-20T02:01:09.3866667+00:00

    Dear @Ben,

    Good day. Thank you for posting your question in the Microsoft Q&A forum!

    Based on your description, I understand you're trying to get a handle on all the external users with access to your SharePoint sites.

    In this case, please kindly allow me to provide some information:

    You can generate a report to view users’ site permissions using the following method:

    1. From the Data access governance landing page, select View reports under Site permissions for users.
    2. View all the available reports and their corresponding status, the list of users for whom report is generated, how many sites are present in the report and a button to download the entire report.
    3. Select the relevant Report name
    4. You can view all the users as a list to the left. The right side shows the list of sites accessible to the selected user. The right side also displays whether the user can access the entire site or has access to few specific items directly or indirectly.

    Report to list all sites accessible to the selected user

    Download the site permissions for users report

    There are three ways to download the report for a given user or for all users for whom the report was generated:

    1. Select Download report for the selected user option to download the report as a CSV file. The file has a limit of 1 million sites.
    2. Select Download detailed report to get CSV files for all the users given as input, as a Zip file.
    3. On the previous page where all the reports are listed, select Download report to get CSV files for all the users given as input, as a Zip file.

    For reference: Discover sites accessible by a given user with the snapshot report

    Regarding the best PowerShell cmdlet for this, I recommend visiting this link Get-SPOExternalUser However, please note that it is slightly more complex. To view permissions for a specific site, you must specify each site URL explicitly (as shown in the example below):

    Untitled

    Note: Please note that our initial response does not always resolve the issue immediately. However, with your help and more detailed information, we can work together to find a solution.   

    If any part of my solution is unclear, please feel free to contact me. I will be happy to provide clarification or additional information as needed. Thank you for your patience and I'm here to help. Looking forward to your response!


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    1 person found this answer helpful.

  2. Q&A Assist
    2025-11-19T22:42:09.9833333+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    To view all external users with access to a SharePoint site, you can use the following approaches:

    1. PowerShell Cmdlets: You can use PowerShell to automate the process of retrieving external users. The cmdlet Get-SPOUser can be utilized to list users for a specific site. To specifically filter for external users, you might need to check the UserType property of the users returned by this cmdlet. Here's a basic example:
         $siteUrl = "https://<tenant>.sharepoint.com/sites/<site-name>"
         Get-SPOUser -Site $siteUrl | Where-Object { $_.UserType -eq "Guest" }
      
      This command will list all users of type "Guest" for the specified site.
    2. Exporting to CSV: You can easily export the results to a CSV file for reporting purposes. You can append | Export-Csv -Path "C:\path\to\your\file.csv" -NoTypeInformation to the above command to save the output to a CSV file:
         Get-SPOUser -Site $siteUrl | Where-Object { $_.UserType -eq "Guest" } | Export-Csv -Path "C:\path\to\your\file.csv" -NoTypeInformation
      
    3. SharePoint Admin Center: Currently, there isn't a built-in report specifically for external users at the site level in the SharePoint Admin Center. However, you can check the sharing settings under Policies → Sharing, but this may not provide a comprehensive list of external users.
    4. Auditing External Sharing: You can also use the audit log feature in Office 365 to identify resources shared with external users. This involves searching for sharing events and exporting the results, which can help you track external access across your sites.

    By using the PowerShell approach, you can efficiently audit external user access across multiple sites without the need for manual checking through the UI.

    0 comments No comments

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.