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.
| Method | Best fit |
|---|---|
| PowerShell | A CSV of sites with no primary admin and group sites whose group has no owner. |
| Admin centre | Checking a site's admins and group owners in Microsoft's own pages, 1 site at a time. |
| Altivane | Recommended 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. 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.
# 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$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
- Sign in to the SharePoint admin centre as a SharePoint Administrator.
- Go to Sites > Active sites and choose the Sites without a group view.
- Sort by Primary admin to bring the sites with none together.
- Select a site and select Membership to see its site admins. For a group-connected site, the same panel lists the group's owners.
- 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.
Option 3 ยท Recommended for recurring reviews
Find sites without owners with Altivane
- Open Altivane and choose the tenant.
- Run the SharePoint Sites report.
- Open the tenant's Excel workbook and find Sites Without Owners: group-connected sites whose group has no owner, and other sites with no primary owner, each with its address, kind and last use.
- Read SharePoint Sites Summary for the count, and its Sites whose owners could not be read for the sites it couldn't judge.
A site with no primary owner isn't listed while a site administrator still looks after it. For sites without a group, the tenant's access must be Everything, or Custom with SharePoint full control; with Reports or Manage, they're counted under Sites whose owners could not be read. The report leaves out OneDrives and SharePoint's own sites, and needs a tenant signed in with a certificate.
Contact usCommon 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.