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

从MSO租户批量导出6000+群组UPN的PowerShell实现方法求助

批量导出Microsoft 365租户群组UPN PowerShell实现方案

前置依赖

  • 需安装Microsoft Graph PowerShell模块,该模块原生支持超过千级数量的对象分页拉取,兼容6000+群组的导出需求
  • 操作账号需具备租户全局读取者或群组管理员权限

操作步骤

1. 安装核心模块

使用管理员权限启动PowerShell终端,依次执行命令完成模块安装与导入:

Install-Module Microsoft.Graph -Scope CurrentUser -Force
Import-Module Microsoft.Graph

2. 完成租户认证

执行认证命令,指定群组读取权限:

Connect-MgGraph -Scopes "Group.Read.All"

在弹出的认证窗口中输入有权限的账号完成登录。

3. 执行批量导出

运行以下脚本即可拉取全量群组的UPN属性,导出结果默认保存到桌面的MSO全量群组UPN.csv文件:

# 拉取租户内所有群组,仅加载必要属性提升拉取效率
$allGroups = Get-MgGroup -All -PageSize 999 -Property DisplayName,UserPrincipalName,Id
# 构造导出对象
$exportData = $allGroups | Select-Object @{Name='群组名称';Expression={$_.DisplayName}},@{Name='群组UPN';Expression={$_.UserPrincipalName}},@{Name='群组ID';Expression={$_.Id}}
# 导出到CSV
$exportPath = "$env:USERPROFILE\Desktop\MSO全量群组UPN.csv"
$exportData | Export-Csv -Path $exportPath -Encoding UTF8 -NoTypeInformation
# 输出执行结果
Write-Host "导出完成,共处理 $($allGroups.Count) 个群组,文件保存路径:$exportPath"

异常处理

  • 若安装模块提示无权,可将-Scope CurrentUser改为-Scope AllUsers后重新执行
  • 部分群组无UPN属性属于正常情况:仅启用邮件的安全组、Microsoft 365群组具备该属性,普通安全组、动态组无对应UPN
  • 拉取超时可适当调低-PageSize参数值,建议取值范围100~999

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:30:01