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

如何用PowerShell导出特定DL的所有者及成员列表至CSV

导出指定通讯组的所有者及成员到CSV文件

步骤1:连接Exchange Online PowerShell

先运行以下命令完成Exchange Online的身份验证,MFA用户会自动弹出验证窗口:

Connect-ExchangeOnline

步骤2:执行导出脚本

运行以下PowerShell脚本,它会自动筛选名称以classification或C&T开头的通讯组,收集每组的核心信息并导出到CSV文件:

# 设置输出路径,可根据需要修改
$outputPath = "C:\Temp\DL_Owners_Members.csv"

# 自动创建输出目录(如果不存在)
$dirPath = Split-Path -Path $outputPath -Parent
if (-not (Test-Path -Path $dirPath)) {
    New-Item -Path $dirPath -ItemType Directory -Force | Out-Null
}

# 初始化结果存储数组
$dlResults = @()

# 获取符合命名规则的通讯组
$targetDLs = Get-DistributionGroup -Filter "(Name -like 'classification*') -or (Name -like 'C&T*')"

# 循环处理每个通讯组
foreach ($dl in $targetDLs) {
    # 获取组所有者(仅筛选邮箱/邮件用户类型)
    $owners = Get-DistributionGroupMember -Identity $dl.Identity -RecipientTypeDetails Mailbox, MailUser | Select-Object -ExpandProperty PrimarySmtpAddress
    $ownerList = if ($owners) { $owners -join ";" } else { "无所有者" }

    # 获取所有组成员
    $members = Get-DistributionGroupMember -Identity $dl.Identity | Select-Object -ExpandProperty PrimarySmtpAddress
    $memberList = if ($members) { $members -join ";" } else { "无成员" }

    # 将数据整理为结构化对象
    $dlResults += [PSCustomObject]@{
        通讯组名称       = $dl.Name
        通讯组邮箱地址   = $dl.PrimarySmtpAddress
        所有者列表       = $ownerList
        成员列表         = $memberList
    }
}

# 导出到CSV(UTF8编码避免中文乱码)
$dlResults | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

关键说明:

  • 筛选逻辑:通过-Filter参数精准匹配名称以指定前缀开头的通讯组
  • 格式优化:用分号分隔多个所有者/成员,确保CSV单元格内容整洁,不会自动换行
  • 编码处理:指定-Encoding UTF8解决导出后中文乱码问题
  • 权限要求:需要拥有Exchange Online的通讯组查看权限(至少为View-Only Recipients角色)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:02:18