Microsoft Teams governance

How to find teams without owners in Microsoft Teams

Find ownerless teams with the Microsoft Teams PowerShell module, check each team's owners in the Teams admin centre, or use Altivane's Teams report for teams with no owner or only 1 owner.

By the Published Updated

To find teams without owners in Microsoft Teams, read each team's owners and keep the teams where the list is empty. A team whose owner has left but whose account still exists counts as having an owner. Owners are read 1 team at a time, so a large tenant is slow.

Choose the method that fits the job
MethodBest fit
PowerShellA CSV of every active team with no owner, read with the Microsoft Teams module.
Admin centreA quick look at the number of owners each team has, or at 1 team's owners.
AltivaneRecommended for recurring reviews, with teams that have no owner listed beside teams that have only 1.

Before you start

Use an account that can read every team: Teams Administrator, Teams Reader or Global Administrator (Teams Reader needs a Teams licence). With a lesser role the Teams cmdlets show only the teams the account owns or belongs to. The module needs Windows PowerShell 5.1 or PowerShell 7.2 or later. The example passes no permission or scope: its access is the signed-in account's role.

A team's owners are the owners of its Microsoft 365 group, and the examples leave archived teams out. The examples read and export; they change nothing.

Option 1

Find teams without owners with PowerShell

Install the module once, then connect and export the active teams that have no owner.

PowerShell
# Install once, if the module is not already installed.
Install-Module MicrosoftTeams -Scope CurrentUser
PowerShell
$ErrorActionPreference = 'Stop'
Connect-MicrosoftTeams | Out-Null
try {
    $teams = @(Get-Team -Archived $false)
    $report = @(foreach ($team in $teams) {
        $owners = @(Get-TeamUser -GroupId $team.GroupId -Role Owner)
        if ($owners.Count -eq 0) {
            [pscustomobject]@{
                DisplayName = $team.DisplayName
                Visibility  = $team.Visibility
                GroupId     = $team.GroupId
            }
        }
    })
    if ($report.Count -eq 0) {
        Write-Output "All $($teams.Count) active teams have at least 1 owner."
    } else {
        $report | Sort-Object DisplayName |
            Export-Csv -Path './teams-without-owners.csv' -NoTypeInformation -Encoding utf8
        Write-Output "$($report.Count) of $($teams.Count) active teams have no owner."
    }
} finally {
    Disconnect-MicrosoftTeams
}

The script makes 1 call per team. Remove -Archived $false to include archived teams, or change -eq 0 to -le 1 to include teams with only 1 owner. In Microsoft Graph PowerShell, Get-MgGroupOwner reads a group's owners and needs at least GroupMember.Read.All.

Check a single team

Reconnect with Connect-MicrosoftTeams, then read 1 team's owners. The main export above disconnects when it finishes.

PowerShell
# Run while connected to Microsoft Teams. Replace the example name.
Get-Team -DisplayName 'Contoso Marketing' |
    ForEach-Object { Get-TeamUser -GroupId $_.GroupId -Role Owner }

The name is a case-sensitive filter, so it can match more than 1 team. An empty result means no owner.

Option 2

Check team owners in the admin centre

  1. Sign in to the Microsoft Teams admin centre for the correct tenant.
  2. Go to Teams > Manage teams.
  3. If the Owners column is not shown, select the Edit columns icon, turn on Owners and select Apply.
  4. Read Owners for each team. It is a count, so a team that shows 0 has no owner. Status says whether the team is Archived or Active.
  5. To see a team's owners, select its name to open its profile page. Leave the page without changing anything.

This suits a quick look at a tenant you already have open. For a list to keep and compare, use PowerShell or Altivane. The Microsoft 365 admin centre also has an Ownerless groups filter under Teams & groups > Active teams & groups.

Common questions

Why is a team whose owner has left not on the list?

A team is without owners only when none are left. While the person's account still exists, they remain an owner; Microsoft says a team can become ownerless when an owner's account is deleted. To find enabled accounts that have stopped signing in, see how to find inactive users in Microsoft Entra ID.

Why does the script take so long?

Get-TeamUser reads 1 team's owners per call, so the run lengthens with the number of teams.

Does the ownerless groups policy replace this list?

No. The policy emails active members and asks them to accept ownership. If no one accepts before the notification period ends, it takes no further action and an administrator must assign an owner. A list of teams without owners shows which still need one.

Microsoft references

Technical references checked on 5 October 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