Back to script library
Entra / Microsoft 365 · Applications

Report teams apps

Report specific apps installed in Microsoft Teams.

Connect & set up

Run these once per session. All scopes are read-only unless the script makes changes.

Connect-MgGraph -NoWelcome -Scopes Directory.Read.All, Team.ReadBasic.All

Run it

The main script. Copy it, or download the .ps1 and run it from your console.

Connect-MgGraph -NoWelcome -Scopes Directory.Read.All, Team.ReadBasic.All
Write-Host "Looking for teams to analyze..."
[array]$Teams = Get-MgTeam -All -PageSize 999 | Sort-Object DisplayName
If ($Teams) {
Write-Host ("Found {0} teams - now analyzing their apps" -f $Teams.Count)
} Else {
Write-Host "No teams found"
Break
}
[array]$TargetApps = "SharePoint News", "RSS", "Incoming Webhook", "Happy Communities"
$Report = [System.Collections.Generic.List[Object]]::new()
ForEach ($Team in $Teams) {
$TeamName = $Team.DisplayName
Write-Host "Analyzing team: $TeamName"
$Apps = Get-MgTeamInstalledApp -TeamId $Team.id -ExpandProperty TeamsAppDefinition
If ($Apps) {
ForEach ($App in $Apps) {
If ($App.TeamsAppDefinition.DisplayName -in $TargetApps) {
$Report.Add([PSCustomObject]@{
TeamName = $TeamName
AppName = $App.TeamsAppDefinition.DisplayName
Description = $App.TeamsAppDefinition.ShortDescription
AppVersion = $App.TeamsAppDefinition.Version
AppState = $App.TeamsAppDefinition.PublishingState
AppId = $App.TeamsAppDefinition.Id
})
}
}
}
}
$Report | Out-GridView -Title "App connectors to check"
Attribution