Skip to content

Understanding and Reporting on Non-Discoverable Hidden Microsoft Teams

Public and Private teams

Update, public and private teams have been simplified, details here

In Microsoft Teams there are two types of team, Public and Private.

Public means anyone in the organisation (tenant) can join the team at any time without any approval

Private means owners of the team must admit new members.

image

I’m not in love with the names as these types have no bearing as to there being external guests (from other organisations/tenants) in the team. Open and Closed might make more sense, but it is what it is.

Discoverability

By default both Private and Public teams are discoverable. Meaning when users go to join or create a team

Note, originally private teams were not discoverable, this default changed in 2018 to allow a better user experience to find and join private teams.

image

Public teams are always discoverable. Private teams are discoverable by default, but when creating a private team, users can elect to make the team not searchable and discoverable. I.e. hidden from the join team screen and search. These are Non-discoverable private teams or Hidden Teams.

image

image

The use case here is a team that is not appropriate for people to know about outside of the members.

How can an administrator find non-discoverable

An administrator might have reason to find or report on non-discoverable/hidden teams

Teams admin center has some basic Team reporting and shows Privacy for Teams as Public, Private but does not show if they are hidden or not.

Note I have removed a bunch of columns for an easier screenshot

image

Example hidden / non-discoverable team – there is no way to know its non-discoverable.

image

 

Finding Hidden Teams with PowerShell

Fortunately, it’s easy to find hidden teams by PowerShell. From the PowerShell console run:

# Install the Microsoft Teams PowerShell Module from PSGallery
Install-Module -Name MicrosoftTeams -Repository PSGallery -Force

 

# Connect to Microsoft Teams
Connect-MicrosoftTeams

 

# Get hidden teams
get-team -Visibility HiddenMembership | Format-Table -AutoSize

 

$HiddenTeams = get-team -Visibility HiddenMembership

 

Foreach ($team in $HiddenTeams)
{

$team.DisplayName
write-host “”
Get-TeamUser -GroupId $team.groupid | Select-Object User,Name,Role | Format-Table
write-host “”
write-host “#############”
write-host “”
}

 

$allteams | Where-Object {$_.ShowInTeamsSearchAndSuggestions -match “False”} | Format-Table DisplayName,ShowInTeamsSearchAndSuggestions,GroupId

That will give you a complete list of the hidden teams, their groupid, display name and description.

Published inMicrosoftTeams

2 Comments

  1. Kishore Kumar Kishore Kumar

    Hi Tom, Thanks for the blog. great job.
    In my tenant, i dont get the option ” This team is searchable…..Change Settings”. Where can i enable this (if at all). – Kishore

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.