You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Powershell查询指定用户作为所有者的所有Teams团队列表

实现步骤与可用脚本

前置准备

  • 首先安装最新版本Microsoft Teams PowerShell模块,以管理员权限启动PowerShell后执行:
    Install-Module -Name MicrosoftTeams -Force -AllowClobber
  • 导入模块并连接到你的Teams环境:
Import-Module MicrosoftTeams
Connect-MicrosoftTeams

执行连接命令后会弹出身份验证窗口,使用有管理员权限的账号登录即可。

核心查询脚本

以下脚本可以直接筛选出指定用户作为所有者的所有Teams:

# 替换为目标用户的用户主体名称,例如zhangsan@contoso.com
$targetOwnerUPN = "目标用户的UPN"

# 获取租户内所有Teams
$allTeams = Get-Team

# 遍历筛选所有者包含目标用户的Teams
$ownedTeams = foreach ($team in $allTeams) {
    # 读取当前Team的所有所有者
    $teamOwners = Get-TeamUser -GroupId $team.GroupId -Role Owner
    # 判断目标用户是否在所有者列表内
    if ($teamOwners.User -contains $targetOwnerUPN) {
        $team
    }
}

# 控制台输出结果
$ownedTeams | Select-Object DisplayName, GroupId, Visibility, Archived | Format-Table -AutoSize

# 可选:将结果导出为CSV文件保存
# $ownedTeams | Export-Csv -Path "C:\指定路径\用户所属所有者Teams列表.csv" -NoTypeInformation -Encoding UTF8

大租户优化方案(Teams数量>1000时使用)

如果你的租户内Teams数量较多,上述遍历方案执行速度较慢,可以使用Microsoft Graph PowerShell实现直接过滤,大幅提升查询效率:

  • 安装Microsoft Graph PowerShell模块:
    Install-Module Microsoft.Graph -Force -AllowClobber
  • 连接Graph并授权:
    Connect-MgGraph -Scopes "Group.Read.All", "User.Read.All"
  • 执行查询:
# 替换为目标用户的用户主体名称
$targetOwnerUPN = "目标用户的UPN"
# 获取目标用户的ID
$targetUserId = (Get-MgUser -UserId $targetOwnerUPN).Id
# 直接过滤出所有者包含目标用户的Teams对应组
$ownedTeams = Get-MgGroup -Filter "groupTypes/any(c:c eq 'Unified') and resourceProvisioningOptions/Any(x:x eq 'Team') and owners/any(o:o/id eq '$targetUserId')"
# 输出结果
$ownedTeams | Select-Object DisplayName, Id, Visibility

注意事项

  • 执行操作的账号需要持有全局管理员、Teams管理员或Teams服务管理员权限,否则无法读取所有Teams的所有者信息
  • 如果提示命令不存在,可先执行Update-Module MicrosoftTeams更新模块到最新版本
  • 上述脚本返回结果仅包含目标用户作为所有者的Teams,不会返回用户仅作为成员加入的Teams

内容的提问来源于stack exchange,提问作者Niels Meulemans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:15:03