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

PowerShell修改统一组显示名:已存在-Yammer后缀则跳过避免重复追加

实现方案

核心修复点:

  • 追加后缀前增加存在性校验,仅当显示名末尾不存在-Yammer后缀时才执行拼接,避免重复追加
  • 修正原代码语法错误:原代码中设置HiddenFromAddressListsEnabled的代码块在ForEach-Object循环体外,会导致执行逻辑异常,需要移入循环内
  • 可移除不必要的CSV中间文件步骤,直接通过管道完成全量操作,提升执行效率

推荐无临时文件版本

直接在内存中完成组遍历和配置修改,不需要落地临时CSV文件,代码更简洁:

Get-UnifiedGroup -ResultSize Unlimited | Where-Object { $_.GroupSku -eq "Yammer" } | ForEach-Object {
    # 校验显示名是否已带目标后缀
    if ($_.DisplayName -notlike "*-Yammer") {
        $newDisplayName = $_.DisplayName + "-Yammer"
        Set-UnifiedGroup -Identity $_.Id -DisplayName $newDisplayName
    }
    # 统一配置地址列表可见性
    Set-UnifiedGroup -Identity $_.Id -HiddenFromAddressListsEnabled $false
}

保留CSV导出的版本

如果需要留存Yammer组的清单做审计,可以保留原有导出CSV的流程,修复后的代码如下:

Get-UnifiedGroup -ResultSize Unlimited | Where-Object { $_.GroupSku -eq "Yammer" } |  Export-Csv "C:\Temp\yammerGroup.csv" -NoTypeInformation

Import-CSV "C:\Temp\yammerGroup.csv" | ForEach-Object {
    # 后缀存在性校验,已存在则跳过追加
    if ($_.DisplayName -notlike "*-Yammer") {
        Set-UnifiedGroup -Identity $_.id -DisplayName ($_.DisplayName + "-Yammer")
    }
    Set-UnifiedGroup -Identity $_.id -HiddenFromAddressListsEnabled $False
}

校验逻辑说明:使用-notlike "*-Yammer"匹配规则,仅当字符串末尾为-Yammer时判定为已追加后缀,不会因为显示名中间包含相同字符出现误判,重复执行脚本也不会出现多次拼接后缀的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:03:20