SharePoint Online reporting

How to find sites without owners in SharePoint Online

Find sites with no primary admin or group owner with SharePoint Online and Graph PowerShell, check Active sites in the SharePoint admin centre, or run Altivane's SharePoint Sites report.

By the Published

To find sites without owners in SharePoint Online, check the 2 kinds of site separately. A site connected to a Microsoft 365 group is owned by the group's owners, so it has no owner when the group has none; any other site has a primary admin, which can be blank. The SharePoint admin centre shows primary admins but not group owners, so a full list takes the SharePoint Online Management Shell and Microsoft Graph together.

Choose the method that fits the job
MethodBest fit
PowerShellA CSV of sites with no primary admin and group sites whose group has no owner.
Admin centreChecking a site's admins and group owners in Microsoft's own pages, 1 site at a time.
AltivaneRecommended for recurring reviews, with both kinds of site in 1 table.

Before you start

Use an account with the SharePoint Administrator role. To read sites with Get-SPOSite, Microsoft says the account must be a SharePoint Online administrator and a site collection administrator. The Microsoft Graph part requests GroupMember.Read.All to read each group's owners; your organisation may require administrator consent. In PowerShell 7 the SharePoint Online Management Shell loads through Windows PowerShell, which the last line of the install block does.

Owners are read as they are now. Sites in the recycle bin aren't returned, and OneDrives are left out. The examples read and export and change nothing.

Option 1

Find sites without owners with PowerShell

Install the modules once, then connect to both services and check each kind of site. The connections prompt you to sign in. Replace contoso with your tenant's name.

PowerShell
# Install once, if the modules are not already installed.
Install-Module Microsoft.Online.SharePoint.PowerShell -Scope CurrentUser
Install-Module Microsoft.Graph.Authentication, Microsoft.Graph.Groups -Scope CurrentUser
# In PowerShell 7 only: load the SharePoint module through Windows PowerShell.
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
PowerShell
$ErrorActionPreference = 'Stop'
Connect-SPOService -Url 'https://contoso-admin.sharepoint.com'
Connect-MgGraph -Scopes 'GroupMember.Read.All' -NoWelcome
try {
    $rows = [System.Collections.Generic.List[object]]::new()
    # A site with no Microsoft 365 group has 1 primary admin, or none.
    foreach ($site in Get-SPOSite -Limit All -GroupIdDefined $false) {
        if (-not $site.Owner) {
            $rows.Add([pscustomobject]@{ Url = $site.Url; Title = $site.Title
                Template = $site.Template; Reason = 'No primary admin' })
        }
    }
    # A group-connected site's owners are its group's owners.
    foreach ($site in Get-SPOSite -Limit All -GroupIdDefined $true) {
        $owners = @(Get-MgGroupOwner -GroupId "$($site.GroupId)" -All)
        if ($owners.Count -eq 0) {
            $rows.Add([pscustomobject]@{ Url = $site.Url; Title = $site.Title
                Template = $site.Template; Reason = 'Group has no owner' })
        }
    }
    if ($rows.Count -eq 0) {
        Write-Output 'Every site has a primary admin or a group owner.'
    } else {
        $rows | Sort-Object Reason, Url |
            Export-Csv -Path './sites-without-owners.csv' -NoTypeInformation -Encoding utf8
        Write-Output "$($rows.Count) sites have no owner."
    }
} finally {
    Disconnect-MgGraph | Out-Null
    Disconnect-SPOService
}

The CSV has 1 row for each site, with the reason it's there. -GroupIdDefined splits the sites at SharePoint, and the script makes 1 Graph call for each group-connected site, so it takes a while on a large tenant. A site with no primary admin can still have other site admins, which the admin centre shows, so check before you act.

Option 2

Check site owners in the SharePoint admin centre

  1. Sign in to the SharePoint admin centre as a SharePoint Administrator.
  2. Go to Sites > Active sites and choose the Sites without a group view.
  3. Sort by Primary admin to bring the sites with none together.
  4. Select a site and select Membership to see its site admins. For a group-connected site, the same panel lists the group's owners.
  5. Close the panel without saving, and leave the view unsaved.

This suits checking a few sites. Group owners mean opening each group-connected site in turn, so for a whole tenant use PowerShell or a report.

Common questions

Is a primary admin the same as a site owner?

Not quite. A site without a group has 1 primary admin and can have more site admins, who can all manage it. Microsoft says that a person removed as primary admin is still listed as an additional admin.

Why is a team's site on the list?

A team's site belongs to the team's Microsoft 365 group, and the team's owners are the group's owners. A team's site is listed only when that group has no owner, which means the team has none either.

How do I find every ownerless group, not just those with sites?

Groups without owners include distribution and security groups with no site. See how to find groups without owners in Microsoft Entra ID.

Microsoft references

Technical references checked on 7 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.

Talk to us about Altivane

Questions, or pricing? Get in touch.

Contact us