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

如何用PowerShell批量将Active Directory组名转换为大写

用PowerShell批量修改Active Directory组名(指定小写部分转大写)

完全可以用PowerShell直接完成,不用依赖CSV文件,下面是针对你的需求的具体实现:

前提准备

  • 确保已安装RSAT的Active Directory模块,运行Import-Module ActiveDirectory导入模块(需管理员权限)
  • 拥有修改AD组属性的权限

单个组修改示例

针对你提到的GLB_PERM_AP_SNOW_IT_Assignment_Group_Managers转GLB_PERM_AP_SNOW_IT_ASSIGNMENT_GROUP_MANAGERS的需求:

# 获取目标组
$group = Get-ADGroup -Identity "GLB_PERM_AP_SNOW_IT_Assignment_Group_Managers" -Properties Name

# 拆分前缀和需要转大写的后缀
$splitIndex = $group.Name.LastIndexOf('_') + 1
$prefix = $group.Name.Substring(0, $splitIndex)
$suffix = $group.Name.Substring($splitIndex)
$newName = $prefix + $suffix.ToUpper()

# 执行修改(可先加-WhatIf参数测试)
Set-ADGroup -Identity $group -Name $newName -SamAccountName $newName

批量处理200个组

如果这些组都有统一的前缀(比如GLB_PERM_AP_SNOW_IT_),可以批量过滤并修改:

Import-Module ActiveDirectory

# 过滤出所有需要修改的组(根据实际命名规则调整Filter)
$targetGroups = Get-ADGroup -Filter "Name -like 'GLB_PERM_AP_SNOW_IT_*'" -Properties Name

foreach ($group in $targetGroups) {
    # 拆分并生成新名称
    $splitIndex = $group.Name.LastIndexOf('_') + 1
    $prefix = $group.Name.Substring(0, $splitIndex)
    $suffix = $group.Name.Substring($splitIndex)
    $newName = $prefix + $suffix.ToUpper()

    # 仅当新名称和原名称不同时执行修改
    if ($newName -ne $group.Name) {
        Write-Host "正在修改: $($group.Name) -> $newName"
        # 先加-WhatIf测试,确认无误后移除该参数执行实际修改
        Set-ADGroup -Identity $group -Name $newName -SamAccountName $newName -WhatIf
    }
}

注意事项

  • 测试阶段一定要加-WhatIf参数,避免误修改
  • 如果组的命名规则不是“最后一段下划线后转大写”,可以调整字符串拆分逻辑(比如按固定分隔符拆分后指定某段转大写)
  • 修改后建议验证组的属性,确保Name和SamAccountName同步更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:35:28