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

编写PowerShell脚本批量调整AD用户DisplayName格式为‘名 姓’

批量修改AD用户DisplayName格式的PowerShell脚本

前置要求

  • 运行脚本的机器需要安装Active Directory PowerShell模块:可以通过Windows功能里的「RSAT: Active Directory Domain Services and Lightweight Directory Tools」安装,或直接在域控制器上运行(默认已预装)。
  • 执行脚本的账号需要具备修改AD用户属性的权限。

脚本实现

以下脚本会自动识别DisplayName为「姓, 名」格式的用户,批量将其调整为「名 姓」格式:

# 筛选出DisplayName符合「LastName, FirstName」格式的AD用户
$targetUsers = Get-ADUser -Filter {DisplayName -like "*?*, *?*"} -Properties DisplayName

foreach ($user in $targetUsers) {
    # 按「逗号+空格」拆分姓名部分,最多拆成2段
    $nameSegments = $user.DisplayName -split ", ", 2
    
    # 确认拆分出有效姓名段后再执行更新
    if ($nameSegments.Count -eq 2) {
        $newDisplayName = "$($nameSegments[1]) $($nameSegments[0])"
        # 执行更新(加-WhatIf参数可预览修改,不实际变更属性)
        Set-ADUser -Identity $user -DisplayName $newDisplayName
        # 输出更新日志,方便核对修改内容
        Write-Host "已更新:$($user.SamAccountName) | 原名称:$($user.DisplayName) → 新名称:$newDisplayName"
    }
}

关键说明

  1. 安全测试:第一次运行时,建议在Set-ADUser命令末尾加上-WhatIf参数,脚本只会输出拟修改的内容,不会实际更改用户属性,确认无误后再去掉该参数执行真实修改。
  2. 过滤逻辑:-Filter {DisplayName -like "*?*, *?*"}确保只筛选出带「逗号+空格」且前后都有有效内容的DisplayName,避免误改其他格式的用户。
  3. 特殊情况处理:如果有用户的DisplayName包含多个逗号(比如「Smith, John Jr.」),脚本只会拆分第一个逗号,这类特殊用户建议先手动处理,或调整拆分的正则表达式适配场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:33:14