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

如何使用PowerShell将CSV中的成员添加到嵌套通讯组(DL)中

实现层级通讯组批量成员添加(Level4到Level3为例)

问题核心

原有代码的问题是直接遍历所有CSV行,会重复对同一个Level3组执行添加操作,同时未过滤空值容易触发无效请求。可以通过对Level3分组的方式,一次性拿到单个Level3对应的所有Level4成员,再批量处理。

实现代码

第一步:导入CSV并按Level3分组

先过滤掉Level3或Level4为空的无效行,再以Level3为键做分组:

# 导入CSV文件
$DLlist = Import-Csv C:\tempfile\Book2.csv
# 按Level3分组,获取每个Level3对应的所有Level4成员
$level3Groups = $DLlist | Where-Object { $_.Level3 -and $_.Level4 } | Group-Object -Property Level3

第二步:遍历分组执行添加操作

增加成员存在性校验,避免重复添加报错:

foreach ($level3Group in $level3Groups) {
    $currentLevel3DL = $level3Group.Name
    # 拿到当前Level3组对应的所有去重后的Level4成员
    $level4Members = $level3Group.Group.Level4 | Select-Object -Unique
    foreach ($level4DL in $level4Members) {
        # 可选:校验成员是否已存在,不需要可以删除这段判断直接执行添加
        $isExist = Get-DistributionGroupMember -Identity $currentLevel3DL | Where-Object { $_.Alias -eq $level4DL -or $_.PrimarySmtpAddress -eq $level4DL }
        if (!$isExist) {
            Add-DistributionGroupMember -Identity $currentLevel3DL -Member $level4DL
            Write-Host "添加成功:$level4DL → $currentLevel3DL"
        }
        else {
            Write-Host "跳过重复成员:$level4DL 已在 $currentLevel3DL 中"
        }
    }
}

扩展说明

如果要实现更高层级的成员添加(比如Level3加入Level2、Level2加入Level1等),只需要替换代码中对应的层级字段即可,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:09:03